{"_id":"@flowforge/flowforge","_rev":"386-971f7f7895825ae06426a9848cd8b57a","time":{"created":"2022-01-20T13:54:16.292Z","0.1.0":"2022-01-20T10:54:41.013Z","modified":"2023-12-21T08:46:15.377Z","0.1.1":"2022-01-20T13:54:16.617Z","0.2.0":"2022-02-17T09:24:24.696Z","0.3.0":"2022-03-17T16:31:54.248Z","0.3.1":"2022-03-21T17:17:40.028Z","0.3.2":"2022-03-25T14:07:47.988Z","0.3.3":"2022-03-25T15:52:45.117Z","0.3.4":"2022-04-04T10:44:31.701Z","0.3.5":"2022-04-04T15:52:48.992Z","0.4.0":"2022-04-14T11:01:12.392Z","0.4.1":"2022-04-19T14:06:30.459Z","0.4.2":"2022-04-20T08:52:20.823Z","0.4.3":"2022-04-20T10:04:26.833Z","0.5.0":"2022-05-12T10:07:28.373Z","0.5.1":"2022-05-12T13:29:14.135Z","0.5.2":"2022-05-19T10:31:03.360Z","0.5.3":"2022-05-24T10:36:44.645Z","0.6.0":"2022-06-09T09:28:03.786Z","0.6.1":"2022-06-13T10:16:58.355Z","0.6.2":"2022-06-14T13:01:30.952Z","0.7.0":"2022-07-07T09:29:56.522Z","0.8.0":"2022-08-04T12:08:06.685Z","0.9.0":"2022-09-01T11:24:44.818Z","0.10.0":"2022-09-29T09:37:51.982Z","1.0.0":"2022-10-27T10:20:19.285Z","1.0.1":"2022-10-27T15:19:25.428Z","1.0.2":"2022-11-04T14:21:14.589Z","1.1.0":"2022-11-24T14:06:34.272Z","1.1.2":"2022-12-09T09:55:48.098Z","1.2.0":"2022-12-22T12:33:57.353Z","1.2.1":"2023-01-12T11:14:43.144Z","1.3.0":"2023-01-19T11:04:00.490Z","1.3.1":"2023-01-26T12:09:12.401Z","1.3.2":"2023-02-07T15:40:25.995Z","1.4.0":"2023-02-16T10:21:36.344Z","1.4.1":"2023-03-09T13:35:03.089Z","1.5.0":"2023-03-16T10:57:44.823Z","1.6.0":"2023-04-13T12:19:20.701Z","1.6.1":"2023-04-24T15:20:41.731Z","1.7.0":"2023-05-11T10:13:22.145Z","1.7.1":"2023-05-16T12:30:08.911Z","1.7.2":"2023-05-31T09:56:52.520Z","1.8.0":"2023-06-08T09:40:00.061Z","1.8.2":"2023-07-03T13:47:53.907Z","1.9.0":"2023-07-06T08:15:46.740Z","1.9.1":"2023-07-13T09:17:43.254Z","1.9.2":"2023-07-20T13:47:53.553Z","1.9.3":"2023-07-20T16:06:56.517Z","1.9.4":"2023-07-27T12:44:23.918Z","1.10.0":"2023-08-03T09:01:24.268Z","1.10.1":"2023-08-10T09:44:58.363Z","1.10.2":"2023-08-17T14:59:31.234Z","1.10.3":"2023-08-24T09:25:19.158Z","1.10.4":"2023-08-24T12:33:19.566Z","1.11.0":"2023-08-31T11:34:39.329Z","1.11.1":"2023-09-01T13:07:00.756Z","1.11.2":"2023-09-08T13:40:14.788Z","1.11.3":"2023-09-15T10:47:55.056Z","1.11.1-b2f11a3-202309181249.0":"2023-09-18T12:50:17.960Z","1.11.1-b2f11a3-202309181250.0":"2023-09-18T12:51:36.266Z","1.11.1-c560a12-202309181344.0":"2023-09-18T13:46:18.083Z","1.11.1-422d847-202309190844.0":"2023-09-19T08:45:12.906Z","1.11.1-422d847-202309190845.0":"2023-09-19T08:46:13.289Z","1.11.1-422d847-202309190847.0":"2023-09-19T08:48:25.678Z","1.11.1-422d847-202309190848.0":"2023-09-19T08:49:28.835Z","1.11.1-422d847-202309190849.0":"2023-09-19T08:50:50.848Z","1.11.1-b481f64-202309190900.0":"2023-09-19T09:02:14.052Z","1.11.1-b481f64-202309190907.0":"2023-09-19T09:08:12.098Z","1.11.1-add0550-202309191434.0":"2023-09-19T14:36:41.005Z","1.11.1-add0550-202309191437.0":"2023-09-19T14:38:42.870Z","1.11.1-db8c20e-202309201228.0":"2023-09-20T12:30:00.958Z","1.11.1-db8c20e-202309201229.0":"2023-09-20T12:31:08.957Z","1.11.1-94a4243-202309201409.0":"2023-09-20T14:10:54.857Z","1.11.1-94a4243-202309201412.0":"2023-09-20T14:14:18.798Z","1.11.1-94a4243-202309201413.0":"2023-09-20T14:14:25.104Z","1.11.1-94a4243-202309201416.0":"2023-09-20T14:17:35.688Z","1.11.1-c15b3ad-202309201525.0":"2023-09-20T15:26:40.628Z","1.11.1-c15b3ad-202309201528.0":"2023-09-20T15:29:44.034Z","1.11.4":"2023-09-21T10:41:23.644Z","1.11.1-2d55cbe-202309220902.0":"2023-09-22T09:04:08.539Z","1.11.1-a67d6ef-202309221312.0":"2023-09-22T13:14:00.076Z","1.11.1-a67d6ef-202309221315.0":"2023-09-22T13:16:43.561Z","1.11.1-a67d6ef-202309221349.0":"2023-09-22T13:50:50.247Z","1.11.1-b7b0642-202309250854.0":"2023-09-25T08:56:00.040Z","1.11.1-b7b0642-202309250903.0":"2023-09-25T09:05:20.885Z","1.11.1-e3b3c56-202309251233.0":"2023-09-25T12:34:57.534Z","1.11.1-517c808-202309251418.0":"2023-09-25T14:20:26.134Z","1.11.1-517c808-202309251423.0":"2023-09-25T14:24:14.129Z","1.11.1-8c727f1-202309251733.0":"2023-09-25T17:34:24.549Z","1.11.1-b787b0f-202309260749.0":"2023-09-26T07:50:28.333Z","1.11.1-bfb15c6-202309260940.0":"2023-09-26T09:41:46.470Z","1.11.1-bfb15c6-202309260947.0":"2023-09-26T09:48:33.435Z","1.11.1-070deec-202309270842.0":"2023-09-27T08:44:11.669Z","1.11.1-bdbdfe1-202309271410.0":"2023-09-27T14:11:36.890Z","1.11.1-d7d7f31-202309271607.0":"2023-09-27T16:08:39.941Z","1.11.1-01ef864-202309281030.0":"2023-09-28T10:31:25.224Z","1.11.1-01ef864-202309281033.0":"2023-09-28T10:34:33.054Z","1.11.1-01ef864-202309281054.0":"2023-09-28T10:56:07.970Z","1.11.1-01ef864-202309281102.0":"2023-09-28T11:03:37.274Z","1.11.1-bf7c1bf-202309281111.0":"2023-09-28T11:12:21.778Z","1.11.1-bf7c1bf-202309281113.0":"2023-09-28T11:14:57.472Z","1.11.1-715864e-202309281125.0":"2023-09-28T11:26:30.843Z","1.11.1-715864e-202309281130.0":"2023-09-28T11:32:02.344Z","1.12.0":"2023-09-28T12:22:10.117Z","1.12.1-6800ba0-202309281227.0":"2023-09-28T12:29:09.935Z","1.12.1-6800ba0-202309281229.0":"2023-09-28T12:30:44.283Z","1.12.1-6800ba0-202309281231.0":"2023-09-28T12:32:25.537Z","1.12.1-51fbfe1-202309281712.0":"2023-09-28T17:13:43.794Z","1.12.1-51fbfe1-202309281714.0":"2023-09-28T17:16:11.502Z","1.12.1":"2023-09-28T17:32:46.833Z","1.12.1-bd58c8b-202309290819.0":"2023-09-29T08:21:24.581Z","1.12.1-bd58c8b-202309290821.0":"2023-09-29T08:23:29.254Z","1.12.2":"2023-09-29T08:42:31.718Z","1.12.1-bd58c8b-202309291538.0":"2023-09-29T15:39:49.117Z","1.12.1-d8867e6-202309291731.0":"2023-09-29T17:32:59.202Z","1.12.1-d8867e6-202309291733.0":"2023-09-29T17:34:36.465Z","1.12.1-a521daf-202310021025.0":"2023-10-02T10:26:38.338Z","1.12.1-3784d6a-202310021507.0":"2023-10-02T15:08:34.646Z","1.12.1-3784d6a-202310021513.0":"2023-10-02T15:14:58.834Z","1.12.1-1930a70-202310021530.0":"2023-10-02T15:32:06.086Z","1.12.1-1930a70-202310021532.0":"2023-10-02T15:34:23.995Z","1.12.1-de14721-202310021539.0":"2023-10-02T15:40:31.637Z","1.12.1-de14721-202310021543.0":"2023-10-02T15:44:33.766Z","1.12.1-de14721-202310021545.0":"2023-10-02T15:46:13.322Z","1.12.1-de14721-202310021549.0":"2023-10-02T15:51:04.582Z","1.12.1-500858f-202310030918.0":"2023-10-03T09:20:08.774Z","1.12.1-842fdc9-202310041417.0":"2023-10-04T14:19:30.634Z","1.12.1-842fdc9-202310041424.0":"2023-10-04T14:25:35.409Z","1.12.1-a525869-202310041556.0":"2023-10-04T15:58:04.698Z","1.12.1-a526326-202310050830.0":"2023-10-05T08:31:53.589Z","1.12.1-a526326-202310050832.0":"2023-10-05T08:34:06.026Z","1.12.1-fe0e996-202310050941.0":"2023-10-05T09:42:57.979Z","1.12.1-225ffc4-202310051518.0":"2023-10-05T15:19:48.989Z","1.12.1-225ffc4-202310051527.0":"2023-10-05T15:28:29.445Z","1.12.3":"2023-10-05T15:40:31.223Z","1.12.4-dcddbe8-202310051545.0":"2023-10-05T15:46:26.346Z","1.12.4-dcddbe8-202310051546.0":"2023-10-05T15:48:30.649Z","1.12.4-dcddbe8-202310051552.0":"2023-10-05T15:54:01.313Z","1.12.4-8ab0141-202310060939.0":"2023-10-06T09:40:23.819Z","1.12.4-8ab0141-202310060943.0":"2023-10-06T09:45:01.074Z","1.12.4-8ab0141-202310060949.0":"2023-10-06T09:50:38.769Z","1.12.4-94ad6d7-202310061006.0":"2023-10-06T10:07:54.773Z","1.12.4-94ad6d7-202310061010.0":"2023-10-06T10:11:40.764Z","1.12.4-7156535-202310061107.0":"2023-10-06T11:08:38.941Z","1.12.4-7156535-202310061111.0":"2023-10-06T11:12:57.344Z","1.12.4-c8f484b-202310091340.0":"2023-10-09T13:41:26.979Z","1.12.4-c8f484b-202310091343.0":"2023-10-09T13:45:21.394Z","1.12.4-c8f484b-202310091347.0":"2023-10-09T13:48:17.910Z","1.12.4-c7eb708-202310091700.0":"2023-10-09T17:01:17.318Z","1.12.4-c7eb708-202310091706.0":"2023-10-09T17:07:56.100Z","1.12.4-c7eb708-202310091710.0":"2023-10-09T17:12:32.241Z","1.12.4-f929fec-202310101544.0":"2023-10-10T15:45:58.750Z","1.12.4-f929fec-202310101554.0":"2023-10-10T15:55:46.485Z","1.12.4-12ce018-202310111015.0":"2023-10-11T10:16:38.898Z","1.12.4-12ce018-202310111017.0":"2023-10-11T10:18:26.846Z","1.12.4-12ce018-202310111019.0":"2023-10-11T10:20:24.780Z","1.12.4-6f6682f-202310111906.0":"2023-10-11T19:07:24.576Z","1.12.4-6f6682f-202310111908.0":"2023-10-11T19:09:41.638Z","1.12.4-2ae7b45-202310111933.0":"2023-10-11T19:34:57.113Z","1.12.4-2ae7b45-202310111936.0":"2023-10-11T19:37:37.874Z","1.12.4-2ae7b45-202310111942.0":"2023-10-11T19:43:43.676Z","1.12.4-b2b88b2-202310120554.0":"2023-10-12T05:55:51.962Z","1.12.4-c9de018-202310120558.0":"2023-10-12T05:59:48.431Z","1.12.4-c9de018-202310120604.0":"2023-10-12T06:05:57.453Z","1.12.4-c9de018-202310120607.0":"2023-10-12T06:08:53.942Z","1.12.4-c9de018-202310120613.0":"2023-10-12T06:14:33.173Z","1.12.4-495e842-202310120905.0":"2023-10-12T09:06:22.644Z","1.12.4-495e842-202310120906.0":"2023-10-12T09:08:12.248Z","1.12.4-495e842-202310120920.0":"2023-10-12T09:21:35.524Z","1.12.4-b46ebae-202310121112.0":"2023-10-12T11:13:27.630Z","1.12.4-b46ebae-202310121115.0":"2023-10-12T11:16:30.343Z","1.12.4-b46ebae-202310121121.0":"2023-10-12T11:23:03.922Z","1.12.4-c481673-202310121638.0":"2023-10-12T16:39:32.609Z","1.12.4-c481673-202310121641.0":"2023-10-12T16:42:38.325Z","1.12.4-c481673-202310121645.0":"2023-10-12T16:46:38.000Z","1.12.4-2a28320-202310130716.0":"2023-10-13T07:17:28.569Z","1.12.4-2a28320-202310130727.0":"2023-10-13T07:29:03.672Z","1.12.4-7549558-202310130928.0":"2023-10-13T09:30:28.913Z","1.12.4-7549558-202310130931.0":"2023-10-13T09:33:04.952Z","1.12.4-15e2aa1-202310130957.0":"2023-10-13T09:58:25.363Z","1.12.4-15e2aa1-202310131000.0":"2023-10-13T10:01:53.309Z","1.12.4-cf77c8f-202310131100.0":"2023-10-13T11:01:21.880Z","1.12.4-48109d8-202310131147.0":"2023-10-13T11:49:06.209Z","1.12.4-48109d8-202310131149.0":"2023-10-13T11:50:36.316Z","1.12.4":"2023-10-13T12:03:10.609Z","1.12.5-5d77e5a-202310131209.0":"2023-10-13T12:10:50.613Z","1.12.5-5d77e5a-202310131211.0":"2023-10-13T12:12:53.426Z","1.12.5-9f1a012-202310151408.0":"2023-10-15T14:10:18.858Z","1.12.5-9f1a012-202310151411.0":"2023-10-15T14:13:27.852Z","1.12.5-9f1a012-202310151416.0":"2023-10-15T14:17:18.210Z","1.12.5-a15f186-202310161016.0":"2023-10-16T10:17:42.854Z","1.12.5-a15f186-202310161023.0":"2023-10-16T10:25:35.195Z","1.12.5-a15f186-202310161402.0":"2023-10-16T14:04:06.158Z","1.12.5-62a9747-202310171251.0":"2023-10-17T12:52:28.689Z","1.12.5-d0b73c3-202310171651.0":"2023-10-17T16:52:52.933Z","1.12.5-d0b73c3-202310171653.0":"2023-10-17T16:55:05.122Z","1.12.5-d0b73c3-202310171655.0":"2023-10-17T16:57:01.262Z","1.12.5-788d357-202310181135.0":"2023-10-18T11:36:52.556Z","1.12.5-c58f54b-202310181137.0":"2023-10-18T11:39:07.464Z","1.12.5-c58f54b-202310181145.0":"2023-10-18T11:47:08.413Z","1.12.5-3a16aaf-202310181351.0":"2023-10-18T13:52:31.852Z","1.12.5-3a16aaf-202310181352.0":"2023-10-18T13:54:07.737Z","1.12.5-d39247a-202310181430.0":"2023-10-18T14:31:51.640Z","1.12.5-d39247a-202310181432.0":"2023-10-18T14:34:14.952Z","1.12.5-d39247a-202310181555.0":"2023-10-18T15:57:13.767Z","1.12.5-d39247a-202310190822.0":"2023-10-19T08:23:37.357Z","1.12.5":"2023-10-19T13:59:58.970Z","1.12.6-a8261d8-202310191405.0":"2023-10-19T14:06:55.689Z","1.12.6-a8261d8-202310191410.0":"2023-10-19T14:11:22.065Z","1.12.6-fb351e1-202310200857.0":"2023-10-20T08:58:53.158Z","1.12.6-fb351e1-202310200902.0":"2023-10-20T09:04:11.550Z","1.12.6-fb351e1-202310200910.0":"2023-10-20T09:12:00.691Z","1.12.6-fb351e1-202310200929.0":"2023-10-20T09:30:24.884Z","1.12.6-fb351e1-202310200939.0":"2023-10-20T09:40:29.986Z","1.12.6-fb351e1-202310200958.0":"2023-10-20T09:59:40.981Z","1.12.6-fb351e1-202310201004.0":"2023-10-20T10:05:42.379Z","1.12.6-fb351e1-202310201006.0":"2023-10-20T10:07:44.077Z","1.12.6-8613954-202310201022.0":"2023-10-20T10:23:25.189Z","1.12.6-8613954-202310201024.0":"2023-10-20T10:25:54.914Z","1.12.6-8613954-202310201029.0":"2023-10-20T10:31:13.816Z","1.12.6-b63ba2d-202310231105.0":"2023-10-23T11:06:27.907Z","1.12.6-b63ba2d-202310231106.0":"2023-10-23T11:08:26.164Z","1.12.6-b153e79-202310241017.0":"2023-10-24T10:18:23.505Z","1.12.6-b153e79-202310241018.0":"2023-10-24T10:20:06.840Z","1.12.6-b153e79-202310241020.0":"2023-10-24T10:22:25.954Z","1.12.6-b153e79-202310241455.0":"2023-10-24T14:57:30.319Z","1.12.6-b153e79-202310241621.0":"2023-10-24T16:22:37.093Z","1.12.6-7cd5432-202310241646.0":"2023-10-24T16:48:51.756Z","1.12.6-4cf0224-202310250827.0":"2023-10-25T08:29:15.712Z","1.12.6-4cf0224-202310250900.0":"2023-10-25T09:02:10.412Z","1.12.6-4cf0224-202310250905.0":"2023-10-25T09:07:31.026Z","1.12.6-4cf0224-202310251022.0":"2023-10-25T10:24:39.005Z","1.12.6-76a1abd-202310251241.0":"2023-10-25T12:43:26.382Z","1.12.6-76a1abd-202310251244.0":"2023-10-25T12:46:08.720Z","1.12.6-76a1abd-202310251249.0":"2023-10-25T12:50:36.825Z","1.12.6-76a1abd-202310251320.0":"2023-10-25T13:22:06.521Z","1.12.6-76a1abd-202310251328.0":"2023-10-25T13:29:34.096Z","1.12.6-76a1abd-202310251346.0":"2023-10-25T13:48:09.171Z","1.12.6-e4c789b-202310252227.0":"2023-10-25T22:28:30.229Z","1.12.6-e4c789b-202310252231.0":"2023-10-25T22:33:03.402Z","1.12.6-e4c789b-202310252240.0":"2023-10-25T22:41:42.582Z","1.12.6-ed8dcc4-202310260933.0":"2023-10-26T09:35:11.122Z","1.12.6-ed8dcc4-202310260936.0":"2023-10-26T09:38:34.372Z","1.12.6-8b3d7d1-202310260958.0":"2023-10-26T09:59:48.049Z","1.13.0":"2023-10-26T10:07:12.541Z","1.13.1-5314432-202310261007.0":"2023-10-26T10:09:34.446Z","1.13.1-5314432-202310261015.0":"2023-10-26T10:17:45.249Z","1.13.1-5314432-202310261018.0":"2023-10-26T10:20:31.380Z","1.13.1-347b69f-202310261203.0":"2023-10-26T12:04:40.386Z","1.13.2-8a690a6-202310261249.0":"2023-10-26T12:50:23.729Z","1.13.2-8a690a6-202310261252.0":"2023-10-26T12:54:04.777Z","1.13.2-8a690a6-202310261301.0":"2023-10-26T13:02:50.251Z","1.13.1":"2023-10-26T13:04:33.560Z","1.13.2-1a159ba-202310271511.0":"2023-10-27T15:12:51.816Z","1.13.2-1a159ba-202310271514.0":"2023-10-27T15:15:36.677Z","1.13.2-1a159ba-202310271516.0":"2023-10-27T15:18:39.346Z","1.13.2-1fb4c15-202311010659.0":"2023-11-01T07:00:22.576Z","1.13.2-1fb4c15-202311010700.0":"2023-11-01T07:02:06.894Z","1.13.2-1fb4c15-202311010703.0":"2023-11-01T07:04:37.215Z","1.13.2-48218ff-202311011203.0":"2023-11-01T12:05:11.591Z","1.13.2":"2023-11-02T13:00:10.052Z","1.13.3-a54bae5-202311021307.0":"2023-11-02T13:09:39.399Z","1.13.3-e9c7bdb-202311030625.0":"2023-11-03T06:27:08.814Z","1.13.3-e9c7bdb-202311030629.0":"2023-11-03T06:31:17.491Z","1.13.3-e9c7bdb-202311061002.0":"2023-11-06T10:04:04.338Z","1.13.3-ac1bbd6-202311061115.0":"2023-11-06T11:16:18.060Z","1.13.3-ac1bbd6-202311061117.0":"2023-11-06T11:19:09.248Z","1.13.3-ac1bbd6-202311061120.0":"2023-11-06T11:21:11.557Z","1.13.3-ac1bbd6-202311061122.0":"2023-11-06T11:23:42.078Z","1.13.3-8254112-202311061134.0":"2023-11-06T11:35:19.581Z","1.13.3-8254112-202311061145.0":"2023-11-06T11:47:08.052Z","1.13.3-558216d-202311071126.0":"2023-11-07T11:27:49.334Z","1.13.3-bb7a69c-202311071131.0":"2023-11-07T11:32:20.513Z","1.13.3-bb7a69c-202311071138.0":"2023-11-07T11:39:50.459Z","1.13.3-d108191-202311071436.0":"2023-11-07T14:36:59.153Z","1.13.3-cb87873-202311071737.0":"2023-11-07T17:38:57.825Z","1.13.3-cb87873-202311081411.0":"2023-11-08T14:13:04.930Z","1.13.3-05c6979-202311091558.0":"2023-11-09T16:00:23.540Z","1.13.3-09c34db-202311131117.0":"2023-11-13T11:18:44.599Z","1.13.3-09c34db-202311131317.0":"2023-11-13T13:18:58.471Z","1.13.3-16d760c-202311131415.0":"2023-11-13T14:15:57.800Z","1.13.3-0d5d904-202311131706.0":"2023-11-13T17:07:55.640Z","1.13.3-20c42c6-202311140736.0":"2023-11-14T07:37:19.088Z","1.13.3-0f4c512-202311140855.0":"2023-11-14T08:56:26.700Z","1.13.3-0f4c512-202311151433.0":"2023-11-15T14:34:45.445Z","1.13.3-97dc22d-202311151552.0":"2023-11-15T15:53:41.141Z","1.13.3-9a26477-202311151710.0":"2023-11-15T17:11:05.694Z","1.13.3-9a26477-202311151713.0":"2023-11-15T17:14:12.302Z","1.13.3-80bc763-202311152146.0":"2023-11-15T21:47:08.552Z","1.13.3-674d6ec-202311152205.0":"2023-11-15T22:06:14.268Z","1.13.3-5579db8-202311161125.0":"2023-11-16T11:26:21.090Z","1.13.3-4bc5e06-202311161148.0":"2023-11-16T11:49:53.929Z","1.13.3-4bc5e06-202311161525.0":"2023-11-16T15:26:53.726Z","1.13.3-4bc5e06-202311161538.0":"2023-11-16T15:39:24.232Z","1.13.3":"2023-11-16T16:33:58.319Z","1.13.4-dbd1b1a-202311161641.0":"2023-11-16T16:42:27.358Z","1.13.4-fb14d65-202311161819.0":"2023-11-16T18:20:26.946Z","1.13.4-13a7e55-202311161825.0":"2023-11-16T18:26:33.266Z","1.13.4-13a7e55-202311161836.0":"2023-11-16T18:37:35.337Z","1.13.4-086d457-202311201031.0":"2023-11-20T10:32:38.422Z","1.13.4-79cb728-202311201444.0":"2023-11-20T14:44:59.658Z","1.13.4-434e016-202311211612.0":"2023-11-21T16:13:22.629Z","1.13.4-0500dc6-202311221018.0":"2023-11-22T10:19:44.749Z","1.13.4-0500dc6-202311221352.0":"2023-11-22T13:53:52.114Z","1.13.4-0500dc6-202311221359.0":"2023-11-22T14:00:47.473Z","1.13.4-a8273f1-202311221556.0":"2023-11-22T15:57:50.731Z","1.13.4-3e06ee3-202311221604.0":"2023-11-22T16:05:10.175Z","1.13.4-3e06ee3-202311221616.0":"2023-11-22T16:17:44.270Z","1.13.4-df3aaa5-202311221649.0":"2023-11-22T16:50:19.109Z","1.13.4-7a76e42-202311221824.0":"2023-11-22T18:25:46.921Z","1.13.4-a5535e5-202311230955.0":"2023-11-23T09:56:58.273Z","1.13.4-a0a6a7c-202311231011.0":"2023-11-23T10:12:12.142Z","1.13.4-a0a6a7c-202311231021.0":"2023-11-23T10:22:06.972Z","1.13.4-def8c3e-202311231106.0":"2023-11-23T11:07:05.590Z","1.13.4-8ba4ff8-202311231146.0":"2023-11-23T11:47:37.816Z","1.13.4-8ba4ff8-202311231147.0":"2023-11-23T11:48:48.807Z","1.13.4-6ef912a-202311231206.0":"2023-11-23T12:07:37.632Z","1.13.4-6ef912a-202311231212.0":"2023-11-23T12:13:08.719Z","1.14.0":"2023-11-23T12:19:00.166Z","1.14.1-523916e-202311231226.0":"2023-11-23T12:27:53.622Z","1.14.1-f68d9bd-202311271319.0":"2023-11-27T13:20:26.656Z","1.14.1-f68d9bd-202311281727.0":"2023-11-28T17:28:54.774Z","1.14.1-c3d94bc-202311282023.0":"2023-11-28T20:23:56.217Z","1.14.1-579f14a-202311291333.0":"2023-11-29T13:34:47.529Z","1.14.1-579f14a-202311291338.0":"2023-11-29T13:39:25.586Z","1.14.1-2004f93-202311291454.0":"2023-11-29T14:55:47.035Z","1.14.1-957c175-202311301517.0":"2023-11-30T15:18:03.549Z","1.14.1-1f10793-202312010915.0":"2023-12-01T09:16:30.136Z","1.14.1-1f10793-202312010919.0":"2023-12-01T09:20:06.784Z","1.14.1-1f10793-202312010922.0":"2023-12-01T09:23:46.780Z","1.14.1-1f10793-202312010926.0":"2023-12-01T09:27:05.219Z","1.14.1-c4796c6-202312011138.0":"2023-12-01T11:39:15.012Z","1.14.1-c4796c6-202312011416.0":"2023-12-01T14:18:00.491Z","1.14.1-58430be-202312011430.0":"2023-12-01T14:31:12.267Z","1.14.1-58430be-202312011437.0":"2023-12-01T14:38:09.254Z","1.14.1-58430be-202312011444.0":"2023-12-01T14:45:58.059Z","1.14.1-244ffc2-202312011541.0":"2023-12-01T15:42:29.230Z","1.14.1-71360b4-202312011554.0":"2023-12-01T15:55:19.763Z","1.14.1-9591df1-202312011612.0":"2023-12-01T16:13:27.581Z","1.14.2-b38e134-202312011751.0":"2023-12-01T17:52:07.469Z","1.14.1":"2023-12-01T18:12:28.510Z","1.14.2-b38e134-202312011833.0":"2023-12-01T18:34:20.296Z","1.14.2-127faad-202312012115.0":"2023-12-01T21:16:40.024Z","1.14.2-127faad-202312012120.0":"2023-12-01T21:21:21.420Z","1.14.2-21e0a7a-202312042053.0":"2023-12-04T20:54:24.013Z","1.14.2-21e0a7a-202312042058.0":"2023-12-04T20:59:14.288Z","1.14.2-d9f6d6c-202312050916.0":"2023-12-05T09:17:55.078Z","1.14.2-25f2cbc-202312051758.0":"2023-12-05T17:59:26.575Z","1.14.2-2d4f3b7-202312060938.0":"2023-12-06T09:39:24.860Z","1.14.2-3fb00a3-202312061239.0":"2023-12-06T12:40:36.135Z","1.14.2-c7b9f95-202312061509.0":"2023-12-06T15:10:06.725Z","1.14.2-a9b1fee-202312071143.0":"2023-12-07T11:44:20.051Z","1.14.2-9419eb8-202312071704.0":"2023-12-07T17:05:59.765Z","1.14.2-fa00a30-202312072117.0":"2023-12-07T21:17:58.555Z","1.14.2-fa00a30-202312081033.0":"2023-12-08T10:34:22.839Z","1.14.2-6d9725f-202312081210.0":"2023-12-08T12:11:25.303Z","1.14.2-8b21f64-202312081628.0":"2023-12-08T16:29:54.468Z","1.14.2-fbca845-202312111307.0":"2023-12-11T13:08:53.202Z","1.14.2-fbca845-202312111311.0":"2023-12-11T13:12:20.696Z","1.14.2-c4d783e-202312111644.0":"2023-12-11T16:45:59.203Z","1.14.2-782eaad-202312120927.0":"2023-12-12T09:28:06.170Z","1.14.2-372bdd9-202312121359.0":"2023-12-12T14:00:12.888Z","1.14.2-a20066a-202312131227.0":"2023-12-13T12:28:10.875Z","1.14.2-2a5679b-202312131342.0":"2023-12-13T13:43:57.908Z","1.14.2-d5dbe41-202312141105.0":"2023-12-14T11:06:32.188Z","1.14.2-a9f8a6a-202312141132.0":"2023-12-14T11:33:56.432Z","1.14.2-9d5475b-202312141304.0":"2023-12-14T13:05:41.804Z","1.14.2-61934f7-202312190835.0":"2023-12-19T08:36:33.821Z","1.14.2-c1c6b50-202312190917.0":"2023-12-19T09:18:57.269Z","1.14.2-fdb2ec7-202312190950.0":"2023-12-19T09:51:03.095Z","1.14.2-32c7c86-202312191116.0":"2023-12-19T11:17:21.050Z","1.14.2-32c7c86-202312191125.0":"2023-12-19T11:26:23.628Z","1.14.2-32c7c86-202312191130.0":"2023-12-19T11:31:37.417Z","1.14.2-d9ce170-202312191645.0":"2023-12-19T16:46:32.260Z","1.14.2-d9ce170-202312191655.0":"2023-12-19T16:56:28.818Z","1.14.2-7175f06-202312201220.0":"2023-12-20T12:21:38.021Z","1.14.2-7175f06-202312201223.0":"2023-12-20T12:24:36.932Z","1.14.2-8bf84f7-202312201356.0":"2023-12-20T13:57:29.406Z","1.14.2-d01964b-202312201423.0":"2023-12-20T14:25:04.837Z","1.14.2-d01964b-202312201427.0":"2023-12-20T14:28:17.659Z","1.14.2-cf07c7a-202312201436.0":"2023-12-20T14:37:19.411Z","1.14.2-53c5d8d-202312201633.0":"2023-12-20T16:34:50.532Z","1.14.2-53c5d8d-202312201635.0":"2023-12-20T16:36:48.687Z","1.14.2-a0f6152-202312210845.0":"2023-12-21T08:46:15.214Z"},"name":"@flowforge/flowforge","dist-tags":{"latest":"1.14.1","nightly":"1.14.2-a0f6152-202312210845.0"},"versions":{"0.1.1":{"name":"@flowforge/flowforge","version":"0.1.1","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","test":"mocha test/**/*_spec.js"},"bin":{"flowforge":"forge/app.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"Apache-2.0","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@flowforge/localfs":"^0.1.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.5","bcrypt":"^5.0.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.0","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.10","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","sequelize":"^6.13.0","sqlite3":"^5.0.2","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","axios":"^0.25.0","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.2","mocha":"^9.1.4","mocha-cli":"^1.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","postcss":"^8.4.5","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","should":"^13.2.3","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.66.0","webpack-cli":"^4.9.1","webpack-dev-server":"^3.11.3"},"gitHead":"c2934cae6929a9402ffaec9f00dd318cd046c239","_id":"@flowforge/flowforge@0.1.1","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-Ta7UF7mjms23nCDTcJqbMHmg4ykNdydbEMyIfHjzDOHebnVrs3v/CUBybUi3HLnSio2K6IsEtdENsyvP6l8c0w==","shasum":"c89eedc3428fde02517cd9a85e5d9279ef772eff","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.1.1.tgz","fileCount":102,"unpackedSize":995128,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6WmICRA9TVsSAnZWagAA/MwP/1RJNbtEx8puEEEJjpEL\nhjEdbezj6/KT+6n7fViMLWPg7i7y4HF5jOExsJ+XOt2RMcQLLNc9ZlO4d4ug\nia1Sgm34Y/0AbaesPraMXEb8xxnQV+Ween+mnUz8ZtQwdXSy2Ie6MO+2WkJX\nYTZ/ZIk5e2FDeEDPxD8bjRfI1w5A4FXpFCfpTExlEc1geeoStFm3dgDFrrx0\naMbrGuoIPgmTyp7k/T1Ob0aEMPtpU4+4cSOrw+hIVrn46sffZ6+n7BlKzp4m\ntmXHSZ+KSxZY+P0g1RyXgGm+NiVfaXK2InPoAi5Ls0fqL/zvcWx1YbbS2kWB\ntuyc2XgeEMmQ+1HdONvdj3SOA66JNMeztuXujGl0lrXeiOMRuJmSqLVGm+Qb\nUDq6rbkfrOuWtdCMtjApvnJ6BwiMAhOlwENp81fiJOQ7NbOnT7gLIjncmNAG\nN31+yv5wUxapNP4S1rsQdeaKrdZFfZkXULume7OBmg2b2QwUk33igSW/4MOM\nnxc2zXE2TQ2e1qyaKCa/ZV2QsJdZbBKtK0CAayhPqKCyDtvQrqfbOLyH4dSg\nj/NCoD3l8hAgz9CeUh635EiAa7UZux9vYtk+8sTFs0LwR4v1rWwXkvHEK9xP\n1Le6rr90UN+H2JxhepMxdj65HQgQZ2h1Yj6QqL/e51YiTT10jSu2pQg+o7nV\nogbf\r\n=Q2OE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeJcwj5Bd1hYKvNnrUh1NSQv9IH/nyXGnOvFJ1EmTDAAIgI+faDvk20/od1LTLxWzyivQRMEN06lVEPsPvfaS0JNw="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.1.1_1642686856357_0.3677083693351264"},"_hasShrinkwrap":false},"0.2.0":{"name":"@flowforge/flowforge","version":"0.2.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js"},"bin":{"flowforge":"forge/app.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"Apache-2.0","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/localfs":"^0.2.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.5","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","should":"^13.2.3","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"b8a4a8d1bb1e66c259663a7b272e1753b24c9f50","_id":"@flowforge/flowforge@0.2.0","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-Frk46L/qkD5DhTk8bBpWKNq2R5tjIFyWfCjwUGCL8utVVrNk1VXPnTu61kvTzNnJUTj01hwZMwV8DBnWFyglnA==","shasum":"badb25814e962220ef8465b0fa7abfcc8264c940","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.2.0.tgz","fileCount":118,"unpackedSize":1038316,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiDhRIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqJ0w//ZjaNlOTAJZgBFnOlHZG3L9jUqocutmdu/lRmyzLPt+KgVEaa\r\nYS0lahz7lJedYojBU1fa5Hw8V6VVn6L3ffIgtvf2NixWF5B7hD5nEPRsVlkA\r\nsSisyQtsRDQHzMy/wjL2U492GhPidDt5tQcpQr5FTSrpQWWrWowfZ4ikx0j8\r\n1S/tqnUsYp+GOIFbXyT3smBupo0Aw11SFGNRxOowupydzo+j52GOZ+BT1ZPd\r\n9T3qRYLAdxYkyBm/NUhKbqL/lBTDP6miahjv7kjbh56GNx2TrQZK5+E8lAMw\r\ntTVSUV9ZjxOtmvYEd+7YiZzVL0jl51fY4ZYNrrJ0Wag1U8O/SlAetPDgBquU\r\nGKaVrJC/8P6yft8rKJ4at2GMxUY5/nyVb9Os7c25qbJy2evVi02ES8JcRs6L\r\n+ULYruFi84pRrGjHxYksFBlpjHwvnPfVG46ghNh+0Wrb5nRGFvUAeyrJYWxA\r\nhDAJcV0ABHa36q4b7FT2TDEzViFH4wxHNePID0M6WjDFBitHbMAj+V3c4SWR\r\nUHCt80YLKBoNhrd/Xc02seQdZ3F4LAPoXNITzGkZFo0BrmqyaaUMXxcN0S+X\r\nwujXAbstrPm9ApYSt7Nb7en3VP/HDrMYYxKMgSe0BxRLVxxcwwsqHwVjQDqk\r\ndM6mfU5pHUGozprwf5LSwun+MtHGeq56UIQ=\r\n=HP/E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFI8Cd1mOOwoUmbeM9pRLJVg/rokJ3KjM7SvQOuTu3EGAiBo59SJp3jQ+exRk87Jzk8aLsgzI7K+jnH4gFDdI5ugFg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.2.0_1645089864395_0.7761326340290347"},"_hasShrinkwrap":false},"0.3.0":{"name":"@flowforge/flowforge","version":"0.3.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js"},"bin":{"flowforge":"forge/app.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/localfs":"^0.3.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.5","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","should":"^13.2.3","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"6123a5e03c3b553d712b4cfe0e694046d37814c5","_id":"@flowforge/flowforge@0.3.0","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-FQ3Sfd89QOYRp3JU2phFo/edccjx2+OzRa4Xe/nn068oJAB9hflP7m6Vby+aK9UUKf3teMbNcOpC1kRNz3xBuw==","shasum":"4638825143eb055c8e03652bea4d1f99787284fd","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.3.0.tgz","fileCount":145,"unpackedSize":1221329,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiM2J6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq0KxAAkQ99rPXJvTc7c9EgIHMfDPQJnsvD/KKnJHT90oEY/g4vWA2Y\r\nv3riwTvmJ9JBOi5LRYcO8yJQ6LeHSyflZdaAC40yU9MgLwxzEln3yjKIx+oC\r\nNGlCXxXwYH1+Fck/rZUqyJi/BqPDETelPhC1NCAkKDhFDgcMoGYYgWg2mU1d\r\n1GfOhtxkeZ0TITj0yfhaDHDUJVj3oCNASpYx+wJYrufJ4BSI+PZzg6l8AjZC\r\nFEFgr3BvezG26OdYNKXRYsrrykM+KWT2oZt7NvKM9HCs3LuJmkkvsOJr5BtC\r\ncQCJv674pmMUmXmsUJeGuWboQdOrXx3gT9Z81hGswitGl4RucVAGgnJIdahj\r\nwbZbQlQ8ayNXGlH3RGbkGhtmtNWOYhmRErwsPsX3Gxp+exzMY+crXvGlHC0f\r\ncOmDofyArkXAEtQiczCc7rKWK37IUGc/nxgsBrp0rqKdUBP1Ov9dbUXzcPRw\r\nmqYuyKaYXgtSOnDluMhfdVQq/gvjDfpiRVyI+bC9n7YqqqTVFRDpxefae1rR\r\nLE6BluvNEG2OasoABSVnSxXGVmxQB1fKjRIRMHgN/OHY3RHlwYHTalJSscoe\r\nAYZweBXb25KXesA9ZN/s0KoV5iEbfKGApowDvLKxzetUn85YOUUg+D9NdtJB\r\nQnoQUYxKXEYeZDX4xKavgrgCZ5CEeAW6oJE=\r\n=Da8Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQzlm8blXLRDtdqC1PoLUQ+lRRmgRFm8UngUYjFwk/RQIgAaegpZTvRvdLNWThYKOIyGIInoXkfv/adrl85MVTxSQ="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.3.0_1647534714023_0.6533623449359154"},"_hasShrinkwrap":false},"0.3.1":{"name":"@flowforge/flowforge","version":"0.3.1","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js"},"bin":{"flowforge":"forge/app.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/localfs":"^0.3.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.5","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","should":"^13.2.3","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"012278dd8a834041a5444aa1a613ba1660501762","_id":"@flowforge/flowforge@0.3.1","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-QgUq1NYtuf1bsYO9+Ym0yLDUR0IH4OLYEs3qkKDeNo6rhZxJnsXhZuSKNR80//l9hLBc2VxwQWnd2HAaF9kdNg==","shasum":"6538f1edc34a1c1e9e699c6e85137380cd3bf0fb","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.3.1.tgz","fileCount":145,"unpackedSize":1221446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOLM0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxwhAAmnTY4ZIVRjTZYL5X8cO7yumd3qpnBOSIOfAmYSVaaRNoZRCt\r\niDCi8jGlxub+jd5jNa+bC9Fn+xk1sPl7HEEA6cDhhR0Cr3k4CwivWgBFCP0I\r\nxZCyNFP0y4XCzzfDkysEdAiipy7YUDoOOF8BrAY7OHAHk1G9PwfWKasozXbU\r\ngi28iou8CxWPyfjoiBzwh2cJMzVdN6x8GVmnLmZ/UyZhrUg+M1mIMxtb3MYA\r\n142Vq40extHMORud2fyf3G//0983sjcW7RqkXAabWo1/mZt0Cn0pHKYe9u5x\r\n8mffFG1S9g/JXe3mUJ3uknW1zsB/oQit4rDsuSFuDDOYb9q9cFTdmm8SyoS8\r\n2ecfkiHeRvmtc0LmZwQ7de7a/tlwVbov+yHtByyif4gM/i4PRSmHJvzAh58Z\r\n0q0iu2W1KZM7a87DnpTwL0zjFhqC2d0AHpDCEjflWxe/kTHK/OAU7fhLgkbU\r\n6RW7ttY6NERiOhb0QzwazDVfNHt3efFjSnWTRzVLV9xd7G8bd/Q/N6cKA5lw\r\nNt/oqtntM+U1qF3uOa7sUF4c9YUA+ld1AdYFGZxX9NpZDRECqW9aGp8/t+dD\r\nflPp7+LBVaBA/Nv5BCKhnqaG7PkG6wNQm+S+I2hRap0yiowMnAJCj5L5W1lX\r\nhCtAn0n518U3ymaRWSojYAMF0awFEu0zMYs=\r\n=bUz3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE9CbvEMjBDSegH+YQgkAMcX76wCMHLclzkBtNnOmaeiAiEA5Z+sQyTm3NBId4bPKy4kO9w8Sz93vrVooCKu3oLLgFE="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.3.1_1647883059802_0.9243921628231664"},"_hasShrinkwrap":false},"0.3.2":{"name":"@flowforge/flowforge","version":"0.3.2","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js"},"bin":{"flowforge":"forge/app.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/localfs":"^0.3.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.5","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","should":"^13.2.3","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"1180986f2f4d8dd0472cc8d90b7118bc464ebeef","_id":"@flowforge/flowforge@0.3.2","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-PrMtl15l5GMQzOglvXA87fWHcYt6ZX3zDJ8VNFh/2KaTLPGuvtjKw7dwk0oTAKG2vfxqkaz9x7FldCKHYTmPIA==","shasum":"7badac5f4816a4cd2c2f2ffdd37bf262633bd24b","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.3.2.tgz","fileCount":145,"unpackedSize":1222028,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPcyzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoAZQ/9FpPPkBB/bFjHjAOqrHkJYDIoGYyalLfKyIHFzWc5SRGRoI7k\r\n5lT9mS6J9eD/j821utBbylq4XkwCgUtR8M/n0FZOc7qrfPwdeHn27D+xP/xg\r\nYtGUx6xaNs1LzTdsV3p3M9Gr4aldHP6+ZErVH1OWboRXS4LDoQC4jvnO+55O\r\nZljkV1Co5ysq43H2bYMU/+hH/HReJ3B/sSIX3uPJKiLHhi2hc3f5B6xink33\r\nI83jYZ5cYUjBnU9o5URs2qcAtFSuT/bgWwO+jpS0TpWg0+XTWc/o/CgTrRu3\r\n3GIp5m5I9SGLmGMnUGqhfAVnPfWd4wmLEyxEK3GxZeCwAqSVEjC0D+39UNht\r\nLlnuwx8USshEWHBTwseKwlgR+vyOwQqROdigVdBx+R1HcHmK6TUMLkQjl8mv\r\nxF3JWDTXUmv7uAw16kTeXxgaZpRVf60izo4iWhg3biD258B+j0acq5WSfyIY\r\nDcvmc2LOmUBXhWAc3Bm/aIztF21lJTHaaDfdbbW0zdCYMmFaPzcYkkz+Hbq3\r\nnieKvxJJ2FAGeun31iRV/scH2C6sAK2k0icZvq//BwibFg6byfUxXuqOzC6p\r\naemWdn/lHvFJiOJsDt+0pbKYGud16M5yAnaChnvEvKJo7Uv9sAL9HToPnPhP\r\nZfptXuaRCxdTw92qg/qwSKIF5pWjabyMAK8=\r\n=ymiB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD80VbJIfRsHAilw8G0ptC9JRtMBGpFzsD9ZCCD041CGgIhAOCYtOMLhEBAmjBLoTL9THjQcrHbpMrBXr0OJN01ws9g"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.3.2_1648217267864_0.9547570050190759"},"_hasShrinkwrap":false},"0.3.3":{"name":"@flowforge/flowforge","version":"0.3.3","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js"},"bin":{"flowforge":"forge/app.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/localfs":"^0.3.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.5","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","should":"^13.2.3","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"fed5f72ad94b09ffc3dfc022a20aaf2915996151","_id":"@flowforge/flowforge@0.3.3","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-NYnd2GPLKsZfsHqv5bmbPr98v3DXD7OI5vrugadX2qTeBSGHDAt5x2yLDp6BP1M94MbtIF+yCL6uo5A9TTqZpg==","shasum":"9be7eadb7b361b46dc132043d3bbfa032971cfa6","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.3.3.tgz","fileCount":145,"unpackedSize":1222146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPeVNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrsJw//WqHtP45OUlHc+yVuUE1f6wRcNjxAf0/JfE2lx6lSzBU1qi3t\r\na3NPc/ihEQOgiA4bLQbM2KpjuSluiJik6Uw9gJltv79jrFA87fAy3/rKrQco\r\nwB9X/Xi15HSJ5u2aNA8a3f7E8jtBqyF6jSNWUy/ZosgKrvZomdhChwWdblKs\r\nhP6R9Vhbbn4pIgEEou2kadeqTG5AutvNU9O9k3RxR/V2+qIhjrOGNM+C1enS\r\ndB5KS8uGQ+3/xjgIq/kMA30du6DsLcm1RQDKNDc9eHVOeU8vcQbLx04xawAv\r\nSI1XacF9wWVJmnMtqkvb3p2Oz5/j1nLVq5/OxuU2pn8PpMW0E2JOpL/9AuIL\r\nwcM+wmi822cETl+ImfRSF87mKpnwMUcmj8uGdd0Q10Df3ulxgctlyPVdSnvU\r\nExs3tDpHkgBOg/j5UJ4hEzwJEdd8BDhyeciVrEpZ59+K2SE6eakbB40YHkW6\r\nxHw+t6LlyKXBfcLo51lKAtC7e1XURNH/NTInV9Ked8re+QNkTV6RSgBTQW6F\r\nfOqsdJ+AdacZeWh40Vu1tjvxxTY0Si9bhp9E8cpNO3cIP824FKMKYD0pIdNw\r\nbzlHlnbEIrhkDDMvrK0aaOgLnjyA/EwvQFOQmh72dnbZPLVMS4p95y66c6ek\r\nbayN2sxND+UMiO8/1Qyu88WIl3Hp6kkidvw=\r\n=YBa+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/2Txy4oydX1uzEwXdKNYohUE6WRPss56RWCeuaHPmzgIhAL1tTTXan9Z1gxC634wj47614WKI4k2cm6t/aze7r8x2"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.3.3_1648223564852_0.9089375884160618"},"_hasShrinkwrap":false},"0.3.4":{"name":"@flowforge/flowforge","version":"0.3.4","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js"},"bin":{"flowforge":"forge/app.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/localfs":"^0.3.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.5","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","should":"^13.2.3","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"ec24c26e5d2d490c2a95b70d050b677e4e68e383","_id":"@flowforge/flowforge@0.3.4","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-2EJ1hfvwNOCgTUlZC2M9QuwbFfu9Tx/CeHOrYReWYGzSjoMc8MIVMge7iDbzyuyVtqPc+5aOmYHFUmXr+xa+nQ==","shasum":"263166e737caf52cb06adf4e9787bb2dfa621c7b","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.3.4.tgz","fileCount":145,"unpackedSize":1222981,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFOcvOZO3G3dvII4mtojdIvnIHBy2pg4+tc1Uu9sCa0cAiEA93zxclkNn0IrtXqThkmrkiZZkwWtBHRaiXUm7eGxexU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiSswPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrFKQ/9H0DBGxltMhTnOtRZhUg6Kqpf6ofhJZaG/0yR59ccMSOxMaWZ\r\nqb9zzJb++yI58NROtOXxt2cJfjuycKuQXYct5nHK/ai9oqXfPUwzzK4PqCzc\r\nk7St3/EF50xLWCzLiebkdAps6+5Xk1Rfoeq3ykzYhQzqxBXSe/F/Xc8knA6T\r\nVbk9cNLu/ZKR3hWzNbvnggeNAwGNygA3tjqdpVHv/KL+rh5qco8+gIBdL33r\r\ncSSZ4Ro5KM5ayBcyX6GVdZdeovGJpyt7vKhXIRRa3aQKuGj/ur9JAPIvP1r9\r\nDmQ5oZhMAN4MKygAdwURUBW/La/yeAEd4yg3pOdVD8b6+mR3jJcRr5PKUNcV\r\n/XHs0zFuha9q/mNmc5WeaoMbzWg1mlVFvG+GBdmDRYvtvofEqQWW+7Em9kIC\r\nes6xjQIaUITqtOTfqxYNLd8cmRUwbPfVzUNfAVCxYRmbC5BMardasn8D97nW\r\nmd5pdJquQ7bVsvRmdbbjYHm/CUq3iRn6GiafDpIfUo347r8NWqSkXCc63q5I\r\nh8+k/k58Jz+6smcF2eJMNcB87RB83X4bNkHYXLnc627Z3CEBw71tOx3m1hsQ\r\ntzcsmzKHDygKGeqIyGavkQuOrAqdNbQ8LpTgg2qTm5Ru7jQ42JqnDprHWtCW\r\nu7yXg9dgv+NnV6mTaA/09fNKyGHY9s5+xqQ=\r\n=+1fO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.3.4_1649069071464_0.3031931667835548"},"_hasShrinkwrap":false},"0.3.5":{"name":"@flowforge/flowforge","version":"0.3.5","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js"},"bin":{"flowforge":"forge/app.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/localfs":"^0.3.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.5","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","should":"^13.2.3","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"f9fa07651b3acbe030d0c59efb4c697e5fb7729a","_id":"@flowforge/flowforge@0.3.5","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Epc3/IeRp0zAgOHIX3tA3r7yVgObGX06tslO6AWpB2nQUZyQ9aGmE0zZRytU1/A3TaGoXlzSKE+D6Xo/L89auA==","shasum":"f5f257c5b65972fc57438cbe70931e70842ea0ba","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.3.5.tgz","fileCount":145,"unpackedSize":1223106,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlRMMqiiinYYcq0mdJpdUj7e/PEworgS6c1HFcWEHBFgIgd4PPHv8+MvagLj/Si/v8ob+qfAaVqs8QtcTN+WGSLxU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiSxRRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrOfg/9EGl7cCXlgcSQ4EtBK2kSWrbfsq86+lWsvlGSeuvu6rZ4+dr7\r\nb4dLOwSntkwDpM+bKFi2MP38eLfhAgkn3DG7JIx5LpPe5GdPFFzLcuAKJF7Z\r\nfzctqSZ9/AcMsBusaRqWIfmwRKBZbSZEuTR7hTPcAAScYcBupoT7j0F/OMO3\r\n6fTuYk2ecX7tVkgjJvUDllrbyytZCh0dLxMbSKSk05BGF6Io8BQ7mvmVCG/q\r\nf0ACifI+PWhrDrHaCrauSkABquJm/XzKKxWjCoJYYNF5oVQi1VHlpj9eA9uL\r\nUdR9h41tUmxlpGsLdqCq5/TmHQ3iNPyFg3bMxwNyEmbl+Hmmnmx31j1wM8x1\r\nKLBEPYCgRAy85uBx1a0VqiIAvt4patneLIV7sPBfAJFPKb9C8X8pyhZtL8U/\r\nYbELk5IedepqJF+Nd9WdK1iDPf92cNFtzyQ5lL3VAXcKhE5Ray3kKPsxV/Jj\r\n8FcIKKlIQ/uSs5auhGkKrDuDyOs2jE/c8fL5cUgzQ53B249hl0iYUOq/IJ4D\r\n/2iOjKvfSQnI5dLxSfOkxhlIjx+fPRBv9nqkhRct69uS6YIWVkD31qwwmju2\r\nW4gF1GYQlLVJsg95rE75n7QT6btVX3QE6UqPfC5wz465XAidl2FRA96iD8qz\r\nGAhoriGKTmpZKpOHQPGgVfb1+oS+YJtfgeU=\r\n=hqjl\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.3.5_1649087568584_0.5644405440988274"},"_hasShrinkwrap":false},"0.4.0":{"name":"@flowforge/flowforge","version":"0.4.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js","cover":"npm run cover:unit && npm run cover:system && npm run cover:report","cover:unit":"nyc --silent npm run test:unit","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html","dev:local":"cd ../flowforge-nr-launcher && npm install ../flowforge-nr-storage ../flowforge-nr-auth ../flowforge-nr-audit-logger && cd ../flowforge-driver-localfs && npm install ../flowforge-nr-launcher && cd ../flowforge && npm install ../flowforge-driver-localfs ../forge-ui-components","install-stack":"mkdir -p var/stacks/${npm_config_vers} && npm install --prefix var/stacks/${npm_config_vers} node-red@${npm_config_vers}"},"bin":{"flowforge":"forge/app.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/forge-ui-components":"^0.1.2","@flowforge/localfs":"^0.4.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.5","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","moment":"^2.29.2","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"e2de1c82b18e73b4ff1ad263c712dee670ce0a40","_id":"@flowforge/flowforge@0.4.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-BtswF7QhFKIFqQJQWQ0fXSnQWrKjkZp1WZ75KMlK6Ut485EDiFvG8PpzzVUoi0PBw4tgSTGak8pcTitB9XJ1Og==","shasum":"7bad918f846424f526557c5a4919707cb085b0f4","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.4.0.tgz","fileCount":159,"unpackedSize":1712395,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtwd/chGWqMKDrujP5m0zHF6pudgYISym5lb7xk7KTjQIgSv8U4sSBbm03Xbzy15D6M1XlKoGq3sPUTiGqcCZq6ds="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiV/74ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrhMBAAor5jBCTc9nlPTlkVRmXW07aYJ9gHVzBYE0nM8VdPGPM9uypq\r\nPs4GPhruR9eu+XFJ9BCNr6OUme8HHdiMHpod2oFBkmlLGrBzrN5qaZ+zE6Zy\r\nBs9lWOwqVrR4ByK4z8FAJ/A/YcS2xmTh8WxpkLzuYXM9RI95OxnsGbryc2pO\r\nsy6KLE+ZpETWY1JG1oq2OsJ0jzKyzB2AF3NJLE0irzRbHFTB4rJT8kdScJKd\r\n5ZzB2Wpm0RvM31nzpVfWa1HyxNAa1e+YugpTnKd9yxe71iCgeJT6MGKcUXCX\r\nKTFN9qQpMIoQIxpQV9oXv7ceNE41ekeGLWN1eg83y+1Ci7rVpsp4y0xKGp9k\r\nZG6NJOiQvLdp/IMdao3e3c2RSgAhLqB++rx5vON2W0/DAWADoirIsByvnJhL\r\nvvo6cK4MM1a2ZHJ6iuTle2arR60Z8JGz7rrWQ85dy4uDB+9u2ouwdCa3+CVj\r\nmCgzDW/CDC+JUtDtnId/HbOzmtVkmsfSu+DPyGsKjRTUE885pt00/6UXO8yI\r\nySRn36Ei4+zQVbRcEvkjoBgEwapImh/6+lmzw0OosIWRWw1gp1CliAHrOkZX\r\ne506NLxeynA5BXb8eB1rxtYGCPVjksjj5lXRmr3lj+JlDkB3r4a9Jc6EEMoy\r\nPmqCVFqdrHFDB3FVHpIrLPo9bQGjrK5SyaE=\r\n=h2JR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.4.0_1649934072138_0.5988830081736785"},"_hasShrinkwrap":false},"0.4.1":{"name":"@flowforge/flowforge","version":"0.4.1","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js","cover":"npm run cover:unit && npm run cover:system && npm run cover:report","cover:unit":"nyc --silent npm run test:unit","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html","dev:local":"cd ../flowforge-nr-launcher && npm install ../flowforge-nr-storage ../flowforge-nr-auth ../flowforge-nr-audit-logger && cd ../flowforge-driver-localfs && npm install ../flowforge-nr-launcher && cd ../flowforge && npm install ../flowforge-driver-localfs ../forge-ui-components","install-stack":"mkdir -p var/stacks/${npm_config_vers} && npm install --prefix var/stacks/${npm_config_vers} node-red@${npm_config_vers}"},"bin":{"flowforge":"forge/app.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/forge-ui-components":"^0.1.2","@flowforge/localfs":"^0.4.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.5","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","moment":"^2.29.2","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"7f9b2868c27ab8fc0221a67a941b82131d917f87","_id":"@flowforge/flowforge@0.4.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-UU9UlnJB/vOlvpgpBLN0gEhwhH6UK79cUKEVP8ylxbdL9fy1IyFOEsQPQWqsWZZLNDgx6aqug9UaMkqVoMeN6g==","shasum":"483cb7a6c4e71383cc3a320aee880b9c05053a60","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.4.1.tgz","fileCount":159,"unpackedSize":1712471,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpwHpIkHXe+TYK6AtOy3LjMjzrhblqSWiE/UlqYBaRSQIhALyTBVoW2PKaVVzM5svNISD1r5ouV+Zq5LgXoEMw1aLm"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiXsHmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoFAhAAn9sMgzanVsPieOjjG92l+H92g2w057MU+OZ8gR/Tvnqim5id\r\neI9MC2FEoDtcHBbHFgHYo4EjFTSnxpIZKgEQOFu+ISwi/BFoNHz/igGanaIM\r\na0lEC4G2omYgajwc0zJr0gLRMzEBiGZtSL124APq62R3A2vvG239m+dw0T1u\r\n6YadSaFpwzveEbztvxheylv6AvQPjn9LQoe49CoZb80ALh7j8P2BOvoMvOPK\r\nELrCGuKHeNNenj288F6Djnh3cpjmmuKNJUBGeXC82RJaiTTNJhMMqm4FuUxR\r\nPRwpVo6btyABxsvlR5YCF+PPdqb+snrbZccYQQdQa6tAE6rbFrmLRmHLu+gU\r\nldsvFt6xuwrxOTVvZVzlj7BPL55nZhFApRwEKx7b3lHeZYSjIE1Kgl1Iom+A\r\nbff68HgmTbspnFmPKOP2g202Sk1eSxmwt73xg9S+HNDLI68/oZphw84da7V7\r\ngcL3YDMBY14U8R4gM8SI2M5c6XrUztmlI8RwV0BrszbIOo3b1WpOkejq+/lB\r\np/6aYB7IWXcnOCPdys6eJHzk08zMd6VMHltWYkeHpw1v3JTtPgJHz8A7IOF/\r\nim7No12dIsQb27g9VNkP+TM0dyRJojMpRAj1E55XhvmeymGFQx1xfDfvRJ+s\r\n/7ZAF1MeBx2wYvfoouQS3hA0dgcbnN4qqDg=\r\n=6/kQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.4.1_1650377190234_0.4788046134679842"},"_hasShrinkwrap":false},"0.4.2":{"name":"@flowforge/flowforge","version":"0.4.2","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js","cover":"npm run cover:unit && npm run cover:system && npm run cover:report","cover:unit":"nyc --silent npm run test:unit","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html","dev:local":"cd ../flowforge-nr-launcher && npm install ../flowforge-nr-storage ../flowforge-nr-auth ../flowforge-nr-audit-logger && cd ../flowforge-driver-localfs && npm install ../flowforge-nr-launcher && cd ../flowforge && npm install ../flowforge-driver-localfs ../forge-ui-components","install-stack":"mkdir -p var/stacks/${npm_config_vers} && npm install --prefix var/stacks/${npm_config_vers} node-red@${npm_config_vers}"},"bin":{"flowforge":"forge/app.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/forge-ui-components":"^0.1.2","@flowforge/localfs":"^0.4.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.5","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","moment":"^2.29.2","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"e663a0328edd60a06d334873030df531d04e09a7","_id":"@flowforge/flowforge@0.4.2","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-RIgkitxsH2G++UfG1n3dNyIgRHmqkqmvs6AqI+NbNSw5aBbVOamobsj4rcI1uzkLU+n4vFDcxkwcSFEZOdu84g==","shasum":"ad97a04cd5d22f29516984a3ef68985b3ee59f69","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.4.2.tgz","fileCount":159,"unpackedSize":1712557,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGzYk3LvSeQ81hjzRgq4nJ/6AI4VIZtDTatyA+yQ+fwgIhAOSCEy9MRmX7PNKlbeLA4wChQJ0fOBofWokFzUhLF50C"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiX8nEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpfhw//QOLbfgomeEmcpMzafreVG8UsCGZ2SLyMibYHxshWV2NxMxAj\r\n2RSlaSXWzddu11mvN6+YGC1G4ZqlnPgGEt5cc4fpnZGrCGeJU/pbMoPhpdRD\r\n/wJ9SBFhapUIgHv3jjhcgypww1fxah1m/5OtNvwf6iTaqvBGVR9sAe0CuTEd\r\nreeA1wRBNrjT9z/7mPiUKUFhktxhPPOHWnmxJJJRQwvcVIF21kjydExY3Jjz\r\nrpKAL8prlHKU6j/RYo1+O2Dy4gHJgpuKr6KWvqp7p24HWsFhgS/veLLrl5Ko\r\nIrMj1rJXxt6Szgm+7hSy+lRBgp6gHBi1k5HW73LbZpA0MjPeae1AZv1Da1r/\r\nkgoLSWdVwdJ/d/bZVikNpboyspLzJAJs7ent4vJtZIjLGCH50TZx1IWkYVg7\r\ncdkJTKzkkGdZ9RU9AKZP8A7ChfgD3TiWLaud5saLKvyvJ+M+Rw6Iw4cacB3c\r\nc0puKHFi4+YQlbaAqSficzAO6VO7pZFz6FzELGLRyU36+Jr7/Ai3ZyBaQJ7D\r\nJTZdEzL3CWbv4vLZCSkZx4CO2xIL7Vw1Hp1xDvjQAAjIsH84rp1/Vg6K8NHt\r\nmMXPuf/8zzRdssZl7KN69iW483Bj20mnG4Bd1CQQ+IOM2eZA6WjlbRIEnobB\r\n9TGVSVbLBtuLEB3VpQopv/IKi/hq62KEtOU=\r\n=6xVQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.4.2_1650444740507_0.42613140612266087"},"_hasShrinkwrap":false},"0.4.3":{"name":"@flowforge/flowforge","version":"0.4.3","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js","cover":"npm run cover:unit && npm run cover:system && npm run cover:report","cover:unit":"nyc --silent npm run test:unit","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html","dev:local":"cd ../flowforge-nr-launcher && npm install ../flowforge-nr-storage ../flowforge-nr-auth ../flowforge-nr-audit-logger && cd ../flowforge-driver-localfs && npm install ../flowforge-nr-launcher && cd ../flowforge && npm install ../flowforge-driver-localfs ../forge-ui-components","install-stack":"mkdir -p var/stacks/${npm_config_vers} && npm install --prefix var/stacks/${npm_config_vers} node-red@${npm_config_vers}"},"bin":{"flowforge":"forge/app.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/forge-ui-components":"^0.1.2","@flowforge/localfs":"^0.4.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.5","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","moment":"^2.29.2","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"f552ae401e8750e7dcde1b11e3133f422d9e8c28","_id":"@flowforge/flowforge@0.4.3","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-q84JdLK2mY0MoRUrDDQWiF+0MWjB216DzHhbLqaHgyAo+YgNnTVukAUwr6JI2Cj2KivcWCYKxJ7kMyhTnY/SQw==","shasum":"59682ceda63569c05b89b64b885929dbc7750894","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.4.3.tgz","fileCount":159,"unpackedSize":1712645,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGhJqI26XbFXnSfyGBkDxg6oWrRH/OJec/zTs4yAWjTsAiB/qkYXB+1hZ7wMwWknMe3M8uTA5v8JWGtCxkS6qKrnsQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiX9qqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo23A//SRd2YiA6zWqwWYzTcKxvTD+oEP/VuVICYyMSRGu1NvQ84Cwj\r\ns2SI5G9DT62ovzdL72DPt4ZMYbbou36yZcNcCotbTGAVYUfyrE547Ikz4wzB\r\nAK5mBVGSFDE9P2LwmHZhm1Y5IaI9AwlElPtgNlDnXaHD3+NXZnh7sB/9FBDG\r\nDT2pe/wahMsGSxsG3zZOznHGuW+IR5ZDgzoBzinfwYKg3YvehoclIwAlkxPA\r\nWayExVwNsNoCUlX/gUJCVkSx5N5KDt1/2789ybb4py5FO8eQNqFt0ZZPQypT\r\n10tr+kNU0BdNcNLZNLR201cERq+mA7RaKHvAa8cJPaBztIazrdebw0CT88bz\r\n6k+8UxjJCOHB8syB9nOJB5jzAhFdK6deWGizAwQJaUoKlUZtzwTJmxoAFM1Q\r\nakJy+9AhQkTYjdZ11URllih8tPLOTf5u3QHPPdAJmAxVEljopiHKlKVRQM2f\r\nnYYTb1HMCuQL5vtXUCLecgCODUaSbTmWFUlkSdmh4KpbFsSTDYBDPg75Qaay\r\nyVDYrmUaCiPW4DAcUUtTBnWYfVVUsYGVjfN+a6k0ZOox5X6iowU3mNpqCvQV\r\nNm1fVAfNhJSboPJChNq4TabV0EqFL3TNERn0YCmJO7iNsxbDXulIL0nAUby8\r\nY6w+jGQzCEzNmre8qTGN/rb1GmfyXbfZekE=\r\n=JiZZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.4.3_1650449066544_0.8420648329216647"},"_hasShrinkwrap":false},"0.5.0":{"name":"@flowforge/flowforge","version":"0.5.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js","cover":"npm run cover:unit && npm run cover:system && npm run cover:report","cover:unit":"nyc --silent npm run test:unit","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html","dev:local":"cd ../flowforge-nr-launcher && npm install ../flowforge-nr-storage ../flowforge-nr-auth ../flowforge-nr-audit-logger && cd ../flowforge-driver-localfs && npm install ../flowforge-nr-launcher && cd ../flowforge && npm install ../flowforge-driver-localfs ../forge-ui-components","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/forge-ui-components":"^0.2.2","@flowforge/localfs":"^0.5.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.6","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","moment":"^2.29.2","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"c6bd3fe7f2014239a20a0adaaa5f1c99001996f5","_id":"@flowforge/flowforge@0.5.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-lwdDD5j2bsje2TTLka+HrMUkFR0J7sJniGMe577mLHhleTVY2OBS/39WQ9kOdJHPJbnlpmdESxQ2vP0FUihAVg==","shasum":"e2cc4068bc6f5124823a3ed3b476b109bb3bc10c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.5.0.tgz","fileCount":174,"unpackedSize":2121633,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAV4hTQwWJNu9WIxmuC9uE5C48siVD3yHZdnJKjDBJe3AiAC9/mWw317po6pLWLzyAK+6MEq31ouilCa0aVVjCUeOQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifNxgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrxbBAAmAwEz63uouPbj4+nfDvCsk6kiXsvvWcuT8TRDLh3Xm2lXlm3\r\n7BmTyJwLbAeTmqchRq9+pi9YahOPQS0keDxxz1vJl9no0Iyl3vXW26JAJ0Aw\r\nNPrBc0CbBSvYi6G2V+Q3aVZ2gGgTatPk7/X1bjgY6EB7SbGEMaeDgp/aD4ib\r\nwV0MLZMoAlmwEnhd6IpbfTFAJCWMsimhWqgnfaV22C+/hcAcEnXQ54FhYpFJ\r\nk3mduegq/COo8DdSkKHzVuZKOGrCsZMwwRKPhC/JX9Dp7OT7HRjaje0PfSja\r\njHjRD2uErJtpUfFZbOPL9EnCyyJH6Z7WQ14VRhNOOnXlW5cffpYAM2V0fUYl\r\nU84iN9ZdJa5kKoPNuxbP2yCZ6BiDY7wN0XbvFuDgdVKoTqEoV0sivurIDGQZ\r\ndAH1sKu/NZ77S8GMZyxzYxyqrbu+1DAcEgekOHmjDR6Ihj3zNdDHAjthuM4z\r\nubBJ9yjkzI7/7l14p5Um43pUsxVuydlGZzEGHn+S7HHeRrx29u5BCU8aSLVs\r\n5T41vnCvbf2ks7e+VitoEHVsuTl1fg6ieNs6CHRFnUOVIqTw2gsUHQN2DDFb\r\ncUjPRmKw7PyXqUGBZcT1GBcFfUt/CDrt+qM9kmRIV5A2Gqr8cPOcmTlm9uQX\r\n3j3pQe62+qjWIfqlYfzZCEA0yCh22XM1vGg=\r\n=KWRX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.5.0_1652350048007_0.17023492630271786"},"_hasShrinkwrap":false},"0.5.1":{"name":"@flowforge/flowforge","version":"0.5.1","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js","cover":"npm run cover:unit && npm run cover:system && npm run cover:report","cover:unit":"nyc --silent npm run test:unit","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html","dev:local":"cd ../flowforge-nr-launcher && npm install ../flowforge-nr-storage ../flowforge-nr-auth ../flowforge-nr-audit-logger && cd ../flowforge-driver-localfs && npm install ../flowforge-nr-launcher && cd ../flowforge && npm install ../flowforge-driver-localfs ../forge-ui-components","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/forge-ui-components":"^0.2.2","@flowforge/localfs":"^0.5.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.6","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","moment":"^2.29.2","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"56227369fd2cf8fb2b99c17b3ee16afb81b7c5f1","_id":"@flowforge/flowforge@0.5.1","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-vw1xsDORJoxPz7wVFrhtlY5QLe6rrXUxMotlBnnERM4PvR4LpoCy0ILLSCE/a0dfy6RKg0AMXtIt8QiLfFfHng==","shasum":"31373936818f8ffd051358e8846fdd55e7ff8626","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.5.1.tgz","fileCount":174,"unpackedSize":2121789,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGMeon1tIeKHBJWs7kEgpAXqW/SY4JtFDtAeRB3rYuWAIgY6RmGdT06zr2BXDU/jVeyvSqobUk2dESkjDde8DJthw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifQuqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqqlg//YxYNOec/PQB7KQKtNk1FMaQFgSCfmPoYTkSHhZmxr6sf4+gC\r\nqBfNl09eRegldVm0Z7gXLZ/yi6iMIEVaSqXWFEyDr99SAMSW9YAT65x7aavG\r\nn15grv2rc3M1zBIUdl+MJTYCvOP5sV9qPMeaChj50E9O38KGVMYS0DpztrJE\r\ntsTVh4NCVLrdznOjZTOaD001GcnK4edkvN+UWSRz+/Mv/a2dl0gXBlW14GYi\r\nByIF8B7spZPAlmcMuBwyihwEO4bCZsbHBtp+p8LzlRyNBjZJzOLvGxxbgPnw\r\ncGm/Uu7ATIA83lP0tDbPoxVzsNkcIj+k6LJ8Eqib2+dNbsOEzVTF545M0/bp\r\nxJAQJSU+agcPMrUBGol/GHidmaAf8wsNEGMncADodnKBSAFU64ku/hcsZgd6\r\nAY8GIaUAa+AVUHTsacMqojEPpTQh6+eQV/VqkYarqho9oiObCDwV/AN3P8BQ\r\nymS9NxUH+f2NgwolUdYgpQN6l+afhLonyKVVwOd5cvdVpfD0PYz2fyeQ+w/G\r\n3PxTtJmZZXO2d1Yx2XUmPuVYcg++DDg96aJdr2txMm3Q3NLRYkiR/UlT0D2P\r\n42KU1WHOZLC+sjDNgn8DRjivDOLAup93yZJlxpskJ63T6b97a+zQmUXY9MtT\r\nTrOKYXKSZK5em6vca8bZ2s/xw3m6r1Xwuj8=\r\n=+EY0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.5.1_1652362153876_0.6006666964869647"},"_hasShrinkwrap":false},"0.5.2":{"name":"@flowforge/flowforge","version":"0.5.2","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js","cover":"npm run cover:unit && npm run cover:system && npm run cover:report","cover:unit":"nyc --silent npm run test:unit","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html","dev:local":"cd ../flowforge-nr-launcher && npm install ../flowforge-nr-storage ../flowforge-nr-auth ../flowforge-nr-audit-logger && cd ../flowforge-driver-localfs && npm install ../flowforge-nr-launcher && cd ../flowforge && npm install ../flowforge-driver-localfs ../forge-ui-components && cd ../forge-ui-components && npm install && npm run build && cd ../flowforge-nr-storage && npm install && cd ../flowforge-nr-audit-logger && npm install && cd ../flowforge-nr-auth && npm install","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/forge-ui-components":"^0.2.2","@flowforge/localfs":"^0.5.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.6","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","moment":"^2.29.2","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"ef4da82e7018098d79d44b29b902312f45c9ad00","_id":"@flowforge/flowforge@0.5.2","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-nxp+3pNHqsNRhClUiu89AhWNDEt1ENY1RHnbCcNeTYrv48ZpSKxYembQC63zeDKbTM349ewwwoS6UpE+hvHKCA==","shasum":"1bf32ff262074f77c9ab6e3d44fb67a661f38817","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.5.2.tgz","fileCount":174,"unpackedSize":2123188,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4jmns2boO/zlnV8VEJEbvnu4AtmFIMWKptA5r3YPbTAIhAKBeEEUJPcoS7VM3QUFZKjQ0QbVqvwoab11eqnTcz8p0"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJihhxnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqRQQ/9Fsihe68hPgwHQLGOtn3G0wN56iPTfzGEFoeOD8fegr138SBB\r\nPcRQ0vVcjQGJR9P4OcY7PFoqs9ritLThAn/MF7Y57TpcIy0sVO4vkryq/OCu\r\ntnY+eO6t66bmcfswNSB2tHB3nq0homTOS/5Ot5JOHYClpj17QDsNs6tUoNvd\r\nLJtJtC7NR71WUT+ytC2R2kbhdReHbyLmQFawRlY+x84wPKxMt8N/Z8lfTEI/\r\nM6wFkyHS/E7LG3q/Nhsyeob83KpNaIaIcuVmukE5FKZwP8ruN6cZfb6VGGaw\r\nstX4saXdNRMzaVU7Bb4dmiGlRv7mBbKSvau0wHzC6a6ZhMiKaUR8Ak+T6bOC\r\nvL5RhYOh6gogm9MpfDIrzyp6QQBsgefpLD5v7xgMIMZx07FHbOr1WioyvPZQ\r\nJ4ewd4jnMcJbCMH2JciU9X3iML56Ibuq4iZzjlSLa7GhXbVhUPtqUl3cKygu\r\n4LHHU6o02GqZVeIYypMs0oQTxQKIKPStLu6JZdh9xeESABOteg7/WnbnGVKs\r\nDXu2LBrG+VGek2lSBZarAc9Ec7w26W4EXNAX/Qkk7kYLRgOyVtVVRkqLe9Q1\r\nFYAC2jnAKoe6J4ROVhFyXQXBLWgLNhRilKCZoQXiTtMGgbCc75jzkrteJJIc\r\ninJzC1RCwJOYx3xAP4M/W7JhoDxD1auo8e4=\r\n=iFQb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.5.2_1652956263071_0.8546009869575606"},"_hasShrinkwrap":false},"0.5.3":{"name":"@flowforge/flowforge","version":"0.5.3","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm run lint && npm run test:unit && npm run test:system","test:unit":"mocha test/unit/**/*_spec.js","test:system":"mocha test/system/**/*_spec.js","cover":"npm run cover:unit && npm run cover:system && npm run cover:report","cover:unit":"nyc --silent npm run test:unit","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html","dev:local":"cd ../flowforge-nr-launcher && npm install ../flowforge-nr-storage ../flowforge-nr-auth ../flowforge-nr-audit-logger && cd ../flowforge-driver-localfs && npm install ../flowforge-nr-launcher && cd ../flowforge && npm install ../flowforge-driver-localfs ../forge-ui-components && cd ../forge-ui-components && npm install && npm run build && cd ../flowforge-nr-storage && npm install && cd ../flowforge-nr-audit-logger && npm install && cd ../flowforge-nr-auth && npm install","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.49.0","@aws-sdk/credential-provider-node":"^3.49.0","@flowforge/forge-ui-components":"^0.2.2","@flowforge/localfs":"^0.5.0","@headlessui/vue":"1.4.3","@heroicons/vue":"1.0.6","axios":"^0.25.0","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.27.0","fastify-autoload":"^3.10.0","fastify-cookie":"^5.5.0","fastify-csrf":"^3.1.0","fastify-plugin":"^3.0.1","fastify-static":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lru-cache":"^6.0.0","marked":"^4.0.12","moment":"^2.29.2","nodemailer":"^6.7.2","pino-pretty":"^5.1.3","semver":"^7.3.5","sequelize":"^6.15.0","sqlite3":"^5.0.2","stripe":"^8.205.0","uuid":"^8.3.2","vue":"^3.2.27","vue-router":"^4.0.12","vuex":"^4.0.2","yaml":"^1.10.2"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"6ca8a868792926b95142aecaf56c5fb6174e20f8","_id":"@flowforge/flowforge@0.5.3","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-Fl5NKBpkzGVVpIIBru2mRI46V4pyrfHSjWvF+AjrNrizlU6LO9A3MKGMJa3bY+iivQUB8JFOnIdC7PlZPTiGbA==","shasum":"85d8f19c3ef01172ecd20377e13b751b8168fe74","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.5.3.tgz","fileCount":174,"unpackedSize":2123391,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTZFvSyWMaBtI9I3c9fzVUEABnwxOoF89Mj/cSh6/u9QIhAI5HjXDls1Re4TWjVaOXShNGHSe/T0pJidNV1TXHalky"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijLU8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo/TQ/+Lzq7WLKqeb/nKv3z2XFppkWMHWK1QzcbHNYe9msD4UexE16B\r\no/Q4aHO+woNKLFehd57jMqdvjUFyx+jnzd16CCm0sJbZ0RxbWcMz5w7QmHNL\r\n4M/bYWYvIIexnUbiyJGtQCJec5moTOAKPlk2vX5ESMxosLPWfczgfCgQ4Nfp\r\ni12hLRvzbkn1troxas8N+ZAEexJuS4G3qXYYA+YjZ3eXeyVxpotFBMkc4J/M\r\npMbbx9dZvJSNFn6bewsQKLHZLj0xCMFEWaIs/zPVrf/7yND2XTPblL8tdUhW\r\naruMgVoD6EtpYUECZ89vq6fMHXt+nUaxO8NxyV7owJvVN5u+RcfNM2ycQOAV\r\nWUBKDNFAf58CUlmAkcOrxcSIOT600iXdKU4kBehbPmeRdeGO1ieeDLKBgRmZ\r\nyNCZfdvALctq9Sz3H4s1LCXgMfMQ1KqqtV+8AnHI62rArCWHnWRoO8/hikA0\r\nB1OwmJOTxOuUA5JWo30S9GMWIq4hsLlz6kw26oJ/j85iEDKFPszHB6QF04eW\r\nCTF+6wEIE/bC/kXRdLWQGvZFC6Cjy72uiHtuUcvxx22GUcxxjhipauGG/kzf\r\ndJOBRyQGBuCrLXVOHQgW6TVbcEOUrBeJX4RSFghs87cYRkgc7bSctc+wC0bd\r\ntTUvM1O7s6fuAm9ypllLBVPuarKV6nYSh+E=\r\n=kEM0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.5.3_1653388604419_0.37811459404685777"},"_hasShrinkwrap":false},"0.6.0":{"name":"@flowforge/flowforge","version":"0.6.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js'","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js'","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","dev:local":"cd ../flowforge-nr-launcher && npm install ../flowforge-nr-storage ../flowforge-nr-auth ../flowforge-nr-audit-logger && cd ../flowforge-driver-localfs && npm install ../flowforge-nr-launcher && cd ../flowforge && npm install ../flowforge-driver-localfs ../forge-ui-components && cd ../forge-ui-components && npm install && npm run build && cd ../flowforge-nr-storage && npm install && cd ../flowforge-nr-audit-logger && npm install && cd ../flowforge-nr-auth && npm install","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/autoload":"^4.0.1","@fastify/cookie":"^6.0.0","@fastify/csrf-protection":"^4.0.1","@fastify/static":"^5.0.2","@flowforge/forge-ui-components":"^0.2.3","@flowforge/localfs":"^0.6.0","@headlessui/vue":"1.6.3","@heroicons/vue":"1.0.6","axios":"^0.27.2","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.29.0","fastify-plugin":"^3.0.1","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.10.1","marked":"^4.0.16","moment":"^2.29.2","nodemailer":"^6.7.5","pino-pretty":"^5.1.3","semver":"^7.3.7","sequelize":"^6.20.1","sqlite3":"5.0.2","stripe":"^8.222.0","uuid":"^8.3.2","vue":"^3.2.37","vue-router":"^4.0.15","vuex":"^4.0.2","yaml":"^2.1.1"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","@vitejs/plugin-vue":"^2.3.3","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","c8":"^7.11.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","jsdom":"^19.0.0","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.12.6","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"94ee949e9659cd2a72095dab87dc1eab34e58251","_id":"@flowforge/flowforge@0.6.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-W6zGIitZ0qj4XwHLlja3d+2NB9RCxHdVlebKyAaKMicZiOpnnU/r6Fn3w6awLlLAoR786CkGSvf1UgVg0/luxQ==","shasum":"af72b70847376a157da9a0c8d5c14db277a4e595","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.6.0.tgz","fileCount":194,"unpackedSize":2727029,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDi80wpK/b3ZzLuH/3xCqX7LQmjIadJwhIGU6oavbjiAIgbAHt6zbwRKugtHtxJmGg+QRg9XnZjcGmXL8W58pIVYc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiob0jACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrspg/9HQw1LZZ3l7as694I2bx7HhKzkKgDOmr3q1MCWA4UaKeBPRPF\r\n3gisesTCboSvH92oWGP4vsg7Sz5MU6H1aTipQdFLXckrzWeKVSO2o6MxQanh\r\nHTp/Ar7TBm9T5S/uqw8LHvnw6yme3o0ZC5u0ADh0PgIvw3UKE38f+7eFyO49\r\npYvDpzghiuGAYpoxWZa3OEBlFfzUcZTcmBAh1MO9VFfkKTSmKXTf7lqLQUmm\r\nXvoeDOmTvyTCIa0feNTPJ3Tkjmayh5Ui/8OwgWs7SA1U10ldDvFxFSuMD0D4\r\nNjXWspdOFy6f3N1HmiQEdMwWAPZOYfT63j88oD8lpdvI5n1l6Hsl+bRSyqfp\r\n7dSDsScWGw4qym5pBtqYBwSerM2Ihbw3SQ6+xGzS/LQtSQGxY0mza7+0rsj8\r\nbkxHTFQadMS4mkszaRaZESTKWV+hL69PiNvqUvicuU/kCHrKAmY1894Us57M\r\nMnmfqAQxfZp0mmMegDZOFaE+FsFGaH6CAdEJcWX/G0RMGWGtZUCDxP3WSlh3\r\nYSme/yK7XGXEJkVM6kXx5pnQJeb3x20dFceEMzXF8GrRIOk+lyO6HRZog30l\r\nWgB4DPZakVB9ykYIxh1wJPs67Ax15JB9PNzQzD6WhUusXE0hJtJoYfV43ukI\r\nJB5Mcq0v93KQMGMPFPttN19EXpUZsS++KhU=\r\n=quSl\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.6.0_1654766883496_0.3907088847431428"},"_hasShrinkwrap":false},"0.6.1":{"name":"@flowforge/flowforge","version":"0.6.1","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js'","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js'","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","dev:local":"cd ../flowforge-nr-launcher && npm install ../flowforge-nr-storage ../flowforge-nr-auth ../flowforge-nr-audit-logger && cd ../flowforge-driver-localfs && npm install ../flowforge-nr-launcher && cd ../flowforge && npm install ../flowforge-driver-localfs ../forge-ui-components && cd ../forge-ui-components && npm install && npm run build && cd ../flowforge-nr-storage && npm install && cd ../flowforge-nr-audit-logger && npm install && cd ../flowforge-nr-auth && npm install","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/autoload":"^4.0.1","@fastify/cookie":"^6.0.0","@fastify/csrf-protection":"^4.0.1","@fastify/static":"^5.0.2","@flowforge/forge-ui-components":"^0.2.3","@flowforge/localfs":"^0.6.0","@headlessui/vue":"1.6.3","@heroicons/vue":"1.0.6","axios":"^0.27.2","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.29.0","fastify-plugin":"^3.0.1","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.10.1","marked":"^4.0.16","moment":"^2.29.2","nodemailer":"^6.7.5","pino-pretty":"^5.1.3","semver":"^7.3.7","sequelize":"^6.20.1","sqlite3":"5.0.2","stripe":"^8.222.0","uuid":"^8.3.2","vue":"^3.2.37","vue-router":"^4.0.15","vuex":"^4.0.2","yaml":"^2.1.1"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","@vitejs/plugin-vue":"^2.3.3","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","c8":"^7.11.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","jsdom":"^19.0.0","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.12.6","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"3bd8305f2f1e8596f238dd3affd54c5ab1164903","_id":"@flowforge/flowforge@0.6.1","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-jrexk5Mr1kyJrLJnxndqhj7rafa+2knGqx4zRnTLxRGyJC7SigNL4HnmnvgChX28YeEuikH/uiUxbRzT9ZcJMg==","shasum":"807deea070295f028a1636ad5ad357dbee7bdf2a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.6.1.tgz","fileCount":194,"unpackedSize":2727425,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGn1DZgeygILHaFXEjN6Sef1rVYF9O0ual78uByMLRQ9AiBXFoclEl6N1sbfvFKpfULk5J5Bq4AT6YY5jZfgXLGO9A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJipw6aACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqePRAAjMR7/AJ9tgBD9z4ql6y2sVLUyhgluLCJp5IGSa1c6C/uXvLT\r\nKZfXqO9iEdJ7cXvnonNo1UsG/3nyj/uuZ5y/hv6vWSdkPw6ldAnj2U8bITtT\r\nReTVad+S1cQ/omA2s0qELSNtEGMjVTWLwDUtTu9hZhbkKLj7NQMrLA4YlYwu\r\nURb4kz4P8wA6qkHp59gpV29YFORqGV3kib14O3MVS/0PuCfIckXNREAKd6ho\r\nCwtjYgB34uAxWbioli1+U4stcA+FxrK4ljuIFUjcN0ATWWNSAJXAV7nh29U3\r\nmq4jGfGQjjajiQziihER/BOzPTB89XMOlH8tE7oKtfei4eUYXI4aSnjlhEOz\r\n5cQk6MnQAqMXjU7N7Ck9A1pHZ8GXNJ28ie55YH6IAIhuFcunXmCF4egTilMR\r\nGsSPMns64t9lczGd1k+3offMM5BmTIJpncjehbonNrDlzY87lMvMAjIZStkr\r\nF/wWPgq1SlgxZbQjZKT4295MSfg8GS+4sdQUicmiEE9lvNt353MVqBVJHJRT\r\nuhHdmmqmvebE3/vBQoFG3C7LVRgJQ9HsGxXyH5QHKGNioZkNRAlL+1SsEsga\r\n4ihLiCwBwLPQXjNJg/9VJo1MvTcjXZAOukORNSClavsB1rTNU2Yrc+fjp+Ka\r\nb0NuYEXWcuXCay0GlKPm5fahCquygqBQxz0=\r\n=uqFR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.6.1_1655115418032_0.7032568663840051"},"_hasShrinkwrap":false},"0.6.2":{"name":"@flowforge/flowforge","version":"0.6.2","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js'","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js'","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","dev:local":"cd ../flowforge-nr-launcher && npm install ../flowforge-nr-storage ../flowforge-nr-auth ../flowforge-nr-audit-logger && cd ../flowforge-driver-localfs && npm install ../flowforge-nr-launcher && cd ../flowforge && npm install ../flowforge-driver-localfs ../forge-ui-components && cd ../forge-ui-components && npm install && npm run build && cd ../flowforge-nr-storage && npm install && cd ../flowforge-nr-audit-logger && npm install && cd ../flowforge-nr-auth && npm install","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/autoload":"^4.0.1","@fastify/cookie":"^6.0.0","@fastify/csrf-protection":"^4.0.1","@fastify/static":"^5.0.2","@flowforge/forge-ui-components":"^0.2.3","@flowforge/localfs":"^0.6.0","@headlessui/vue":"1.6.3","@heroicons/vue":"1.0.6","axios":"^0.27.2","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.29.0","fastify-plugin":"^3.0.1","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.10.1","marked":"^4.0.16","moment":"^2.29.2","nodemailer":"^6.7.5","pino-pretty":"^5.1.3","semver":"^7.3.7","sequelize":"^6.20.1","sqlite3":"5.0.2","stripe":"^8.222.0","uuid":"^8.3.2","vue":"^3.2.37","vue-router":"^4.0.15","vuex":"^4.0.2","yaml":"^2.1.1"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","@vitejs/plugin-vue":"^2.3.3","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","c8":"^7.11.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","jsdom":"^19.0.0","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.12.6","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"b8ef88c69244c7a6de20b3a773f4517278077a01","_id":"@flowforge/flowforge@0.6.2","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-/fkvpnbnobChnDJDbre5LLq946q0jX5ozy2+ExZjSiCYQK58xT+mw/Ibff3lDr5pjrQSSy5ZJa+6bweq3tTDng==","shasum":"d24af39821b3fd55165fbf9bcae8aeb939ba51af","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.6.2.tgz","fileCount":194,"unpackedSize":2730518,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeFORxkBwKW2KQY9UFDi0S5RbF1IcV/z164yAn7I6sKwIhANPSw+17MdLJAnpwhfh5zXdBrG2yQ0LTieBkQwOw9Nno"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqIaqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqFwQ/+OIhkwDyp+AmlSbEnqbJ/sHJuDMpw0PUjqUNObsAzE8sS8YC6\r\ndVrxqz0MG90UApYiz+XnjGQnBUpKQ+GSJJU1Z420hOYtKaTpC7hyvhVGWpNo\r\na38uNMIs5ZXHG/3qvyKLFcOncHr5S+Mi6jDfJ9DIYVcDBo0uDEJustVCa3EI\r\nVjMRKUKwNv/3gbdYnyP0Y6rg86cS/fd+MFoEMXwmHsRyzeAUDi4vkHavCwC7\r\nIHcGSZFUPK2ik6iXqVaixJaDPt5vBze/Y1bU38XvC4OcI9gt+NYN6FyyC2jq\r\nDnx/wxQ6B7ftserfL1WqFYnDMOfujf/jSLLbeRrWHMmGOQUs9wzEr+n5KgLC\r\nfsvxsFfYHUE5fLSuhAHI3RibHi+JMu1G+VfcoGtmTEKr//Dx8i5M0Vvh0Msr\r\nRG2TUikHIvx5Tm2GoyKMigrU8tWUUl8WIYLJSD7zJC55YpevmsmmvH/O+3J+\r\n3s9k/X7jQIz95s8uFk11R+ChNJvW4nZHgCfFlmobApNDKjjGkyOgCWWgzDLZ\r\nFGSpKVIbRAzzkIq9PokVyULh/oCCImTODiyUr671QcV6z8meKF5pAvejgwBa\r\nVsR2bIFmABIuOvSxIF2ggg3wyTZifa8enpihU2qTAKODzw/IyIh8HLkhuqx3\r\nwCeIEbak+EWMb/aJJ+6e7yxVIXTJLQ3VTFQ=\r\n=zisz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.6.2_1655211690705_0.8840871598451467"},"_hasShrinkwrap":false},"0.7.0":{"name":"@flowforge/flowforge","version":"0.7.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/autoload":"^4.0.1","@fastify/cookie":"^6.0.0","@fastify/csrf-protection":"^4.0.1","@fastify/static":"^5.0.2","@flowforge/forge-ui-components":"^0.2.4","@flowforge/localfs":"^0.7.0","@headlessui/vue":"1.6.3","@heroicons/vue":"1.0.6","axios":"^0.27.2","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.29.0","fastify-plugin":"^3.0.1","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.10.1","marked":"^4.0.16","moment":"^2.29.2","nodemailer":"^6.7.5","pino-pretty":"^5.1.3","semver":"^7.3.7","sequelize":"^6.20.1","sqlite3":"5.0.2","stripe":"^8.222.0","uuid":"^8.3.2","vue":"^3.2.37","vue-router":"^4.0.15","vuex":"^4.0.2","yaml":"^2.1.1"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","@vitejs/plugin-vue":"^2.3.3","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","c8":"^7.11.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","jsdom":"^19.0.0","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.7.3","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.12.6","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"0955e5957afe516676299ca4b4261ae003729a95","_id":"@flowforge/flowforge@0.7.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-5fTc6cz1TvlYIyMkYKpAMTGRYW6042p+ygu+8E/84jQTSOHMC2SxAiV0ScKSeqVObCVlcoc3eLwIBrtMtOeLGg==","shasum":"f26e8656abd6fad254360e474d6733d7fc17bddc","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.7.0.tgz","fileCount":203,"unpackedSize":2983517,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICM461fSyJvlqpELxUXVTactLiSvfLCnQSObdkDaoWocAiEAqv/nPbBOIO61vc9WQRTM8O+Bwk6K/yp+mj81qnkfZ0s="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixqeUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoYPQ//TuJhVsPAhBPTpu1yvYbZqCuonLFmokZZri4nA0lZFPIESodG\r\n4cl73vW/gWisdGgnGlOkZr91zJ09FzzR3ysydB0j5XBDnZzT7NCK4NpJ6k8R\r\nVYZlkvGHQuVe1LuZNugJoHn1jzNpZvsAy7o3BfagPrzhdZxc8Pk8sp74Uivf\r\nL0X877NNi4JmGeeygcWanJ4zz2Aq9hjElmGnClydsKRFoxklPTyhwH+DFTp6\r\nD8d/aBzyAXkenVSn3Ek2cZOxfey6dFXJSSBI5E/T3FxhHzNl9uRiJE+42Lfe\r\nfjQvahQWtM93AyArczralFRJkOfoxRZL1F+kosaH3J0EZoRKXp8jwVu0yq3G\r\nS1EINvogC3uMgRSyrlfSVfULzl671D94bo5qpT96X134wVt1+BU6ZrChS/mq\r\n5gwFd21FZtu8uh0JNw+DrPde0deUIj+f4f/rIr5pRsKGKFCVo1lfRIBul/p7\r\ncT3IZwaknEQMwLx1/n4pL3ajUNg5y2qtZOly6JsUQ/jUjSLiB1aOz/jeOSQL\r\nBepM1c0LsEyHkYLkhtLNzChm4H+xMH0pKu5PwiCRyxgSJi/6keNPFOre5bsx\r\n6NC0B16EFGakY5b5VgrK5R34uRnFy7NTd6+PULkImlhOyDTFPY1F3HzQFTjw\r\nIVG3hg3mqCd5XZzzRFKqjOvJnq5KkZ4MdzI=\r\n=P55c\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.7.0_1657186196241_0.487961462136415"},"_hasShrinkwrap":false},"0.8.0":{"name":"@flowforge/flowforge","version":"0.8.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/autoload":"^4.0.1","@fastify/cookie":"^6.0.0","@fastify/csrf-protection":"^4.0.1","@fastify/helmet":"8.1.0","@fastify/static":"^5.0.2","@flowforge/forge-ui-components":"^0.3.0","@flowforge/localfs":"^0.8.0","@headlessui/vue":"1.6.3","@heroicons/vue":"1.0.6","axios":"^0.27.2","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^3.29.0","fastify-plugin":"^3.0.1","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.10.1","marked":"^4.0.16","moment":"^2.29.2","mqtt":"^4.3.7","nodemailer":"^6.7.5","pino-pretty":"^5.1.3","semver":"^7.3.7","sequelize":"^6.20.1","sqlite3":"^5.0.8","stripe":"^8.222.0","uuid":"^8.3.2","vue":"^3.2.37","vue-router":"^4.0.15","vuex":"^4.0.2","yaml":"^2.1.1"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","@vitejs/plugin-vue":"^2.3.3","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","c8":"^7.11.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","jsdom":"^19.0.0","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.7.3","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.12.6","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"4f6710dabcea31c3fe3cd0e7b7c52426ebc73294","_id":"@flowforge/flowforge@0.8.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-52kMDcIMdLBBJsGHnTx60+4XtrvwBnoPiVw8HbO6W+uiIcDbukUHwK3CuS8yahely3JzyE+pbNZyiUoN57v2aw==","shasum":"abb47d6c030cfc8960c181d40e2ae73551dfa446","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.8.0.tgz","fileCount":215,"unpackedSize":3153426,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyy81mN+wFmNPGE0fkY/MUQKlwV+5y2KKZUfX5lyX/9AIhAMI4iFAP+xeBN9TrQkTosWE3ezL9jNgscJmMfHxaUV0B"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi67amACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr+bxAAhluI/Aa+jnZ7HiABd3JGlg6bF5tGgvHGufKRXCKtVrpiBGw1\r\n3Y3LjBm1brxS39kCnLDuVpezNEJfVtRQneHKEkV9MXlxlZUTSsIAA21YBw06\r\nrKyTq80a8+vWyx3yqtZYTFIG1y0xchbttLpzQlB/bASrsE07bScB1Z0crluq\r\nwkuEMj6WD2GL3sapEmHAiBk5bnICAQc3MngZ6X+tgq8gQTAy4f+zuzDw9fX9\r\nZCZ/0wraABKU8wIPJZuJ0UoT0IDsOmxKhM5vnW5WEfbxy4tjxStqlrNv7qdc\r\nDlGguiuZdGEhG1A3PCnA42UHtwHuF7tsoW0pKEsL1vWe+zlIsgBo90uPV6oZ\r\nNN5knzeSxNiuvaU4Z1uah5udzMyKICbKtc4KmQIAH/k0Kccmggcv33fTWp2s\r\nAR1cDyklc4bThMrS8waB4v8sVBfJMH8Os/rZiGa+5RiyGX9beQDeTOGrFSeI\r\n+y9WPBR24DLTxBDokQLAGz3kW7YKTNCEMIRohEYlIf5oQXgV72SPZoyncxSp\r\nVWNaLNWaZ52dCfFRDCZBzH/be+sSkm1ynAU4B+ApJy7QTYDgRnByQgEKmv0s\r\n9jhb+5pS7EOIAE2f+v2RWHlyOlNUg1eG4u55Itda3PlY/tf2uZKkTsmWnNai\r\nqwzkozIVPak2TVELl3s6NpMAXZmq9XunM2Y=\r\n=RvFX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.8.0_1659614886480_0.1841834618732261"},"_hasShrinkwrap":false},"0.9.0":{"name":"@flowforge/flowforge","version":"0.9.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.json","cy:open":"cypress open --config-file ./config/cypress.json","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/autoload":"^5.2.0","@fastify/cookie":"^8.0.0","@fastify/csrf-protection":"^5.1.0","@fastify/helmet":"9.1.0","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.3.2","@flowforge/localfs":"^0.9.0","@headlessui/vue":"1.6.3","@heroicons/vue":"1.0.6","axios":"^0.27.2","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^4.5.0","fastify-plugin":"^4.2.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.10.1","marked":"^4.0.16","moment":"^2.29.2","mqtt":"^4.3.7","nodemailer":"^6.7.5","pino-pretty":"^9.0.1","posthog-js":"^1.28.0","semver":"^7.3.7","sequelize":"^6.20.1","sqlite3":"^5.0.8","stripe":"^8.222.0","uuid":"^8.3.2","vue":"^3.2.37","vue-router":"^4.0.15","vuex":"^4.0.2","yaml":"^2.1.1"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","@vitejs/plugin-vue":"^2.3.3","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","c8":"^7.11.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","cypress":"^9.7.0","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","jsdom":"^19.0.0","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.7.3","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","start-server-and-test":"^1.14.0","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.12.6","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"90ef0a19b3eb7e2ed3b12a3ff386b428eb8fb58a","_id":"@flowforge/flowforge@0.9.0","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-rydarjoFW246E64RwIIAfBYSw/F3wldmm69dcmTohTR//Z32azOPxPhrtFYA12uvNJAAvaUZQxZzdd3Ms8FppQ==","shasum":"bf4696b23957edc116a79cc309e7fd8082353d6a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.9.0.tgz","fileCount":239,"unpackedSize":3202535,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHCk1b+cQDgswwijASUQJMITEbidYUbnM6GvLPM2etEpAiEAl5s9cg0dl5l/AzInrQs8iGJEMpkU4coHL62tcFV69oc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEJZ8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJdw/9Eao34s/6al9zprLuUeq1R0U6O2j+qul1vEVm+PDBkMXl9pvV\r\nyBcPcT7xu01UXsRVl94/HXQO5dEXhXuQ0ARcJhj6zju7clt4PRAivkJh435k\r\ngx/YyFw00JXwauX3Dvk5TehHK+aKCNc2aPVh7ov/Xu7wwW0sQVeR99+5MZeO\r\nL72q7EJhdkh3uPuIIdh/yN0FSkoE/PYUz+z++Nwps5qtSKgh51zxXUWkkc88\r\nW2NpFQ5xCxHhnLPTqyFc8J3tU5PUN7v6GhxrsKnlxs4k8WPkEJDcVYk9XkOL\r\nPstosd1j0ou6CebsQei+m4ybHMP92f6f6V2hx21/Luogsnezp5O7FNr39ciz\r\n3azpR3HKdLSj/NjQALwUHayj+L+KxWN/qUTehXG63ePYHU1tkmxvlPjwwbRc\r\nGesIEtN/NWiNHDvSG5mAM3ouavT9p9PVjWE7xqQ5t55Fs1XfxozjvX3e3Kqg\r\nY9RbwXMQb9GqJOf7UHCmsgs3g1uqTprFfrk37/DiI6mrKWPJ0YfGMcVFx0oJ\r\n2fAjo/Pt8E0ANWWLnhcAxlnZXh1/jkj7r74Fy1MkMnRLunyChpkRZM/YyZR5\r\nzlOlD29LfSCwhDs2YUwm/lfqfEdH5FRfvZOEC3mzlEgTGhNxwYRBZW+HZthQ\r\n36ls7SHu5x0t3eTEs8nHNHytAnDxZCNhjyk=\r\n=wOZw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.9.0_1662031484426_0.14217076021914177"},"_hasShrinkwrap":false},"0.10.0":{"name":"@flowforge/flowforge","version":"0.10.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**'","lint:fix":"eslint -c .eslintrc 'forge/**/*.js' 'frontend/**/*.js' 'frontend/**/*.vue' 'test/**/*.js' --ignore-pattern 'frontend/dist/**' --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.json","cy:open":"cypress open --config-file ./config/cypress.json","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/autoload":"^5.2.0","@fastify/cookie":"^8.0.0","@fastify/csrf-protection":"^5.1.0","@fastify/helmet":"9.1.0","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.3.3","@flowforge/localfs":"^0.10.0","@headlessui/vue":"1.6.3","@heroicons/vue":"1.0.6","axios":"^0.27.2","bcrypt":"^5.0.1","cronosjs":"^1.7.1","fastify":"^4.5.0","fastify-plugin":"^4.2.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.10.1","marked":"^4.0.16","moment":"^2.29.2","mqtt":"^4.3.7","nodemailer":"^6.7.5","pino-pretty":"^9.0.1","posthog-js":"^1.28.0","semver":"^7.3.7","sequelize":"^6.20.1","sqlite3":"^5.0.8","stripe":"^8.222.0","uuid":"^8.3.2","vue":"^3.2.37","vue-router":"^4.0.15","vuex":"^4.0.2","yaml":"^2.1.1"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","@vitejs/plugin-vue":"^2.3.3","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.2","babel-loader":"^8.2.3","c8":"^7.11.3","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","cypress":"^9.7.0","dotenv-webpack":"^7.1.0","eslint":"^7.11.0","eslint-config-standard":"^16.0.1","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-vue":"^8.4.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.7","jsdom":"^19.0.0","mini-css-extract-plugin":"^2.5.3","mocha":"^9.1.4","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.15","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.7.3","postcss":"^8.4.6","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","start-server-and-test":"^1.14.0","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.23.4","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"40b7cf1ecd128eede27cfe8c607283b981c25b38","_id":"@flowforge/flowforge@0.10.0","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-17wnDIpQTiWsqabC59waNi4FyEHprVLNgB0+rSgyUN9NXPhomTF0gFS6oFeFEjRWFChhXub+3dDUfHO0AGVwBg==","shasum":"21ebd5734676eebc5c32809b57f65d50eeecc78f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-0.10.0.tgz","fileCount":189,"unpackedSize":2880111,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3g5+ZVwEoV7Iu8A0Vwo2JBiu0z+GagJqAT3Pcbe0fHwIgJX8+wgfhLxK58SnXAEwWMiT7VAVHBqmklrRl1JqXRVo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNWdwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpgQA//Qwc3ItlZJSHqF+lGJDkodDD166ck8MgHbcCYdm4eae49YAoo\r\nO91SU0UnRc8WQlPPeTx9gOEnyR9GDm0J4C3rptMMm8l92WAr8MEu1Aj5IboK\r\nxmcpLJqlNm241lIt34jz33Mhlo51JD6e+RG93fcjalATJpvDiYXCakUllyUx\r\nE82BF+f88fbld79jqJGcOCnZXJIB76FRAIV93aXC8e5+gsS/oVRqvBaoQ5tL\r\nd0TJYjua5UdEPzJsxfXsxop6Tv58jMA3dVlnzYOTm5hLiXocOvr3ULURY7Q5\r\nM5CVxjDHH30vzulbB2FCL6FkryWw786UkxhcQJ+oYaJYzZvEpR+Xv6S8J37n\r\nLigHgrVS3tbds5Mz15c1BIGxsfVKHJbpShRvuWGhiemkRrpsuuxOjxR+GwUc\r\nyTYvYXW1IitaU5t5UJ78aEc1Y+aAX1MKgTMnsjigMUBOnU4NJbCKD92vD8tP\r\nwN9rH1TZo4X20KRMx13PDf+fWZHjSmepsXsF4NhTGxHmdNlinBiJmEik45/k\r\n2nlrNf1vHlSoUU8UXFxPZw/1TyfEEpps0Z/EuS1+k7mAYLIT+xXDhf8su+Tb\r\nGKXUTqbN/38s280Mim6+bdU1kedajdrZsmWg3zO0mbDaZuhZLkIpEaxZA5Lu\r\nxtckPEl797jMeMAvCakr2d+L8Fnmp+H3rUs=\r\n=um4S\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_0.10.0_1664444271732_0.8825730367697884"},"_hasShrinkwrap":false},"1.0.0":{"name":"@flowforge/flowforge","version":"1.0.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.json","cy:open":"cypress open --config-file ./config/cypress.json","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/helmet":"^10.0.2","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.4.2","@flowforge/localfs":"^1.0.0","@headlessui/vue":"1.7.3","@heroicons/vue":"1.0.6","axios":"^0.27.2","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.14.0","marked":"^4.1.1","moment":"^2.29.4","mqtt":"^4.3.7","nodemailer":"^6.8.0","pino-pretty":"^9.1.1","posthog-js":"^1.33.0","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","@vitejs/plugin-vue":"^2.3.3","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.12","babel-loader":"^8.2.3","c8":"^7.12.0","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","cypress":"^9.7.0","dotenv-webpack":"^7.1.0","eslint":"^8.25.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-no-only-tests":"^3.0.0","eslint-plugin-promise":"^6.1.0","eslint-plugin-vue":"^9.6.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.11","jsdom":"^20.0.1","mini-css-extract-plugin":"^2.5.3","mocha":"^10.1.0","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.7.3","postcss":"^8.4.18","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","start-server-and-test":"^1.14.0","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.23.4","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"6bfb74cce55c79ca7e800086250875129206b5b6","_id":"@flowforge/flowforge@1.0.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-1q1I2ivRMQxOaV3O7YsixkK88BobAJONvwTPVat+rAjp7plEWjlWU2OdkUkDHP5ctkbzIHtmtothrWbRdT2G9w==","shasum":"c3845418e2e76e5850774e585793a2f9f14e673d","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.0.0.tgz","fileCount":193,"unpackedSize":2977122,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnt96vqWOpf+spHJBA3zL8i/MWUeMTlT/mbdSwUWK+ngIgKCpT+uQXPW8Swgn+cdDPP/xEXawjrx/ayR4jh3FAB5Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjWltjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvCA//YIga7/Jv7EE7vRbkmR7Zp7X6q2RaXQViG0UpRBZwNBjwZ49i\r\nK9lAPOcGS4w4EUeKAezs/wV3BYW6esZvZki8O746l6asDwlkbqcjCAXXs/71\r\n9CWVcvATbfjxYcxP7q2QW0zDJZyH4swwntJZ2cTHBfOUnKANcgzwazYVOH64\r\nXu/l0n13XVI4LrZK3WC0DbUGU/aysOPWSRC5C01eqTim6JmR4LiQB1I0lTG0\r\n/9hsnwnkr1Hy6lsjQueUpjaviRiAuyYyTUtfvpO8g0qm4zZmIQP4n0NBydvd\r\nqXQUXiyecsdWhoQRZXVovt8szgNKKW7xB2ZGV9Q4IuinydQDWfRRQbdUmtB5\r\npPzHkZh2lEz22dgh4zgPMuFoE6+cp8EfHEq6DdgQCUPKNTBqwS4A3CUMk9Dq\r\nck3NMb+Q2ryEBelzaiS2sfnTW/hpr/0Xquu7EVNhtm+2WEnTBu0bH3ZUFSGU\r\nUTbaV7FLsrvAh5HUsy9/2xwnXzGVPZ0RrQtu3dJe7pzfni4MKWQYIefsxQyt\r\nqZ7he84v+GTTWXDaaJkJoTirz+hv1ur0HaI7tt6OQRQZwvWhVB/4HvIfLVO1\r\nWayLrh2J4hLRasdJwKeT1n17e4gZrrd1hEi/vHT7P4VaYFbBBlWPnESZakWD\r\nchKENsSPZAuhhjMNeuf5AH9PwK//IkqSd6A=\r\n=Bs7O\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.0.0_1666866019125_0.7492412813440803"},"_hasShrinkwrap":false},"1.0.1":{"name":"@flowforge/flowforge","version":"1.0.1","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.json","cy:open":"cypress open --config-file ./config/cypress.json","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/helmet":"^10.0.2","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.4.2","@flowforge/localfs":"^1.0.0","@headlessui/vue":"1.7.3","@heroicons/vue":"1.0.6","axios":"^0.27.2","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.14.0","marked":"^4.1.1","moment":"^2.29.4","mqtt":"^4.3.7","nodemailer":"^6.8.0","pino-pretty":"^9.1.1","posthog-js":"^1.33.0","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","@vitejs/plugin-vue":"^2.3.3","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.12","babel-loader":"^8.2.3","c8":"^7.12.0","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","cypress":"^9.7.0","dotenv-webpack":"^7.1.0","eslint":"^8.25.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-no-only-tests":"^3.0.0","eslint-plugin-promise":"^6.1.0","eslint-plugin-vue":"^9.6.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.11","jsdom":"^20.0.1","mini-css-extract-plugin":"^2.5.3","mocha":"^10.1.0","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.7.3","postcss":"^8.4.18","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","start-server-and-test":"^1.14.0","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.23.4","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"64d8bc954fd7d971ee2ca8517ae74ac091198560","_id":"@flowforge/flowforge@1.0.1","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-4NBEom2jAWfDRS/vl+HGb+KDezcc+scfGjQwGYFDLtaesQoxluEO7aNtR+17LyDXc1zHs4t/IBVK/ZiwicrHSA==","shasum":"e45071c0f14ff89525edb0a6b0b4d49af90ad3bf","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.0.1.tgz","fileCount":193,"unpackedSize":2977859,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXl244scwQTuGTdsRyj4CPrlDiQyiX84QMtFOEYvfYIwIgAaeo9fyy9KcU9zCPOrxPLnKC0x8KeCT01wrYEXJnn9g="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjWqF9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpxjhAAgidFE2bPe4RosZKdUZdvcoh2vaWxcBPdWpg3tBhhJp4AudwW\r\nrfuwq/wG0jlAlPbZFsQMndQ3x5YpmNPq+/oPP7Fx97DWHE0y77xktl4INDTS\r\nfrtgAUu2LKZwlq+jWnWuK/gCtSOqIqa3OCf1BV1vO1suyzCtYcLKJu/iEFKs\r\noznsvbZlQ/y+2DUGuwE9WXoMkM82sDvePqL578z1C7d3OyjDMTJ9kVgeZHck\r\n68B+sOtlfq1CBNSSHDMDcPsk+uAob5QR6xYQyx9yFM2C85rKDimQXvPqoh36\r\nktHzcqtsQnmhw5PAFXr++MSkWWP6AkmixqT/ciKIM/P7fQBs1x3noPifIaJ1\r\n4Y6bS8bcVFH0YCQMRe+2s/Hq+xTa6zju0JHCi3vOU0bFU2MRtDLIjJcMpDvR\r\nKWzW3Ljs/2x9c0zi7Bkp77kzyt1CMS+AzaG6JWqUtPfjVI3DZyqCv/toR1PF\r\nSr6kgcje9eFill+4kIXY9zzd12P3a4LQUKorprfaDmqpA3IFqFTnWl0oATe/\r\nbDV10tuQaW1K3aBsBKoPbY438iqu74tOMQkB3rMEDFyqCLwQJ0ejgR+HrvMi\r\nJoKGNuw7A0SQuNVhCYW6uZJv/40Lejrp5H+D8gy7vbprf+nuBNcwbAKZrg/t\r\n1bX6jo8lC0Akr3hSFfwiTQpsZFklGPT2FZw=\r\n=A6nE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.0.1_1666883965161_0.5536799269257133"},"_hasShrinkwrap":false},"1.0.2":{"name":"@flowforge/flowforge","version":"1.0.2","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.json","cy:open":"cypress open --config-file ./config/cypress.json","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/helmet":"^10.0.2","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.4.2","@flowforge/localfs":"^1.0.0","@headlessui/vue":"1.7.3","@heroicons/vue":"1.0.6","axios":"^0.27.2","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.14.0","marked":"^4.1.1","moment":"^2.29.4","mqtt":"^4.3.7","nodemailer":"^6.8.0","pino-pretty":"^9.1.1","posthog-js":"^1.33.0","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@tailwindcss/forms":"^0.3.4","@vitejs/plugin-vue":"^2.3.3","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.12","babel-loader":"^8.2.3","c8":"^7.12.0","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","cypress":"^9.7.0","dotenv-webpack":"^7.1.0","eslint":"^8.25.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.20.2","eslint-plugin-no-only-tests":"^3.0.0","eslint-plugin-promise":"^6.1.0","eslint-plugin-vue":"^9.6.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.11","jsdom":"^20.0.1","mini-css-extract-plugin":"^2.5.3","mocha":"^10.1.0","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.7.3","postcss":"^8.4.18","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","sinon":"^13.0.1","start-server-and-test":"^1.14.0","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.23.4","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"cb088545787eaff50106d3a4db08eb9305fb30d9","_id":"@flowforge/flowforge@1.0.2","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-5nRbsFfaXPfuQe10xhhfvsYhAkDHTDlfyZx5SwWrjhnsbh7GlBJm6KO/vYAZBd5/+lm7oHu6aSJBgLOLM0eFgw==","shasum":"41c268b520750c62bea8e4343050edd76f19b352","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.0.2.tgz","fileCount":193,"unpackedSize":2978819,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMVJLJruN7IKcJBq7xMQTGy28qnwyD4cxqVP6l9MITLgIgZRR7OCnIAyG1WhHudDil8igdrn4dGKFlDtmL2MDT+do="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZR/aACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqLww/+PHzrjIig8oc60XKzccybiQuUnGE1eovg21Bv9wzpZs1rbBaj\r\n/2AVVTbK5m+SsgIOg1QLhozaxU16OW5tZ7/I5G4+blJDyU8YmG4tEVniqnpz\r\nAmAmCnsp4Pz7E/ZVlAEJ+nP1lSKvjNQFMkZK9RmeNLNqulHj+07sd8+p2C/V\r\nbSO8oJcv1wyhin2vsWUYXl9h7G2/IhpNVdRoVFrvIrYeDj3DVhvCPQ9OX356\r\ngAoZ4KgWJpvTON8C5bH4sAtvcF84JbinqyjlEA97pAOvBtO8dlQYlU6Ze+Bk\r\nVVIe8FhNP8nh+vbarE6KTysfgxfF4Vo017LrgKWNCVp6s3Bj9jw7FrzjhS7i\r\n1clHOsV4/6lxraVNx3+y6+ePwT0e6CLZPfeHKEWI3QO56+aE2alJ6CxE/Vto\r\n2FLMV1wOkeYwj0VjPeV3f1k7cpgtNoikybvQpqJFiORiCcVaahDEEabxm6/T\r\nsoyGv80nOZAAsTupvmvHAK+ygv5dVSPsNVi+2F98x/phlRfGtd0d8WCiV2Rm\r\no4qjuJxP+Ek784EBBE/FCgbgQ0kArZRc7I2u+Tvzhi6K9HEPtXFOxUGFewRA\r\neTCpQLHODksE4qxq/M4XHUO7CSecWSm9Ihn8llPa3tud1/5sefvQMCKiJ2PJ\r\nLE1kVSNJdy8o5uzkloCZHVWM6odtfVxEitc=\r\n=zy5P\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.0.2_1667571674326_0.19051643341398194"},"_hasShrinkwrap":false},"1.1.0":{"name":"@flowforge/flowforge","version":"1.1.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.json","cy:open":"cypress open --config-file ./config/cypress.json","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/helmet":"^10.0.2","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.4.6","@flowforge/localfs":"^1.1.0","@headlessui/vue":"1.7.3","@heroicons/vue":"1.0.6","axios":"^0.27.2","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.14.0","marked":"^4.1.1","moment":"^2.29.4","mqtt":"^4.3.7","nodemailer":"^6.8.0","pino-pretty":"^9.1.1","posthog-js":"^1.33.0","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@vitejs/plugin-vue":"^3.2.0","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.12","babel-loader":"^8.2.3","c8":"^7.12.0","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","cypress":"^9.7.0","dotenv-webpack":"^7.1.0","eslint":"^8.25.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.5.1","eslint-plugin-no-only-tests":"^3.0.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.6.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.11","jsdom":"^20.0.1","mini-css-extract-plugin":"^2.5.3","mocha":"^10.1.0","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.7.3","postcss":"^8.4.18","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^13.0.1","start-server-and-test":"^1.14.0","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.23.4","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"0b2cf2bafcae712f645c3ef16e51677b14aaadfd","_id":"@flowforge/flowforge@1.1.0","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-22jxqk1uCeCf/YiAcBpP/lel88MPWZpjQ5HS8dMMZkAw9KVxstFOYtBW5bpL9uTncJ0GH0Wev8RMwLuAmPrIbg==","shasum":"99a70cf4cd131c486afd28881075da33031ddee5","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.1.0.tgz","fileCount":207,"unpackedSize":3062729,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJf41gJPtCGE/WNA6A5lzXY667kja5DXUy3Mp+omcvOAIgVwNt1+5lGcBFZyDrhwP6McinHE1bXi461an4YGei29Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjf3pqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpiPA/7Bud5yqv8gQga8wAewIeIYdP9Gyd+gjUPMvSwte0BIC3gPY+K\r\nLE/FexIq5hgBMJeGLUdPC9RhEz7t+15m1pzJUL4wSsZ5RsHIMSLBk0ZR06pL\r\n5PxMePhKbz0r6ZEiXRix7r9lrZjPP4qPViR4oPmxNCLKUfzzCuAHyrguPnWY\r\nDCUrzHtL8zNjSZVQ3MPqbq9FrUwXr+hKWxHh1caGjzwT2IuIjd1lD5EkqGgu\r\nIiByTO7kFmcMSo6/ozLkZYOARp/xo30njYDL98+V15kZ2Qvzq8C9E+X8STF6\r\nC8WfWNkBnOe1SEQc8iprkt9dAidLco8iaLy1EjRxVUijZBeFhxx0lSQhwjFA\r\nY25XhJk6am/+tm9lNHWvnKgS9+l5OQEuBbJGdWZqE75LjBl0yjkVg/3ermMT\r\nql476BgfkjiItyYdxZid87RF9Zx0HvPKeN8HMa+nZ4NgVtukp0Sy0vwGbbpb\r\nLdjTdTHwPYVWscvMkE6SiFCuNDqg2zqEA4cMymahRqn57BQ8ol/m/UlpajL+\r\ngmDtTH5PCz73WcbLOFl+im1jRdFKnUcUpMBK9J8Qd1rPAJFBz5cgfZ6Cg6SK\r\nORHf6fT+S8KA2L3nYA3Hfqafbl/63LsBYDT1emvuto5AOHEX0CLSWfDRnmjS\r\njYzt5jw/RLPsBCNH4UUDKF0N3DObau+LNRg=\r\n=ddHN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.1.0_1669298793925_0.9226580100820398"},"_hasShrinkwrap":false},"1.1.2":{"name":"@flowforge/flowforge","version":"1.1.2","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","docs":"jsdoc -c ./config/jsdoc.json","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.json","cy:open":"cypress open --config-file ./config/cypress.json","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/helmet":"^10.0.2","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.4.6","@flowforge/localfs":"^1.1.0","@headlessui/vue":"1.7.3","@heroicons/vue":"1.0.6","axios":"^0.27.2","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.14.0","marked":"^4.1.1","moment":"^2.29.4","mqtt":"^4.3.7","nodemailer":"^6.8.0","pino-pretty":"^9.1.1","posthog-js":"^1.33.0","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@vitejs/plugin-vue":"^3.2.0","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.12","babel-loader":"^8.2.3","c8":"^7.12.0","clean-jsdoc-theme":"^3.3.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^9.1.0","cross-env":"^7.0.3","css-loader":"^5.2.7","cypress":"^9.7.0","dotenv-webpack":"^7.1.0","eslint":"^8.25.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.5.1","eslint-plugin-no-only-tests":"^3.0.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.6.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdoc":"^3.6.11","jsdom":"^20.0.1","mini-css-extract-plugin":"^2.5.3","mocha":"^10.1.0","mocha-cli":"^1.0.1","node-sass":"^7.0.1","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.7.3","postcss":"^8.4.18","postcss-loader":"^6.2.1","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^12.6.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^13.0.1","start-server-and-test":"^1.14.0","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.23.4","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^3.11.3"},"engines":{"node":">=16.x"},"gitHead":"2754c6cbe8b4a939146299dece7657e418328266","_id":"@flowforge/flowforge@1.1.2","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-b3dM1v4Ztog8dlCB72HGTMOC1EjQp/qkBKlVYXK/uwg3QPvJtf0cR8v4gJItE4TakGJCW9u9yS64STJjEVW/JA==","shasum":"6d259341b4c38f597050cea8c718e39a7b618e31","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.1.2.tgz","fileCount":207,"unpackedSize":3063456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/GF3Clf54G6Il7GNRHqI1cc2CoTOw1SCllZN356sXkQIgWOJuoJ6sS37fLd8sjnitfe7s5mnFPzYFJwpKr40vodE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjkwYkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoz8g/+IrogQ6qyHCWIW8NbPHGnVdSztOomGjxsTUvNqRK61mpybtId\r\nwgwJdCgcx7S2Tr97PU3Bq2dn3sgGaAaGsVnvs8W7GPpsnU4YfYwbfKblgbDm\r\nF7SXtccaHsr7eRTK8CO16GsAOUz6trNcoOrY5EXLkGF5BP+Uy4274N1xWj9q\r\nI2vYf4FYvs3QLC7ZnSJjaKjTBs7ASXWLK1EvPWyrirsIqY1/yt3AZrCR40fA\r\nmUM3ZJ+cht1OmE3qg0PbL/OgI79AqbyglIY6Uk1wnzkBgLgj6M7SUxLNIoyj\r\nljNeDtN1FPAKHcH+VvL1YgjX5swv+nehsDE3dwNwKB0ZaXOuzsDWyvtWmIae\r\nkUGxcDitlwqvNfc686mHb7USkGoWaFrAbGzttWkURIWdnWfLagmrwgdnMpbX\r\nzR+cQyZGlMjifQXiv0ClivEklJCP2OHxFsXw/vavYzKBagXuf5cZaBvYZXW/\r\nbsIMbb+mssfflki7Uz4wFw3RAiFiqBTIkdlhJpqVo/pJuzWb2LfdyunrBFJ8\r\njaPng2Z6NAGQy+rDLxhXdDwCxT/QQ4VxFMx5jXW3OVevJvy2qGRgnI7Uq9Rr\r\nvWVmFfY/RInA8a6vfq12/L6K7aQ1QXxwCqJ+AxHYAOnEipF+MpU87+3WJ/Vq\r\ndTMAQ5tKXCN7C6TFcui0JA8MSOs9vFmDDxE=\r\n=5LpM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.1.2_1670579747864_0.44545448658247366"},"_hasShrinkwrap":false},"1.2.0":{"name":"@flowforge/flowforge","version":"1.2.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/helmet":"^10.0.2","@fastify/formbody":"^7.3.0","@fastify/passport":"^2.2.0","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.5.0","@flowforge/localfs":"^1.2.0","@headlessui/vue":"1.7.3","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.14.0","marked":"^4.1.1","moment":"^2.29.4","mqtt":"^4.3.7","nodemailer":"^6.8.0","passport-saml":"^3.2.4","pino-pretty":"^9.1.1","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.12","babel-loader":"^9.1.0","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.2","cypress":"^11.2.0","dotenv-webpack":"^7.1.0","eslint":"^8.25.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.5.1","eslint-plugin-no-only-tests":"^3.0.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.6.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdom":"^20.0.1","mini-css-extract-plugin":"^2.5.3","mocha":"^10.1.0","mocha-cli":"^1.0.1","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.7.3","postcss":"^8.4.18","postcss-loader":"^7.0.2","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^14.0.2","start-server-and-test":"^1.14.0","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.25.3","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"9025df1d7bb34e19f8f4d75b2cadde66c34d40fa","_id":"@flowforge/flowforge@1.2.0","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-MSfe9BnB5lUkWLdObpj4aJVI/+/zu8HUW7CKp1KN018uBuOuSs58y7oncS7cdFpnZH39PpPcgEu6DZNUzVtD3Q==","shasum":"2589c67e1c0dd02f87f0e87ff1a310478ba7f378","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.2.0.tgz","fileCount":219,"unpackedSize":3331981,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYepofFZKHQWodx4GZfpyR2z3HmhSOh2V5aJlT3J1AeQIhAL19U7LndWexAAjT5bMEkZ9HTeScYgH7utv2EaQNMTce"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpE61ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqXEg//TZUsA7mrZynuYxmEx98UJTWZe2nKT2k+FYy8PEFrRM+ZjisD\r\njHyLm5kkC3yKAjELh6ZqgmoNbe2VjzS4KYSfFDxmelkAAoH/t+jrSeogm8qz\r\n9AsZUH+7mbdescyJT4FyfbTx4TZIL7xzgjsAss+hpo0a+nyt1y1tdw7an3wL\r\nIF+qhQ7MRtGImEm4Zng5v53u4au/opDnjHwW2GDxk9ydg/i9jyI2R2UXYnIJ\r\nEF4eL11tI8ppVHyBglDeR2GCxLjrPkT1KFkp00RFQ9anMk4iaidb8dFKgNqC\r\nqYtncGvA4HQ7TG+YASz3/eMlJJzrAdKwrQ3MCNFe79CHwWujzmrfuQrr01JH\r\n28nsrnMaQJR4mcGUQ8c8Vsuy0xS/XIcy1+mf40ybfRsovAOyd3qnHJ+JfCCd\r\ncXsu9JTUiUMPhq9yQ1jBDjtdr0DzFh5mrgypUsU1o5dJhC5Yr/DLMDTHhnay\r\nbI63WGhbp16GuUFmolIhkniOJ2gT/wKuCLI965XM5DvvlKD6pv/fbriH3iUr\r\n8wm25F7nsfHe3wPghL0qqkvMQEoL0ttzqt3ANy8f6508xXoUHMR0exO9Wgcj\r\nTzS8HDQVNUUhyfvxkJcmFENqegU6qB8kOrV1+Tvm1unP/v872IYqpOq3ScKn\r\nSQ4dgcTb022tru2yDTYJqk8hPyxWzXhhqvk=\r\n=Ij+E\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.2.0_1671712437088_0.8769745418156074"},"_hasShrinkwrap":false},"1.2.1":{"name":"@flowforge/flowforge","version":"1.2.1","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/helmet":"^10.0.2","@fastify/formbody":"^7.3.0","@fastify/passport":"^2.2.0","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.5.0","@flowforge/localfs":"^1.2.0","@headlessui/vue":"1.7.3","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.14.0","marked":"^4.1.1","moment":"^2.29.4","mqtt":"^4.3.7","nodemailer":"^6.8.0","passport-saml":"^3.2.4","pino-pretty":"^9.1.1","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.16.10","@babel/preset-env":"^7.16.10","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.0.0-rc.21","autoprefixer":"^10.4.12","babel-loader":"^9.1.0","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.2","cypress":"^11.2.0","dotenv-webpack":"^7.1.0","eslint":"^8.25.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.2","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.5.1","eslint-plugin-no-only-tests":"^3.0.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.6.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.5.0","jsdom":"^20.0.1","mini-css-extract-plugin":"^2.5.3","mocha":"^10.1.0","mocha-cli":"^1.0.1","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.7.3","postcss":"^8.4.18","postcss-loader":"^7.0.2","postcss-preset-env":"^6.7.0","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^14.0.2","start-server-and-test":"^1.14.0","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.25.3","vue-loader":"^16.8.3","vue-template-compiler":"^2.6.14","webpack":"^5.68.0","webpack-cli":"^4.9.2","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"8055dbb169d78b3c226553a5419ed357210e4338","_id":"@flowforge/flowforge@1.2.1","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-XkYVaDLEGeCoz3mwTI/uxCy5/SNEojqtW81mwfFV/kH3LiuVaOx+ccIoMZqg0/hxOtBaFjArs7tWfdirlUB3ZA==","shasum":"f1160e3980f53fec303964291a4f182f93540d88","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.2.1.tgz","fileCount":219,"unpackedSize":3333981,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHk55y1S2tpUQ1gCqdzRXJ31lZwrxwrdZoQI6JFtz6m1AiEAwGvw6vVHiOvE3uSKRph9ZmRzfn/ux8OwRJ/FEIlHlws="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjv+ujACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo9Wg//UWNKBjkTvVkpRjO0mW/oNAnb1cJEKp30vk7ND1TR3NB8GjEJ\r\nUYfBWGzFUOpk2lSptB+yZtM2vn3aYcJSffjMn7IxDhcJkvpMMp057xOenCuk\r\nH5bFbSaM+G8eJQFY8CmbLHhX5wZnlHvJ/kdWcrhWxi+gpKyUMMty6E5Qzbhf\r\n3aEjMSSh+S3IZVLFjNID7iSaEI7jGladM8NGd5GGIv51o/Hnn/I3PmoUtjE5\r\nXgSfSOLcbiU45TCb/EFFAaHzijjPIh0E0axOTKrj4p9zOtVF66gQyPwxqg2K\r\nqj6rqZdvpNO+zrKB72t4BlMiMwOpXPyProWmIkEgj7VB9/aZv1RcPYkrLc1q\r\nDnumhzURC5WL+gb2oFcK68oWhPvPqlS/Xq9bRo/MwHMMSVlnGy4RQC2C+dHv\r\nrrKns4lNDsKv8XtHyzZaNUnrhRtaVsgRxIc6fy2ePV2+maxxq79Xd/S2ktrX\r\n8JWPyM3uihKHENoXlorUvTFhIvVNqK7UTrJQYWXSte/3ebTTvdevlP8Sp16X\r\noumrsQ2AJbA8EK/eWnkxoDdL0fuPgeWjVrWPDiI3x53RoBAGYCsNH9I1dYmI\r\nLrbmfmEwFVmBICDxBvFsyEYYLv90Ke5l1l5w1JK5k4Y4EiQhNoyLpnL581qV\r\npRg7xnwoHoWFu+C/FOe4dkCwGQ009xEpSN8=\r\n=hTEv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.2.1_1673522082815_0.31365248376484756"},"_hasShrinkwrap":false},"1.3.0":{"name":"@flowforge/flowforge","version":"1.3.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/formbody":"^7.3.0","@fastify/helmet":"^10.0.2","@fastify/passport":"^2.2.0","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.5.2","@flowforge/localfs":"^1.3.0","@headlessui/vue":"1.7.3","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.14.0","marked":"^4.1.1","moment":"^2.29.4","mqtt":"^4.3.7","nodemailer":"^6.8.0","passport-saml":"^3.2.4","pino-pretty":"^9.1.1","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.20.7","@babel/preset-env":"^7.20.2","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.2.6","autoprefixer":"^10.4.13","babel-loader":"^9.1.0","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.3","cypress":"^11.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.31.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.6","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.6.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.8.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.0","jsdom":"^20.0.3","mini-css-extract-plugin":"^2.7.2","mocha":"^10.2.0","mocha-cli":"^1.0.1","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.8.0","postcss":"^8.4.20","postcss-loader":"^7.0.2","postcss-preset-env":"^6.7.1","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^14.0.2","start-server-and-test":"^1.15.2","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.26.3","vue-loader":"^16.8.3","vue-template-compiler":"^2.7.14","webpack":"^5.75.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"bf3d5d68e321e02c2324364efb19ccf032f6e836","_id":"@flowforge/flowforge@1.3.0","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-cLoZ+5QS+mNzRvKEtqGmgjRbIvEdpXydM5xIELMzNH8C6wB2bOuEcKJ1ZB0jjKK/JQLC9cjocauBAtGlmHTXwQ==","shasum":"ce24d761ac19548e87796749dd116cb53fa593d4","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.3.0.tgz","fileCount":222,"unpackedSize":3414845,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIADH4BUGCvYqvbJGehZlOrjP+nPrdUP0CMl7voHTlbXMAiEA29fLT2BQg3mOCHjN1AHk6trCQXsEAHZil7gyoG9pZxY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjySOgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq7Fg/9Fmatff1eGul09iqcx8wSAVZ6ZK8UysdooVUjUgQnpdCbvzgA\r\nR7yvPwdf5H7kxc1/PhvixuSr1F7Tqg62ywDCgy+eE4Qcmzp+2nBO7bfoBXAP\r\nMTtfOr3KCK5MkiuIK32/1v0ndTRagjWc+MtAvAyEhVYLO/sLibSAbdvXn4HV\r\nYXbELflP/2qAFqZQUTfzvC4s6GzjYbpHu0r8ufjbf6uSApdr1OSkLPKAM+x3\r\ne3iZ/lQgmyHdFbH1bid+Z+N/R6lI7DcTmYgKzOE3vYOOxYpBPHnRqcHfcFaE\r\ndEDEp+UlLYVu9ITS6pcavDEo4lumhQSlQocsA9qtE1KBvBDpN/QOI+PyycRG\r\nNp+0ndzgGudaK8J9MtWraWrmjGaUFbdvilwpInAk+Ih5SE9I4Cop1YfNs1As\r\nA96f4oMuQ+yVAp6q7yn+aOoUJluhqg8t/h5mILwKdDEZdOCYtQa3PD5FT+F5\r\nVWIDt1VVsrV3A9g1Z4B2PmvGeFprilkqxd7rwRql9sW9RyE2dx70VYyuBmqq\r\nKlGZlMm4SOP8gV+y3sal1iG8ahxraK63JnZmSV8qHaoSXeTIJesCI2P3rysb\r\nUNAoFb7mjCxn+tJTupvzzfsnAwIhUo2UqHOtkAHmQSGLBddtdFOXnRRI4jqE\r\n/x6NTAQlEJrtjwu4jxpR+UzD9Q35E8t2+fA=\r\n=onqs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.3.0_1674126240222_0.9605029755238976"},"_hasShrinkwrap":false},"1.3.1":{"name":"@flowforge/flowforge","version":"1.3.1","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/formbody":"^7.3.0","@fastify/helmet":"^10.0.2","@fastify/passport":"^2.2.0","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.5.2","@flowforge/localfs":"^1.3.0","@headlessui/vue":"1.7.3","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.14.0","marked":"^4.1.1","moment":"^2.29.4","mqtt":"^4.3.7","nodemailer":"^6.8.0","passport-saml":"^3.2.4","pino-pretty":"^9.1.1","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.20.7","@babel/preset-env":"^7.20.2","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.2.6","autoprefixer":"^10.4.13","babel-loader":"^9.1.0","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.3","cypress":"^11.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.31.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.6","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.6.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.8.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.0","jsdom":"^20.0.3","mini-css-extract-plugin":"^2.7.2","mocha":"^10.2.0","mocha-cli":"^1.0.1","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.8.0","postcss":"^8.4.20","postcss-loader":"^7.0.2","postcss-preset-env":"^6.7.1","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^14.0.2","start-server-and-test":"^1.15.2","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.26.3","vue-loader":"^16.8.3","vue-template-compiler":"^2.7.14","webpack":"^5.75.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"9a9d967e7b8fe56765c7d4a3a9a06516a6693e9e","_id":"@flowforge/flowforge@1.3.1","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-Uq7tpC6B8EwJ0jWDVQO5XvLHLMn4YzxAtU00+wABYvQU7efXshogo4doAYhw0V3/jjZRWgEBgYxl6LMZ864vJg==","shasum":"c71751a631b7e1d5c3d46624ebaedc7aed1109e0","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.3.1.tgz","fileCount":222,"unpackedSize":3415331,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8ojQczIZLdEtGUHbzIYUyuQiIGh9T6xlYOHern4fF7QIhAK4jRm6A6vJNoOiEyJIbpYr8Jnc99pNXaMzhYxWy0Czn"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0m1oACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpH+A//dXIVcCCw9V+R3jOCx9771I7q8kakmv82HoG3HNGLlYaaDN+W\r\n2x7nCMYUWODLOH9Z2gD+X80uImZ4Q89nf7/2jgPWnVA6qz0E7+tSWZY7d+wa\r\ncX41h6m7ovYymjwhxGXGDcViMg9dNFg0HEmD8qz3KLxz06A67XQedck/i/YL\r\nM5TtCK/Gwht5FcYXV/hAt107HJBuEoZIr5MeRnZzhPknrfviQ7DCFookvDEW\r\noBTJS2feJtxwBejx3jvTn8v0Dem4fwAzFTmmjDm3Q7BSZxbvjP/qcoRKd3vu\r\nYeqSK30a2I9En21aeBwz4QGKK33eWoUHM9J6TOfoAPhAKFrhUZg5klByGAu8\r\njU9yNHJ8kyDE2rUhoa2T/XgdOG+sH/WFkU7sZE2sORDHjT+B5dPdrwgq+oLn\r\nVIVrrPkSaI1/RRvxz2xpL5000L1aEUwFrIEC9XeX+fGinljplsxIDQjJ1+7g\r\nMIZC5Sa2TmvaJbk5ze/SjW/BxhdkU09ZKmy4U2PyFYXJ4yQiKuQr62YX9hz6\r\n/eV7UpQ3EdpU7+V/E8RjM/phggezIExRlzM1dV761E2LwwKQIONr+hPoiSeN\r\nHZHogzkN9hrmzqFhgir8aZFwYm7Cthqn9kaugiSfSsEQmWvpubuPTF/pFSl7\r\nvq79tNu6oS/JyT/vUbL97Kw4bvAivocYE28=\r\n=hVkV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.3.1_1674734952125_0.8344360521874066"},"_hasShrinkwrap":false},"1.3.2":{"name":"@flowforge/flowforge","version":"1.3.2","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/formbody":"^7.3.0","@fastify/helmet":"^10.0.2","@fastify/passport":"^2.2.0","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.5.2","@flowforge/localfs":"^1.3.0","@headlessui/vue":"1.7.3","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^8.5.1","lottie-web-vue":"^2.0.6","lru-cache":"^7.14.0","marked":"^4.1.1","moment":"^2.29.4","mqtt":"^4.3.7","nodemailer":"^6.8.0","passport-saml":"^3.2.4","pino-pretty":"^9.1.1","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.20.7","@babel/preset-env":"^7.20.2","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.2.6","autoprefixer":"^10.4.13","babel-loader":"^9.1.0","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.3","cypress":"^11.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.31.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.6","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.6.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.8.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.0","jsdom":"^20.0.3","mini-css-extract-plugin":"^2.7.2","mocha":"^10.2.0","mocha-cli":"^1.0.1","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.8.0","postcss":"^8.4.20","postcss-loader":"^7.0.2","postcss-preset-env":"^6.7.1","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^14.0.2","start-server-and-test":"^1.15.2","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.26.3","vue-loader":"^16.8.3","vue-template-compiler":"^2.7.14","webpack":"^5.75.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"b3dd15fba3ffa89d39a8f850dbc319d6c27963fd","_id":"@flowforge/flowforge@1.3.2","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-N3UpMGk055PWW3sB5cKs0DaguO56G3L7uebmY7jqkUdcPwi5ssovQPQzqHkiIRPJ6/z48H65S+abrt34VjpE0w==","shasum":"828035f9b3661602b727ed5e7bfb9dae83892946","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.3.2.tgz","fileCount":222,"unpackedSize":3417141,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEEl6+DvkZmk/ibBs/TC/hhnbuWgMVO14dvuMGaiHvMoAiEA8b5UoxuqfmF5zEvdYur1bxh6Gcn1W4FEtnkBP9W6R3g="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4nDqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqw5A/5AJI78BRXw5sQsjbza5W6Lt4ERli97R1TFvR7iRTpKl8D7GjD\r\n7Z4F+pFc7QJS/qnMxefqmYmGnYr93rBNp8TAB6B7TE8jxj+CpQ30POcVGMNC\r\nBrsZ71ZVIKQhB8a+42umC5aYOfJ4k3k2KH3DPBBCGNnBfTi4sP53equBGgAG\r\nLEth5oUcCnMKNWZeQ0MC+2H27DbNmIpku8K9iK/7LCENV+rmnMRjpDAW71IA\r\n0exOyat/gw8sVNWH79AuZchEGrGDmwnvsCe+UklQ4QoSykkaUicaCYvbhv+Q\r\n0cxxlhY7ZH846xR98t+YbfHRDDT4rc1vmfFvYAqqEoqKqa6++MuHMzF/QLNw\r\nir/KXYC4K+Zc8KwZ+G0DKH7jEihIzD+hQGJBOJvDQ37/vA064JOPooU7x+fu\r\nzdgG3XUHvrzGeHtohquI7wcuROiRjnrnDMFdH2rakEL/XIlUSlLlxmOc0mZE\r\nhZywVULOBsDyhp99PuT0awsJssq4gqRKeOT22OYxLw+kE7PIFuqtV/vF993C\r\ngCrTvicOv3Ek6HhqZprR1alobxgOboLpM5lpm44Hmuep55bTJtgU6ZKGp7dS\r\nBeLB5PP7psIbr6S3KdfwgmqtXPsW04YUl3asq8Js2vetMLucckr2xvuk66o+\r\nSNhx3Nvu4Z6oX+1Wopq0FHn7GfIoz7RvS04=\r\n=doE7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.3.2_1675784425615_0.06912784128076122"},"_hasShrinkwrap":false},"1.4.0":{"name":"@flowforge/flowforge","version":"1.4.0","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/formbody":"^7.3.0","@fastify/helmet":"^10.0.2","@fastify/passport":"^2.2.0","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.5.3","@flowforge/localfs":"^1.4.0","@headlessui/vue":"1.7.9","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.6","lru-cache":"^7.14.0","marked":"^4.1.1","mqtt":"^4.3.7","nodemailer":"^6.8.0","passport-saml":"^3.2.4","pino-pretty":"^9.1.1","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.20.7","@babel/preset-env":"^7.20.2","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.2.6","autoprefixer":"^10.4.13","babel-loader":"^9.1.0","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.3","cypress":"^12.4.1","dotenv-webpack":"^8.0.1","eslint":"^8.31.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.6","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.6.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.8.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.0","jsdom":"^21.1.0","mini-css-extract-plugin":"^2.7.2","mocha":"^10.2.0","mocha-cli":"^1.0.1","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.8.0","postcss":"^8.4.20","postcss-loader":"^7.0.2","postcss-preset-env":"^8.0.1","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.0.1","start-server-and-test":"^1.15.2","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.28.4","vue-loader":"^17.0.1","vue-template-compiler":"^2.7.14","webpack":"^5.75.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"fdb1ad065cf933c8f3a43a5e87ac293f3855888e","_id":"@flowforge/flowforge@1.4.0","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-1uxHWwt3rlArb+YTxCJS6CU1d38fd/KS/+tk30SR8jYMkkn+YpR2lf3gTv4xPJ58G9jx59sqaI3aOk+9l2HMtg==","shasum":"ec7e2ff9870e5712249f1c47531a7ea6bc034ea1","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.4.0.tgz","fileCount":228,"unpackedSize":3288374,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFuGMDAG9BGAEnlV87iya6YdGm1yh4EzOCmRVXpEQAMbAiEAlxwR9HBt+1Jvf/S9SjCUb0wkISzv/jp01iTy5MrQ89Q="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7gOwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoUrRAAj23smIiL8pN55j6QTRpJoKOF4THTs8f+5Bg4jyH/2DhJ6TFo\r\nI5ccf+P9c4ew+utAKshbsiyPOasIQHdbYeZCd6Z2BEGMaeYkQqG3HwUvcQ00\r\nNUGvottV+oTllYGeGN2S/RyJijVuxaLXgYLQtnG8zNJo1AMETOn5HIuBRi9t\r\nt1gkNwmHNJ1nxBx0xPXRN3tHoSWSukc+pb569lmcbG1wTToeCKeaxApTS3Ax\r\nD4wqCcm5W+NRaK1AZirm2m204kD16hhAzmbRIXSxEKQybgCKon8zRTlDFiOT\r\n20uO10W4AautuX5+xqyac8Nhdk79n1RfydkSPmG3XTXAOsmIIFCtk7v6NBNR\r\npJ3C0ykHXEdIZ00/A88dApWheJY91nDjkdzOmEMKtRJGmiOCuXSi5YB434N6\r\n11PmkB2hBwgru2lIS5sfJ8OXycsnOLP3nHFXX55vYRMqtzACg90p+jSI1Che\r\nKAgzb38Ua6TPDoigH0VLF/lMOVtTpL22/DqWCSbjs5gAFmQ+DiRYewsmvlVe\r\n9sBvleFdEEY4nBsvOTEzAC3Wu34o7gd0M4lsGHSPBnO1gTJSh6KePAMaP+VR\r\nE6jpb0xw5N34RuGq2XQks56T5+lzLeyrizxEctTtZpYO06w8k8Z23dBxWLQO\r\nYezMyX6Z/bZ64tYwThCMz4NIHxf9ktRlCXw=\r\n=6MyN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.4.0_1676542896048_0.5272907631630848"},"_hasShrinkwrap":false},"1.4.1":{"name":"@flowforge/flowforge","version":"1.4.1","description":"An open source low-code development platform","scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"bin":{"flowforge":"forge/app.js","ff-install-stack":"scripts/install-stack.js"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"author":{"name":"FlowFlow Inc."},"license":"SEE LICENSE IN ./LICENSE","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"homepage":"https://github.com/flowforge/flowforge#readme","dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/formbody":"^7.3.0","@fastify/helmet":"^10.0.2","@fastify/passport":"^2.2.0","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.5.3","@flowforge/localfs":"^1.4.0","@headlessui/vue":"1.7.9","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.6","lru-cache":"^7.14.0","marked":"^4.1.1","mqtt":"^4.3.7","nodemailer":"^6.8.0","passport-saml":"^3.2.4","pino-pretty":"^9.1.1","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.20.7","@babel/preset-env":"^7.20.2","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.2.6","autoprefixer":"^10.4.13","babel-loader":"^9.1.0","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.3","cypress":"^12.4.1","dotenv-webpack":"^8.0.1","eslint":"^8.31.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.6","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.6.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.8.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.0","jsdom":"^21.1.0","mini-css-extract-plugin":"^2.7.2","mocha":"^10.2.0","mocha-cli":"^1.0.1","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.8.0","postcss":"^8.4.20","postcss-loader":"^7.0.2","postcss-preset-env":"^8.0.1","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.0.1","start-server-and-test":"^1.15.2","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.28.4","vue-loader":"^17.0.1","vue-template-compiler":"^2.7.14","webpack":"^5.75.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"a2fa76c612f91497e742cf21453369670d6edc50","_id":"@flowforge/flowforge@1.4.1","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-8wqXfUogQuoMNXjxevplLA7tQrx9Wgjx3lWOS2YIqAQUFubM1JaDGD54Yx8jU1kH31cGyfyolZvWlBNW6XFa9Q==","shasum":"d90cee408bfe4ce28afcdc5675112450f95b6b61","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.4.1.tgz","fileCount":228,"unpackedSize":3290629,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH0SpgqMIzEZkMSJPKCpO3MoGePiq+7vuYZu1N1xis95AiEA0//YaJNWagSimTAPiCyW6IdjxwhmSJMa4jvUdc2uHkQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCeCHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrZHg/7BAX8wJR+XeXZ/BdYbHK0flBleAu9DzTT79mx8zrS3hSS75v0\r\nsXtk/TUvpscLXqGVJGyQq8sP+T0SqwqWupPVgl2mp0zmA6ExlcanAXER4CBT\r\nwPq3Ae8IvoCsLYjHTNVFEvKHI0sSXszeaDQvH/kr3Q4b9ci4aTnJPeGT/yg3\r\nOJXlvcpEAUKzHPgTGNSakk3rwDtRohG61K1D2Ig/WQ+lc7ZWYEQG6C2FyH55\r\nvLEx4w6sJ8YXkjW2kqpiQtUHEKS1VbYaGzDJkA6k4EItxCqQxjxSmayoj2Fo\r\no/7VK+T/quOWLY+qCA0OpE4TNtQZXagzg9gfCdVnhlQYntdnyDqA5f1z23I+\r\nDXkxP/nO53s8y+MzJ06mwUzVeWnZEdiyo2IN4677IlAq8k6PvMrndGoEaowq\r\nIjjIpBX/Tk5QpRSNWViTCSM0IogypTg30dVrtt1dTY6qWIZBhCT7hKr7XoeY\r\nmhVx16amVJxzoYBGRXwm6gIX5vGQfR6qawxnGEmjKCjj2ky0lylGe+zECR6w\r\nVCa/pN4YUde3zkXVqxZSsMs53V//IMd5Xv7kbbPhpYsZ3nByxnyb0jnEqLIw\r\nae2z+S45HEe7gDMhetudtbUtxe8avS0/fSq+TAsdgZ2JIaAOn0USO3RwsmzM\r\nBJRGfiGTGuUynjw79FUnCT2tzQ+mBI8UkRQ=\r\n=3MDw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.4.1_1678368902897_0.7784051657863895"},"_hasShrinkwrap":false},"1.5.0":{"name":"@flowforge/flowforge","version":"1.5.0","description":"An open source low-code development platform","homepage":"https://github.com/flowforge/flowforge#readme","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/formbody":"^7.3.0","@fastify/helmet":"^10.0.2","@fastify/passport":"^2.2.0","@fastify/static":"^6.5.0","@flowforge/forge-ui-components":"^0.5.5","@flowforge/localfs":"^1.5.0","@headlessui/vue":"1.7.12","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.6","lru-cache":"^8.0.0","marked":"^4.1.1","mqtt":"^4.3.7","nodemailer":"^6.8.0","passport-saml":"^3.2.4","pino-pretty":"^10.0.0","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.20.7","@babel/preset-env":"^7.20.2","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.2.6","autoprefixer":"^10.4.13","babel-loader":"^9.1.0","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.3","cypress":"^12.4.1","dotenv-webpack":"^8.0.1","eslint":"^8.31.0","eslint-config-standard":"^17.0.0","eslint-import-resolver-node":"^0.3.6","eslint-plugin-import":"^2.26.0","eslint-plugin-n":"^15.6.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.8.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.0","jsdom":"^21.1.0","mini-css-extract-plugin":"^2.7.2","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.8.0","postcss":"^8.4.20","postcss-loader":"^7.0.2","postcss-preset-env":"^8.0.1","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.29.2","vue-loader":"^17.0.1","vue-template-compiler":"^2.7.14","webpack":"^5.75.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"f330214b30b335bc264bbd7babfc15c49a54740b","_id":"@flowforge/flowforge@1.5.0","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-61TU/srnejwTn4ovbMWbZldbu7wLvUHcmZ1jaW7MpaoXGv6IxCTnvqa/1Hzs46MOTppM9S+F9280EAqFQQS1mg==","shasum":"20d3ff32350c6042162389726da884251508d0db","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.5.0.tgz","fileCount":231,"unpackedSize":3339989,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIES+mdtMSGMgNpEpX8aVkHnuDp9J9lNfOoSM/EKIPJcyAiEAzLoXDxuJUK6U7JKxDkUZFXGr5nuloPvRe1wfRSTqHY8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEvYoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmro1A//bXf6ZYocc1cw6hXkRv4hwFydJ8wIlwTlZtsV4j8X5gF+UWhI\r\nBZDAYo6oUFbzNHVoFMAY7A7wp4puiTLlm1vzV4vlnxJX1WFEP/Y7G7l9rPFk\r\nbePtzXk4W/mfiKsyqEAiIXre16+iT7rsavqQKQgJ35tgsh2FplR6jqtUEVXc\r\nlGaWydj3KkZiBp3oU2xUGtSGrTAGqNXI0+hl860cFoyAKuoiUEOhYBQkVQDT\r\nfdZ/s2aVapPW5nBHowsAAl9lfpFJ+dLYpBrxBQf0CxuBgYVeEJNX7+/Hu/eE\r\nxYo+nDC6LN/+6/07DFJXOsJKs+LlHLquZA3zODAShWAIz0PAXCCOVVHdYSOG\r\nHydmm95dSeaZEaBIIm+lgB32nuTHWTjSERQkREeg2RQucKW0DHGVi+thtPu9\r\ncMnmxmtj52ZLOHFwh8Qs6NNnRB/8UalAp0ylF98CuUh1Mv5wIWXvYZ+Ot3EC\r\nRJLXSaJTIpwWL2D4pPDnUJa/AsgRSEpVL716yiU5LzLj8C2N/si7WY+Zz1kM\r\ntSIG3aIwrr0RzsJ2Kk+/pzXCEZrBUJq8s6O1XiOXwNarUrH6RaxFmZtV04ml\r\nZhKjFQVHR7QBLHIMWyGt3lwtu7JwJG+EERTAPEcsrWOYEwjkIWebta6FiRXp\r\nCyDeAngx12UUY6+kmbo8UOe9Aij/9wEvPIc=\r\n=k2DG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.5.0_1678964264671_0.16083237821576546"},"_hasShrinkwrap":false},"1.6.0":{"name":"@flowforge/flowforge","version":"1.6.0","description":"An open source low-code development platform","homepage":"https://github.com/flowforge/flowforge#readme","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/formbody":"^7.3.0","@fastify/helmet":"^10.0.2","@fastify/passport":"^2.2.0","@fastify/static":"^6.5.0","@fastify/websocket":"^7.2.0","@flowforge/forge-ui-components":"^0.5.5","@flowforge/localfs":"^1.6.0","@headlessui/vue":"1.7.12","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.6","lru-cache":"^8.0.0","marked":"^4.1.1","mqtt":"^4.3.7","nodemailer":"^6.8.0","passport-saml":"^3.2.4","pino-pretty":"^10.0.0","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.20.7","@babel/preset-env":"^7.20.2","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.2.6","autoprefixer":"^10.4.13","babel-loader":"^9.1.0","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.3","cypress":"^12.4.1","dotenv-webpack":"^8.0.1","eslint":"^8.37.0","eslint-config-standard":"^17.0.0","eslint-plugin-cypress":"^2.13.2","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.10.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.0","jsdom":"^21.1.0","mini-css-extract-plugin":"^2.7.2","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.8.0","postcss":"^8.4.20","postcss-loader":"^7.0.2","postcss-preset-env":"^8.0.1","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.30.0","vue-loader":"^17.0.1","vue-template-compiler":"^2.7.14","webpack":"^5.75.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"ded9f4a6a2f4fcd4b8fe73a87adabe3f6331fa96","_id":"@flowforge/flowforge@1.6.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-5WwF6cEUC2c0XBq/ujKeNCuNk/jGUw1QQnsj50XxzcIugCrgR8UEsEpwBPZzJVNQJ3vmN3udqd8FvLJNg/XCaA==","shasum":"4c796f1a6c9a58a624a0cef3f347b6396424526d","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.6.0.tgz","fileCount":241,"unpackedSize":3373860,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC7/iVo6qj3EqC8sqGb8wLgDEYtlxWCjQtcOF11NLBQNAiEApQDF0KHmTyUK+IRNkMxnF8/fAUKDwQxeOnX/BqdqlBQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkN/NIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQyg//ceUD2tf3RDR7sFdwJ4jFXpqRjOG5+LWqhrjk3ecn3FYh0rE0\r\naZd/gTnhDS1Nq7tar+ysSCkCT3NNgE7ZteMcjUZRF0a+thgcKAiGweYGipiM\r\nOa+njpiGTyKNLimbuej9KBgtFWQtNzIIk86XtmGaXQXHYn6fwHOxrj4LYPii\r\n2Q97BKBBLMdaWZ1tZzTgb8RLpmETGhW7CAr2L0O83iMwdbriRIz9fwnzxtUd\r\nAGkAFAcfdxztnJJS9rpSsQfXGYmJ3sarcxwTUqp70DR93tnBzOYTtd9UxRDt\r\nubuO38dCcqs6DH2MORF3UeibcePtH9Aa9yKKYatHKhtyhKdCLBoNPRrt30YV\r\ni/J8u1f13kK7JGlwFzHziys/NBnOMhCr2Gm4+BBgdtpfbUp73qeOlmELKxN5\r\nu07mQ/juQdvWfdZoqlttbn1foRoJEQ0Y3SrqjfFvrcJVQKDDOgNvs2/kPA+/\r\n2eveMHDvF6K/TEd2/FmZWnqS0QR/DL3LH7lV3iq2mehZYjPe+O7y+OGIlM5n\r\nkYV85wAI0Zx59XUpgyHWDyymkM+C0yvH4fgTVDxXSsKU2VsnGvHE5kJyEE92\r\n/WxER1nhhcxijNSyoM9TZfU2sxP3cyTiwtkN2EzmqdvgK/4vVGEz0RP2Cjuf\r\nrihRoD6cZxfud6TwfFFUPWHoQxABQKruzCw=\r\n=yBoC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.6.0_1681388360315_0.8788564205844589"},"_hasShrinkwrap":false},"1.6.1":{"name":"@flowforge/flowforge","version":"1.6.1","description":"An open source low-code development platform","homepage":"https://github.com/flowforge/flowforge#readme","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.0.0","@fastify/formbody":"^7.3.0","@fastify/helmet":"^10.0.2","@fastify/passport":"^2.2.0","@fastify/static":"^6.5.0","@fastify/websocket":"^7.2.0","@flowforge/forge-ui-components":"^0.5.5","@flowforge/localfs":"^1.6.0","@headlessui/vue":"1.7.12","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.6","lru-cache":"^8.0.0","marked":"^4.1.1","mqtt":"^4.3.7","nodemailer":"^6.8.0","passport-saml":"^3.2.4","pino-pretty":"^10.0.0","semver":"^7.3.8","sequelize":"^6.25.2","sqlite3":"^5.1.2","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.20.7","@babel/preset-env":"^7.20.2","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.2.6","autoprefixer":"^10.4.13","babel-loader":"^9.1.0","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.3","cypress":"^12.4.1","dotenv-webpack":"^8.0.1","eslint":"^8.37.0","eslint-config-standard":"^17.0.0","eslint-plugin-cypress":"^2.13.2","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.10.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.0","jsdom":"^21.1.0","mini-css-extract-plugin":"^2.7.2","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.8.0","postcss":"^8.4.20","postcss-loader":"^7.0.2","postcss-preset-env":"^8.0.1","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.30.0","vue-loader":"^17.0.1","vue-template-compiler":"^2.7.14","webpack":"^5.75.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"e0ca9e9081226d94f89a44b7c58ab52a8f1f50c7","_id":"@flowforge/flowforge@1.6.1","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-hEaIZmB41zbJawXM4X8epnocMC889JMVSjoN8DMjl0Y6y4Ci7YNPfbcRwbc4W41TPCBj7xtjuUgbmDv52Nry3g==","shasum":"9c2643f2d8c33c36558b7b46fb288b5b18cb8537","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.6.1.tgz","fileCount":241,"unpackedSize":3374915,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtkwVLXBlzsA23wWxc5rkTkHeUU+1np731afeUSh1XFgIgQiz8WUO39CNHO8NqTGbsywAwoUseePvrl3YCEuX244Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkRp5JACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqN0Q//WhFqQyiiqUfqBitHHfXYClkbJG29IADEsn5abapgMzOb6IbL\r\nCQ/MRfFxDxdpwX1NoKx8s0/yU1s0tkGFWLngpXlf9HtLJD4N5jaPNa0XTbjC\r\nNlaVFrObFQIslrxGX6ma0/3s8xzwfnhgFhz1NCCQQ9giAG8WxlDA7iCbyyqF\r\nfWRprZljdtxGljfy894XXIN1fRFibUqdWBL0p5wEVpWXl/20FZOROZdn+zGc\r\ntSt2AtU9USAvfD2wJlQfFa91V/o6KW/JOx25CRNmggz+xFocmT989OvfwR8P\r\nXC152TaF/n88flYclVhcjC2wqHKEQK3v/07me1hr9fiQ8u/nA/VZsHdo8NH1\r\nPBQFTwapVbV7l0lg7t0DxtZDY6irz2q/XTZGwYTMiDfk1cyURqaURJb0w5Io\r\nC1XQnN4L0m/61eo9sedUEDp0HoHC+m1bjUFPcY7NMppShi0+9jvkBMpKB6sa\r\nhAwhKy0938/0ZPszVpu8Z2lqNskOBmSIhgP+/LCHTAT1/efQc7c18739uuwQ\r\n6eEMxHJevivHNTZBzMIjnGO5X+c1YyWcKVOO3vpA15rjdssOPWz5Ilarks8i\r\namWgGHAStLf6xCaBL3Q2ztqJBSSAb21wdVAxpQ7JR8yi24ihOQrXzQNXgcp3\r\ngTbYLXDmkkqaA0biISqBvLMTpzDG3GNdgPk=\r\n=71pT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.6.1_1682349641540_0.5030536632110936"},"_hasShrinkwrap":false},"1.7.0":{"name":"@flowforge/flowforge","version":"1.7.0","description":"An open source low-code development platform","homepage":"https://github.com/flowforge/flowforge#readme","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/accepts":"^4.1.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.3.0","@fastify/helmet":"^10.0.2","@fastify/passport":"^2.3.0","@fastify/static":"^6.5.0","@fastify/websocket":"^7.2.0","@flowforge/forge-ui-components":"^0.6.1","@flowforge/localfs":"^1.7.0","@headlessui/vue":"1.7.13","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.6","lru-cache":"^9.1.1","marked":"^4.1.1","mqtt":"^4.3.7","nodemailer":"^6.8.0","@node-saml/passport-saml":"^4.0.3","pino-pretty":"^10.0.0","semver":"~7.3.8","sequelize":"^6.31.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.20.7","@babel/preset-env":"^7.20.2","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.2.6","autoprefixer":"^10.4.13","babel-loader":"^9.1.0","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.3","cypress":"^12.4.1","dotenv-webpack":"^8.0.1","eslint":"^8.37.0","eslint-config-standard":"^17.0.0","eslint-plugin-cypress":"^2.13.2","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.10.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.0","jsdom":"^22.0.0","mini-css-extract-plugin":"^2.7.2","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.8.0","postcss":"^8.4.20","postcss-loader":"^7.0.2","postcss-preset-env":"^8.0.1","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.31.0","vue-loader":"^17.0.1","vue-template-compiler":"^2.7.14","webpack":"^5.75.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"a38c072b5af428536b3b243d7433a375d05da414","_id":"@flowforge/flowforge@1.7.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-RB+NdN0Dz5W1wBGEuJGZ1XSUYUhjnCFBGIIzNPgPFt664y4F9OLuhCWAyiq/TR8EMcv2hIx6oDREXqQxwF9abA==","shasum":"d075297a89704ca80f5b6f1b566fdc715cf0c81f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.7.0.tgz","fileCount":248,"unpackedSize":3579072,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcm/Zn+6YrCH2gJR9yfBcVu48Oi9GaGOwOBwef88PypwIgUzOJHEHT8wy6E9EB6kD2KJE8tYjdHuJSHDAGr61+ano="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.7.0_1683800001842_0.2310091622404471"},"_hasShrinkwrap":false},"1.7.1":{"name":"@flowforge/flowforge","version":"1.7.1","description":"An open source low-code development platform","homepage":"https://github.com/flowforge/flowforge#readme","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/accepts":"^4.1.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.3.0","@fastify/helmet":"^10.0.2","@fastify/passport":"^2.3.0","@fastify/static":"^6.5.0","@fastify/websocket":"^7.2.0","@flowforge/forge-ui-components":"^0.6.2","@flowforge/localfs":"^1.7.0","@headlessui/vue":"1.7.13","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.6","lru-cache":"^9.1.1","marked":"^4.1.1","mqtt":"^4.3.7","nodemailer":"^6.8.0","@node-saml/passport-saml":"^4.0.3","pino-pretty":"^10.0.0","semver":"~7.3.8","sequelize":"^6.31.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.20.7","@babel/preset-env":"^7.20.2","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.2.6","autoprefixer":"^10.4.13","babel-loader":"^9.1.0","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.3","cypress":"^12.4.1","dotenv-webpack":"^8.0.1","eslint":"^8.37.0","eslint-config-standard":"^17.0.0","eslint-plugin-cypress":"^2.13.2","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.10.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.0","jsdom":"^22.0.0","mini-css-extract-plugin":"^2.7.2","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.8.0","postcss":"^8.4.20","postcss-loader":"^7.0.2","postcss-preset-env":"^8.0.1","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.31.0","vue-loader":"^17.0.1","vue-template-compiler":"^2.7.14","webpack":"^5.75.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"bca6d612581de8269d9106611cae672082cb4fbb","_id":"@flowforge/flowforge@1.7.1","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Lqu8pIeLLk4IKI/gNRLfdWrrGbWk6IMrFC+At1mDYCYovHcx6SoHY3Rm95nvDYxwokovpAo5MUejpAvweBl+YA==","shasum":"1944320fb403911a0ad5bd91e5338b8a2dd0160d","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.7.1.tgz","fileCount":248,"unpackedSize":3580001,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIECIhJVrOka2dF4ZveuLE+oaXhOuIHeJynZBM7Sgv2kKAiEA7WJn6UrxtyrGU3wM4Rkd9Y2AoTNGW9sjhDCojvuI7qM="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.7.1_1684240208546_0.5673656030794609"},"_hasShrinkwrap":false},"1.7.2":{"name":"@flowforge/flowforge","version":"1.7.2","description":"An open source low-code development platform","homepage":"https://github.com/flowforge/flowforge#readme","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/accepts":"^4.1.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.3.0","@fastify/helmet":"^10.0.2","@fastify/passport":"^2.3.0","@fastify/static":"^6.5.0","@fastify/websocket":"^7.2.0","@flowforge/forge-ui-components":"^0.6.2","@flowforge/localfs":"^1.7.0","@headlessui/vue":"1.7.13","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.9.2","fastify-plugin":"^4.3.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.6","lru-cache":"^9.1.1","marked":"^4.1.1","mqtt":"^4.3.7","nodemailer":"^6.8.0","@node-saml/passport-saml":"^4.0.3","pino-pretty":"^10.0.0","semver":"~7.3.8","sequelize":"^6.31.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.20.7","@babel/preset-env":"^7.20.2","@vitejs/plugin-vue":"^4.0.0","@vue/test-utils":"^2.2.6","autoprefixer":"^10.4.13","babel-loader":"^9.1.0","base64url":"^3.0.1","c8":"^7.12.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.7.3","cypress":"^12.4.1","dotenv-webpack":"^8.0.1","eslint":"^8.37.0","eslint-config-standard":"^17.0.0","eslint-plugin-cypress":"^2.13.2","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.10.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.0","jsdom":"^22.0.0","mini-css-extract-plugin":"^2.7.2","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^8.0.0","nodemon":"^2.0.20","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.8.0","postcss":"^8.4.20","postcss-loader":"^7.0.2","postcss-preset-env":"^8.0.1","promptly":"^3.2.0","sass-loader":"^13.2.0","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.0.1","style-loader":"^3.3.1","tailwindcss":"^2.2.19","vitest":"^0.31.0","vue-loader":"^17.0.1","vue-template-compiler":"^2.7.14","webpack":"^5.75.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.11.1"},"engines":{"node":">=16.x"},"gitHead":"d05d2b8c3f50a8f9689ffff8d72ba4f365a2a983","_id":"@flowforge/flowforge@1.7.2","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-l7oakHNoFq9IB9nf6EkBGM11LFu0JMbXSLdythtWUqZn92nyzEKQB26WKb8W8QqRcL3De9WrWx0GwB2rozsXAA==","shasum":"ab88400bc786df8f5005a8ca729f50cf17254738","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.7.2.tgz","fileCount":248,"unpackedSize":3580417,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHT+aSqT+zYX+boDsc1bQ2ZkfXHk6Opt9x344i23U/8BAiEAt0BnTftxi0WDFxVn9IPb0DXBzEIVz8nKTD6kISlXehg="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.7.2_1685527012180_0.5230323948477569"},"_hasShrinkwrap":false},"1.8.0":{"name":"@flowforge/flowforge","version":"1.8.0","description":"An open source low-code development platform","homepage":"https://github.com/flowforge/flowforge#readme","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^10.1.1","@fastify/passport":"^2.3.0","@fastify/static":"^6.10.2","@fastify/websocket":"^8.1.0","@flowforge/forge-ui-components":"^0.6.3","@flowforge/localfs":"^1.8.0","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.17.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.6","lru-cache":"^9.1.1","marked":"^4.1.1","mqtt":"^4.3.7","nodemailer":"^6.8.0","@node-saml/passport-saml":"^4.0.3","pino-pretty":"^10.0.0","semver":"~7.4.0","sequelize":"^6.31.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@vitejs/plugin-vue":"^4.2.3","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^7.14.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^2.0.22","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^8.4.1","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.31.1","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0"},"engines":{"node":">=16.x"},"gitHead":"5b43f8a6738e297157c991f8ca5c447fb5dfe5a0","_id":"@flowforge/flowforge@1.8.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-DtnXpbl3QbYlY9MW4KFe2zplexQj33c6ZgsMIAXI4DHDdZCb948mloscCL3ccYfqzLgRgL91s5Nac3xf1ifBZA==","shasum":"c1d5db1a0f3d0ff967c5d524aa28c42ca658b05f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.8.0.tgz","fileCount":263,"unpackedSize":3806086,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3+K4kvR6zingx/0NVuWEk1BxAS9Xz+69fACtDfD+LJQIhAPgEyLoF/J9hP/Jo9GW84iknRkABMomBfflo3hY2Ni2m"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.8.0_1686217199784_0.7401440141699405"},"_hasShrinkwrap":false},"1.8.2":{"name":"@flowforge/flowforge","version":"1.8.2","description":"An open source low-code development platform","homepage":"https://github.com/flowforge/flowforge#readme","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","serve:test-env":"node ./test/e2e/frontend/test_environment.js","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"node ./test/e2e/frontend/test_environment","cy:run":"cypress run --config-file ./config/cypress.config.js","cy:open":"cypress open --config-file ./config/cypress.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.100.0","@aws-sdk/credential-provider-node":"^3.100.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^10.1.1","@fastify/passport":"^2.3.0","@fastify/static":"^6.10.2","@fastify/websocket":"^8.1.0","@flowforge/forge-ui-components":"^0.6.3","@flowforge/localfs":"^1.8.0","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","axios":"^1.1.3","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.17.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.2.10","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.6","lru-cache":"^9.1.1","marked":"^4.1.1","mqtt":"^4.3.7","nodemailer":"^6.8.0","@node-saml/passport-saml":"^4.0.3","pino-pretty":"^10.0.0","semver":"~7.4.0","sequelize":"^6.31.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.2.41","vue-router":"^4.1.5","vuex":"^4.1.0","yaml":"^2.1.3"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@vitejs/plugin-vue":"^4.2.3","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^7.14.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^2.0.22","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^8.4.1","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.31.1","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0"},"engines":{"node":">=16.x"},"gitHead":"a41a7ac23e8411a190493f53e2c419f1727310a4","_id":"@flowforge/flowforge@1.8.2","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Qy0gi/2aT34NDPeGH+QvZ+OSnVcjGD+zT4Ba2rFIxkQ15Z8YkG2UgFgjiHG4Go2Erh+2U4S12O169MeH/IO91Q==","shasum":"db237d056ffb4b9747abb41356ef2f3a36ceb7be","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.8.2.tgz","fileCount":263,"unpackedSize":3849572,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgiUWEIGiBkSQWY4Gy9TaNt+eQ3Zd9b1XCy1/E3z8sXAIhAJVnkr5X+87VBCwxoWKxWhRTI8FHl4SP+YVrUMjsvfzy"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.8.2_1688392073656_0.8933474498032976"},"_hasShrinkwrap":false},"1.9.0":{"name":"@flowforge/flowforge","version":"1.9.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^10.1.1","@fastify/passport":"^2.3.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/forge-ui-components":"^0.6.4","@flowforge/localfs":"^1.9.0","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@vitejs/plugin-vue":"^4.2.3","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^2.0.22","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^8.4.1","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.32.0","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0"},"engines":{"node":">=16.x"},"gitHead":"cf9a4296c8bea458a6199636be8de16fb8c3dd07","_id":"@flowforge/flowforge@1.9.0","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-D8gyp3S+DjEzURBSU5HF7+uYMm7ykyL2zUtH0ODL1XYX8pWTpqRiPzLXLgchTAmCzjfewU0b9Eb3aFvGmVs9lw==","shasum":"87b0da5edb9afc23e39ba9990ba59b58f157383d","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.9.0.tgz","fileCount":265,"unpackedSize":4003796,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxJC1+wF7beofWjgJdR2KAoCoQH30FULyxRC8kBoMgdwIgQ0mMp6NKrOF5oqkqTBkFfdwl16uIg5166G+fG5yOma8="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.9.0_1688631346394_0.27504300206467436"},"_hasShrinkwrap":false},"1.9.1":{"name":"@flowforge/flowforge","version":"1.9.1","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^10.1.1","@fastify/passport":"^2.3.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/forge-ui-components":"^0.7.0","@flowforge/localfs":"^1.9.0","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@vitejs/plugin-vue":"^4.2.3","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^2.0.22","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^8.4.1","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.32.0","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0"},"engines":{"node":">=16.x"},"gitHead":"8c1c3a4c55ddc72d3ee27b16dff547deab4a63ef","_id":"@flowforge/flowforge@1.9.1","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-RfPIX/33wY+55n+LkxBxnnpS/3voVeM3PFBGQvkG6gpKiYHsCZ26etEgGc25QmxHYZLU97M6HXlsUaUelw2jfg==","shasum":"94a76b127d8427144057971c97c3f757816aab53","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.9.1.tgz","fileCount":265,"unpackedSize":4007626,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAUJcS0RP6+Z2dANKn8ApMz45/16yNVOhZ2tWR6yjFwAIhAK0tWniZedO+QUslhUgsK/1lXc55kkQjbGuLwoCn7Cbe"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.9.1_1689239863005_0.8412944949563568"},"_hasShrinkwrap":false},"1.9.2":{"name":"@flowforge/flowforge","version":"1.9.2","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^10.1.1","@fastify/passport":"^2.3.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/forge-ui-components":"^0.7.0","@flowforge/localfs":"^1.9.2","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@vitejs/plugin-vue":"^4.2.3","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^2.0.22","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^8.4.1","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.32.0","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"c16554e6d3881c25008e890f6d8896cb0d64c3cf","_id":"@flowforge/flowforge@1.9.2","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Z8NEV91fTpGneq41R3C3hSYnnxnZEd3jvF3Iek1wp2jxgL4whYQsvfeQ0izdqdq+AOOjadni/woRIUVCgjITbA==","shasum":"a133b279cbcc550a389753e46d010871b06289fe","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.9.2.tgz","fileCount":265,"unpackedSize":4014566,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBCPGHmEtA21MtP+jBS/kH9Q7SFZN6UHV4OPQzTBEwllAiEAk51Lf6gVLiVSp6sr+UxdBqWTaEPOkMKq71yUZXTyxuE="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.9.2_1689860873285_0.49687920787562634"},"_hasShrinkwrap":false},"1.9.3":{"name":"@flowforge/flowforge","version":"1.9.3","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^10.1.1","@fastify/passport":"^2.3.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/forge-ui-components":"^0.7.0","@flowforge/localfs":"^1.9.2","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@vitejs/plugin-vue":"^4.2.3","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^2.0.22","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^8.4.1","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.32.0","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"acc56077bc25eae06c0dc6ad028f7953b2f88e2e","_id":"@flowforge/flowforge@1.9.3","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-bDjNMJoaHgcIp+wTiYE86SwF/9WkIDsD/WWT2QdYD1BCqUnIbikS6R7I6hMIpBSMUL3sDT5pS79e90p1QBuA/Q==","shasum":"dca583685a4940daa6b6f39e24f255e3e9bc2237","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.9.3.tgz","fileCount":265,"unpackedSize":4014713,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZNNGHOFJ3zxujxJM9kTsqDmkIP0+lrof9xJJsmaQHEQIgGMAYhyRsjdniC5AJjW6FJPP/vrjFtHB2+Z/yFsR5jE4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.9.3_1689869216216_0.6189929666611431"},"_hasShrinkwrap":false},"1.9.4":{"name":"@flowforge/flowforge","version":"1.9.4","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 5000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 5000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage","cover:system":"nyc --silent --no-clean npm run test:system","cover:report":"nyc report --reporter=text --reporter html --report-dir './coverage/forge'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^10.1.1","@fastify/passport":"^2.3.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/forge-ui-components":"^0.7.0","@flowforge/localfs":"^1.9.2","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@vitejs/plugin-vue":"^4.2.3","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^2.0.22","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^8.4.1","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.32.0","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"1557362e09b8daaf8fb536714bf1a5e327408063","_id":"@flowforge/flowforge@1.9.4","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-JMYTm1BeN+4OyhyPzD/+IPPTPXVnmslPbnlPGV8nnznkdjE7vKIdce6gHzQ2Jr4FYUX66JFGeLobYEv4AQryHQ==","shasum":"6de7385c257fbbd9d179b44c222844f115cb99eb","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.9.4.tgz","fileCount":265,"unpackedSize":4014977,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICewrw0K4Y1dJOucAw0535eqUA8edq8wchxJ5A3thVB9AiAmzSHmdJGjn/V0mqFvZqKG4N32OiKuqVTHw1BcoyOsbw=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.9.4_1690461863605_0.28008314864427675"},"_hasShrinkwrap":false},"1.10.0":{"name":"@flowforge/flowforge","version":"1.10.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/forge-ui-components":"^0.7.0","@flowforge/localfs":"^1.10.0","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@fastify/routes":"^5.1.0","@vitejs/plugin-vue":"^4.2.3","@vitest/coverage-istanbul":"^0.33.0","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^2.0.22","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^9.0.0","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.33.0","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"50533f94b46028c4f5242a7644bbbd3042c1c163","_id":"@flowforge/flowforge@1.10.0","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-+71oD6RnAb/0u/ZRFUd0UYL2EjAEU4xJv+rvzV/VeLEA4JC/XzapbmmFiDpku3dUI3y4j3ML3C+8DaUzArKLIA==","shasum":"fc5c78a15ac910df94c913bb00d81b2c16fc0353","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.10.0.tgz","fileCount":269,"unpackedSize":4127607,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCedZ5eJqX4K3GYeVGugR59iVOUfM4YKqHHobG2sAmRagIhAPAEdi0+aGiRX4TBhFUZ4MVAtq590brOPU7o6dHZ6etE"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.10.0_1691053283925_0.27460482472674963"},"_hasShrinkwrap":false},"1.10.1":{"name":"@flowforge/flowforge","version":"1.10.1","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/forge-ui-components":"^0.7.0","@flowforge/localfs":"^1.10.0","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@fastify/routes":"^5.1.0","@vitejs/plugin-vue":"^4.2.3","@vitest/coverage-istanbul":"^0.33.0","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^2.0.22","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^9.0.0","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.33.0","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"297cbfc72e9c16aec9c02f798c7b4fa60769be81","_id":"@flowforge/flowforge@1.10.1","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-yq+KLO4z9P0+vqtPmzH8rtSmX4ep81Xri31kweCKGqWogxo9nSqLtqu+fEF/5w+EHtlOfmnnZwRYq16K/hKepw==","shasum":"5e60385dacd0b9b0b71e59e51b94d59a7c42f812","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.10.1.tgz","fileCount":269,"unpackedSize":4127260,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAbkqbmp8EW7r6gStKDOt6uWp5CDiuLoVS4uPvRSl53bAiEA0vi0ykHCIINK4r2iLhGufGm/pIIfeTn+yoNqMdvw4UU="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.10.1_1691660698060_0.7496638297007965"},"_hasShrinkwrap":false},"1.10.2":{"name":"@flowforge/flowforge","version":"1.10.2","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/forge-ui-components":"^0.7.0","@flowforge/localfs":"^1.10.0","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@fastify/routes":"^5.1.0","@vitejs/plugin-vue":"^4.2.3","@vitest/coverage-istanbul":"^0.33.0","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^2.0.22","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^9.0.0","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.33.0","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"c516009cc821c43b40f027f7e0b90d848f159c38","_id":"@flowforge/flowforge@1.10.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-DDuOyiRZPNhpBIGD9n5fmBvR3MZqiDTH3qeAXYC7NspM9UDiH9+1b73YedloCyBx4a2h3obrjv+yb8QmixyVig==","shasum":"3e58e12a99ba1481c678e285ce9ca9ac666348b2","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.10.2.tgz","fileCount":270,"unpackedSize":4130746,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE+pyTxmDPay0H1DQpeuOcxGIaNsKiYjB6dWJLIw2iYfAiAdiiaKlQO1TyUxRA02WCfVXhc99WfcN7OLiFsQGVa06g=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.10.2_1692284370998_0.6470121510893139"},"_hasShrinkwrap":false},"1.10.3":{"name":"@flowforge/flowforge","version":"1.10.3","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/forge-ui-components":"^0.7.0","@flowforge/localfs":"^1.10.0","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@fastify/routes":"^5.1.0","@vitejs/plugin-vue":"^4.2.3","@vitest/coverage-istanbul":"^0.33.0","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^2.0.22","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^9.0.0","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.33.0","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"827b58518cc22cfe9108c71867d5efc1995599dc","_id":"@flowforge/flowforge@1.10.3","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-zL7HBR2PIYyBlikZ1MLaaUrqkySMQI80xIE9LdM/wsanP1eF12zOCHN3Y3mLukGH+vt5P2vWbt+JzbImsToobg==","shasum":"35c272f0a93d0ecdfcfe0ba0be9c7a4ce9412104","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.10.3.tgz","fileCount":271,"unpackedSize":4151857,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF7W4avsTapERa7tzptkD5jRH9PA9dxc9EJ4TZAceYFXAiEArmnnfXM6GMwyrettH3mg1eYSjzbgkXd/1O2ZmDNWEWY="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.10.3_1692869118974_0.03278965568950176"},"_hasShrinkwrap":false},"1.10.4":{"name":"@flowforge/flowforge","version":"1.10.4","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.10.0","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@fastify/routes":"^5.1.0","@vitejs/plugin-vue":"^4.2.3","@vitest/coverage-istanbul":"^0.33.0","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^2.0.22","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^9.0.0","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.1","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"50c51d1e768f3b971f2cc4d3110cd5d162bee495","_id":"@flowforge/flowforge@1.10.4","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-pnTJLQM3IfSNeCCgPdYUdjWQYF3moAlwEV3RNat/6iALql//Of7Fib0jW2T9HHFrAcQGd0cNt6TlOWAQrVitWA==","shasum":"3a94e5bd3f79b1e8905517cb5f3094bdefa16635","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.10.4.tgz","fileCount":269,"unpackedSize":4015993,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDKS9lxQUf4Gp82h5CJWgtYKDCNaJbe419jsL67/ml4bAiBi1AZi6Ct9kv+OUYshDYqiq2LOWE7hwQp4r8x8dvbZgw=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.10.4_1692880399300_0.8399876676036708"},"_hasShrinkwrap":false},"1.11.0":{"name":"@flowforge/flowforge","version":"1.11.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.11.0","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@fastify/routes":"^5.1.0","@vitejs/plugin-vue":"^4.2.3","@vitest/coverage-istanbul":"^0.33.0","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^9.0.0","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.1","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"646a195940182fc51a4be2ba9806c00af2bc1383","_id":"@flowforge/flowforge@1.11.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-WZEFweXuetT6lnqSgpr69xamt2Bc1Mmj2Z35oB+cWZp7lWf6etZ+4o2mqG0/b7o+Kcv5yjZqZyT6JveQtabxgA==","shasum":"e4dfb076a27e9326405b919f70fa87668fdd1d74","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.0.tgz","fileCount":271,"unpackedSize":4079430,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHvmCFmses8cR/rc0ID8ZTEPOo3Exwn7dU+MJaIAfbgjAiAqfpcJXs4d8IZqcr4zsdwkZBFYybvC38YiArZytJArTw=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.0_1693481679010_0.939739536002361"},"_hasShrinkwrap":false},"1.11.1":{"name":"@flowforge/flowforge","version":"1.11.1","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.11.0","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@fastify/routes":"^5.1.0","@vitejs/plugin-vue":"^4.2.3","@vitest/coverage-istanbul":"^0.33.0","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^9.0.0","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.1","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"c2402d7d782297af9bd607c5f2a4f19f1cabcf89","_id":"@flowforge/flowforge@1.11.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-/ExskBefo5l+ACsqL+FssNGWp8SrULMkAe7KQb72hCwRbFclygFiyENVa+0rUpvDLIPT6vB7FQNyZxglPHOvuA==","shasum":"14059aaea79bc532561f80aeec1e9edcd630eca1","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1.tgz","fileCount":271,"unpackedSize":4080286,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGSzTKuHkCisCpwiKa0tunMr5PRPt1Ki74WNzQKNXm2mAiEA4nuG5AKveFau6AXrUsDX20fqkgTjgmrpQlCiR5r4xLE="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1_1693573620432_0.0768694922923705"},"_hasShrinkwrap":false},"1.11.2":{"name":"@flowforge/flowforge","version":"1.11.2","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.11.0","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@fastify/routes":"^5.1.0","@vitejs/plugin-vue":"^4.2.3","@vitest/coverage-istanbul":"^0.33.0","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^9.0.0","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.1","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"ac18d2c3eca9f087a71c7b9a5e0135a4cee31509","_id":"@flowforge/flowforge@1.11.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-vmbVKDdnfslTqWvvENsODNkxE19SlsMwYlWk+JToZT6gkS2aRO6yg9pzZ0UP2qMQm9cAS+ib2HlKlQeG409+4g==","shasum":"86b48474e8dc7ff99a9701f4cf3d853c97efdc61","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.2.tgz","fileCount":271,"unpackedSize":4080496,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpTopDjOg8rMuHIdNZKCAGdHKCm9nN2c7AV2A8kmDrRQIhAICEOjNx/G88LcWmJbkYfvJN6PkysNqM+crsg0w1aKFC"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.2_1694180414463_0.2235403035054977"},"_hasShrinkwrap":false},"1.11.3":{"name":"@flowforge/flowforge","version":"1.11.3","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.11.1","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@fastify/routes":"^5.1.0","@vitejs/plugin-vue":"^4.2.3","@vitest/coverage-istanbul":"^0.33.0","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^9.0.0","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.1","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"5cfb79fce47f9d00254bbd616ee231f6319ac178","_id":"@flowforge/flowforge@1.11.3","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-gv50iScHOL3G68W61f70En6XxZ0ngMVyKvCqXzGrJDhhRffoghLMpyqst1CwGLlQ05+QVv1diK2C0vocCXp2xA==","shasum":"647000aa77da4b9be3968f550c0d8f8f5855c6d8","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.3.tgz","fileCount":271,"unpackedSize":4089853,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBrxgD+3z6BgkcN5o7nkPtiWwisfRFdW0cG2wzLnijBeAiEAgoSa84s4xoD+sQxV1Vb2nofYxtSr3GND4hvgt4p+iJY="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.3_1694774874738_0.9799317433449424"},"_hasShrinkwrap":false},"1.11.1-b2f11a3-202309181249.0":{"name":"@flowforge/flowforge","version":"1.11.1-b2f11a3-202309181249.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.2.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b2f11a3bc62380eeae4fb9be8332306ad531165d","_id":"@flowforge/flowforge@1.11.1-b2f11a3-202309181249.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Pzniyy1Mm33VpKV8OOcOCGoHS6Oz6Eh/qiQJrjXIcWT+E43xB3iZKZv7ia92lHc4+/2ALjX0GapBAZmn0kduaQ==","shasum":"1283179254d8125a5275efeb054912fa35a4a3c4","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-b2f11a3-202309181249.0.tgz","fileCount":271,"unpackedSize":4092890,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGb3YeBHEwbGiUhdARm/EoB4vQlIKoXdXWqR0GzZRYeKAiEAi31Fssnm+ffk+sk3TO8UBHs62Qu3aqFs8Sn9giQitY8="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-b2f11a3-202309181249.0_1695041417562_0.5239511330999094"},"_hasShrinkwrap":false},"1.11.1-b2f11a3-202309181250.0":{"name":"@flowforge/flowforge","version":"1.11.1-b2f11a3-202309181250.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.2.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b2f11a3bc62380eeae4fb9be8332306ad531165d","_id":"@flowforge/flowforge@1.11.1-b2f11a3-202309181250.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-jhTV/CgBrruApsNaZ7u/s+PeOZG4SPRfBwbCvKhjDI6od28u2KbfTppoXKUeEF1K4SIdAN8MjtOYzFUF1efLeA==","shasum":"399e0053f756033fbd08bac83bfea8e128ef01f2","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-b2f11a3-202309181250.0.tgz","fileCount":271,"unpackedSize":4092890,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFXI9xhxD0IFdnO/5ZfjJbe17jYBLJ9cKowL8AkiALNuAiEA97SyOCVf9joTXvEu3Xe+9ER9/m3Taue+3Ygc/y324WY="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-b2f11a3-202309181250.0_1695041495880_0.24425027418254985"},"_hasShrinkwrap":false},"1.11.1-c560a12-202309181344.0":{"name":"@flowforge/flowforge","version":"1.11.1-c560a12-202309181344.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.2.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c560a12e810bfd7a326ed24ce96ad67eb29ac6af","_id":"@flowforge/flowforge@1.11.1-c560a12-202309181344.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-gclK6VhnCBxAZaImSphDvFOLy9I7feFnY6v/HjSsQwY5F5kFtFYgyOrJ8wws1P5d9Lvj1N/sSFnhNZ5CvJ08TA==","shasum":"91b0ff44fbc17f93acfd5606e8e71c6f452f32ed","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-c560a12-202309181344.0.tgz","fileCount":271,"unpackedSize":4092890,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5VuVbNMJajHdyrC7c4O+dsbhjNk5D9mJha/PewUG9ugIhAN6SU+hdR0sXvtusp7+pvlKbtVusZJeXtnXA3EHmEceC"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-c560a12-202309181344.0_1695044777795_0.49847566578638713"},"_hasShrinkwrap":false},"1.11.1-422d847-202309190844.0":{"name":"@flowforge/flowforge","version":"1.11.1-422d847-202309190844.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"422d84756711e39e55f9424cd0a950d770167f3b","_id":"@flowforge/flowforge@1.11.1-422d847-202309190844.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-NctR53N36kcXPxatiB98qagHlifcCyStE6lxG0U3ygogJZuZlUx9GyumeZKyAgPRRvJesBRkLZbn+gUgQYZMIA==","shasum":"2a5ec2977c6eec5f4216ae86673ffcb79cfe637e","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-422d847-202309190844.0.tgz","fileCount":271,"unpackedSize":4093088,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYmDe279HEVJQQBbXzDPHg12yOOkP3NxpSPfD9xscKSgIgLSdd4RpPEnelKDwpD44HBRMX+1n7riWBQWOTQ93G09U="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-422d847-202309190844.0_1695113112476_0.7936115542804527"},"_hasShrinkwrap":false},"1.11.1-422d847-202309190845.0":{"name":"@flowforge/flowforge","version":"1.11.1-422d847-202309190845.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"422d84756711e39e55f9424cd0a950d770167f3b","_id":"@flowforge/flowforge@1.11.1-422d847-202309190845.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-h8l0hll9SHzDFl7oO0QElfgJ0w2gDEVTkj8xwtuzmP9+XG0OxdZsBg/LAS/EQitdJDKLwWGoM9sOYTN93G8f7A==","shasum":"bb8d9ea05933c502ad9e0d5a1e9d602650eda587","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-422d847-202309190845.0.tgz","fileCount":271,"unpackedSize":4093088,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4/B3lgOtFIGU2RiFw+10XscEdEmlvBsNbAfaHz0En2gIgfZcM8h/Bs6hjduSgjV/uQboQE9sS2Mx3y+/CMIB+904="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-422d847-202309190845.0_1695113173006_0.5112229400396318"},"_hasShrinkwrap":false},"1.11.1-422d847-202309190847.0":{"name":"@flowforge/flowforge","version":"1.11.1-422d847-202309190847.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"422d84756711e39e55f9424cd0a950d770167f3b","_id":"@flowforge/flowforge@1.11.1-422d847-202309190847.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-K75yg3V2kYLNGLajCuOXn1m+6Jwlz7OuJnZ3FH6EAAA+U1/ktxwdPca/ZDmYU6rGWkNX88I9ROhy6zi8+DKXpA==","shasum":"6a1c13d7cd158e9b1a5d11dfbf0ce5c38d3ac26f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-422d847-202309190847.0.tgz","fileCount":271,"unpackedSize":4093088,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSmAyV4eCAywpsxaDOArfyuMksjywa6rAauNcaUYu8hQIhAIq6Ykk68PScU3GYk2apnp3jcG2m5mncGVh7l76CPXF5"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-422d847-202309190847.0_1695113305347_0.8617494514228643"},"_hasShrinkwrap":false},"1.11.1-422d847-202309190848.0":{"name":"@flowforge/flowforge","version":"1.11.1-422d847-202309190848.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"422d84756711e39e55f9424cd0a950d770167f3b","_id":"@flowforge/flowforge@1.11.1-422d847-202309190848.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-+kN/OYq6vcHk/RUCpUUNWnWAEFkIWcf6hUXcda0k3n8k9KiApc08VBDmUqux/OjU1yF3YJgWzmef1l9YTUqCCA==","shasum":"9912fd5851e4944d0f7f346998c24b17ebf38fd0","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-422d847-202309190848.0.tgz","fileCount":271,"unpackedSize":4093088,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGbxTxVXgAtrXA2SqaiWAtelmecVZ0iEyOPaoP1ZQx66AiEA4gzplkLf4YYPEQkmZ4Sj5Oo978+OOehE/497jdxqQz0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-422d847-202309190848.0_1695113368545_0.39131808159075443"},"_hasShrinkwrap":false},"1.11.1-422d847-202309190849.0":{"name":"@flowforge/flowforge","version":"1.11.1-422d847-202309190849.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"422d84756711e39e55f9424cd0a950d770167f3b","_id":"@flowforge/flowforge@1.11.1-422d847-202309190849.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-QeijxLnMNiRgZEoPbRVTRD4LhE+6JnuNx7Zn+Bp4z25LgGuY6KgVO8V77Rbnd10qnf2rCEJFZ2E0SXbiMQwErg==","shasum":"9f462cfa3f062d70fb9b65becb88eaf094a78eb8","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-422d847-202309190849.0.tgz","fileCount":271,"unpackedSize":4093088,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDr+pzLhNz3OGg8a3Z4FQifrfQxAGvZk2gRSvNLsWXhTwIhAPBDvhB86KnAiKU5FlUvIbEtIxqttUs0zD016LeNnHpO"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-422d847-202309190849.0_1695113450454_0.30316099085015824"},"_hasShrinkwrap":false},"1.11.1-b481f64-202309190900.0":{"name":"@flowforge/flowforge","version":"1.11.1-b481f64-202309190900.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b481f641c4317002ee13f4acaad4cc193feb15de","_id":"@flowforge/flowforge@1.11.1-b481f64-202309190900.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-revB/xM01gH8GagCKC3pxS2pSRmvWgsBCG93gI/mQAx/kEeY65zC5vTYOhksOuJB8IyPtgcMG16aIt6vDPducw==","shasum":"574ebd23ad3fc4d7026c9843525b186ab120f63d","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-b481f64-202309190900.0.tgz","fileCount":271,"unpackedSize":4092593,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDyvm6C5NHoJNbdi0nR/VoC8gF7XP+SbWJkd61/45dfmAiEAo0cZJDioq7OaviK/SaBY2wulO05uuY++uTViao4KhUw="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-b481f64-202309190900.0_1695114133747_0.7286940918024858"},"_hasShrinkwrap":false},"1.11.1-b481f64-202309190907.0":{"name":"@flowforge/flowforge","version":"1.11.1-b481f64-202309190907.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b481f641c4317002ee13f4acaad4cc193feb15de","_id":"@flowforge/flowforge@1.11.1-b481f64-202309190907.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-dVTa7V7A9HG4Fv01bx7FRIZvtNx0bd5bWvnZQf4GckxMfKaVtgiHFa1BebGS8nB40d4jb7LUw3BJluc0Y5G9PQ==","shasum":"5d42813d45b94d872e260404f025c7e26e0e37af","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-b481f64-202309190907.0.tgz","fileCount":271,"unpackedSize":4092593,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIADno7Tuuu/6eASSUCnJpeqPoG3w4umxHKmLFZhiR2mBAiEA5gKFYVQW4nk1k2VQ7bNczs/0jJWD2b3VDGM+Tuvy+DY="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-b481f64-202309190907.0_1695114491917_0.09814621983341842"},"_hasShrinkwrap":false},"1.11.1-add0550-202309191434.0":{"name":"@flowforge/flowforge","version":"1.11.1-add0550-202309191434.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"add0550cf4ca26a2b9de270b749751067e086e01","_id":"@flowforge/flowforge@1.11.1-add0550-202309191434.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-OgrDO5+Hu3ZP7vPUDXkAABFtU0qBQrgh9xGlqhmgA+jDYzUtP0xZeuUQt4FdYwij+/Q4rCIAOE75L+yiNJ3gNw==","shasum":"75a90fbd68c1eeaf4bc4fb1052a7311d3a951bc5","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-add0550-202309191434.0.tgz","fileCount":271,"unpackedSize":4088979,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBDZEfUPRDXVk+/qTnOdwomg2eRnAO0qklJMXA7kY4xvAiEA9xsNLQteztdH2h9NYmp0TjEY0n9dmS0OH5yL/46CCCM="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-add0550-202309191434.0_1695134200744_0.5157469404352566"},"_hasShrinkwrap":false},"1.11.1-add0550-202309191437.0":{"name":"@flowforge/flowforge","version":"1.11.1-add0550-202309191437.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"add0550cf4ca26a2b9de270b749751067e086e01","_id":"@flowforge/flowforge@1.11.1-add0550-202309191437.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-qZBPuT3isZzpRAkV6IP/0uqLmoRTxy0Yl6lJP5ZkiUeG00RChmDMhGrCMRDjrICPXTHrQsRIOhQXIxFGbDcesg==","shasum":"81f5d64f1d30f3c3895a4e9b15d2134569285ea0","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-add0550-202309191437.0.tgz","fileCount":271,"unpackedSize":4088979,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIClFc2RRg9MFmkadPRh2JOrgK39KDVHaEJ1nFrU65rujAiEA3AAMLmGXT8vsNPsG7RzQsdcsrDxYCEyMell7zcGOuzw="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-add0550-202309191437.0_1695134322593_0.782497187020049"},"_hasShrinkwrap":false},"1.11.1-db8c20e-202309201228.0":{"name":"@flowforge/flowforge","version":"1.11.1-db8c20e-202309201228.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"db8c20e05f2e9516a52e9720ff23ac2b1c19ba2b","_id":"@flowforge/flowforge@1.11.1-db8c20e-202309201228.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-vcjAhAth3IW16axeQvpDRYP8rzoTdETt5TytRQd4aoCvpO5wgFs9lxYPrZrVKVnnSghy5qdDOEuK0tOIil+XWw==","shasum":"e41dc5725a75b6579ec76e367daacecd07f3e5f0","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-db8c20e-202309201228.0.tgz","fileCount":271,"unpackedSize":4087442,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbTR52/4tDPvGHNH/6xfcP6cpSYj8KDipeOvmazmofcwIgGIRB2XAkJA7Y3/zBRB8oLEM/FEgvjqW9Oy56VRw5bR8="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-db8c20e-202309201228.0_1695213000624_0.5686377937438178"},"_hasShrinkwrap":false},"1.11.1-db8c20e-202309201229.0":{"name":"@flowforge/flowforge","version":"1.11.1-db8c20e-202309201229.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"db8c20e05f2e9516a52e9720ff23ac2b1c19ba2b","_id":"@flowforge/flowforge@1.11.1-db8c20e-202309201229.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-yCa0HFdUaDUV9Dqp/C19TLCE93PvNtwUaSB0nxajF5NgS9YPHLDCZ08EUr3/pxXsFA5FTLSF1KQIG3N0vmQZhg==","shasum":"63e1751080c1509b5f77cfb22be4484d7d124b90","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-db8c20e-202309201229.0.tgz","fileCount":271,"unpackedSize":4087442,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICAxtcLuCHYt4r0cB0y8+0Yy6+/WhZ/u5wJcohg+eVvaAiAnTVkwjWmDWYssAjsva9kLNWhNYBuc59OqYEU4lyW0eg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-db8c20e-202309201229.0_1695213068697_0.4125547020263929"},"_hasShrinkwrap":false},"1.11.1-94a4243-202309201409.0":{"name":"@flowforge/flowforge","version":"1.11.1-94a4243-202309201409.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"94a424361e216c8f041e751111a9e37693fdb1e9","_id":"@flowforge/flowforge@1.11.1-94a4243-202309201409.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-0HgqtktPJGWYwz6ufYD9adH6X+dMzatxVzssjxE+qqeGYDnT7lmMyHn1KUFboeJbhVm0G3AclRuxGfXbgWR4Ig==","shasum":"5650d9163f03e2c4c0911b7efbeaa5b982e305f4","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-94a4243-202309201409.0.tgz","fileCount":272,"unpackedSize":4124076,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGcepUeCxgsU4IJ+6d6+gZdzcBhmq2XU5tGOkk/C5H+eAiEAp0VGvumqK9u/llU8dzmupss+DA/LrlrUs2ZbXOm3lh0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-94a4243-202309201409.0_1695219054549_0.6159787693559573"},"_hasShrinkwrap":false},"1.11.1-94a4243-202309201412.0":{"name":"@flowforge/flowforge","version":"1.11.1-94a4243-202309201412.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"94a424361e216c8f041e751111a9e37693fdb1e9","_id":"@flowforge/flowforge@1.11.1-94a4243-202309201412.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-tyMi4w86BmgVkY685GCGRxALXmOQ26Fmd+B4HB7pWE6SEfiDwL16MJInTlk31QbuDhgCpADW3Wv/ltBFk503cw==","shasum":"89b82c885835597b4e357b315d16a76ed64bc3f5","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-94a4243-202309201412.0.tgz","fileCount":272,"unpackedSize":4124076,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFAdG928n1yLX9Q8htpWVaPApDkSniJgnidh1debLt0NAiEAptxwckMVWGytvcK3aWc7gJOTdWMGayLuZaLMeCUa+7I="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-94a4243-202309201412.0_1695219258549_0.003784082831899571"},"_hasShrinkwrap":false},"1.11.1-94a4243-202309201413.0":{"name":"@flowforge/flowforge","version":"1.11.1-94a4243-202309201413.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"94a424361e216c8f041e751111a9e37693fdb1e9","_id":"@flowforge/flowforge@1.11.1-94a4243-202309201413.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-XpQeLDHQcZvkpgbWKuj3qX+yCewnSpztK217z2qHTx5QNeWPax/LE/xxlFiOIvMm8wV7iJOPjoHlcDze+k6D4A==","shasum":"7c2fd1f4d31cfb0c0e15b4a1d79d200c07e7e5a9","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-94a4243-202309201413.0.tgz","fileCount":272,"unpackedSize":4124076,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDp61XDuA7m53ULjiSnL6r2JBlaqLWuJRuK9hSspGmvIAiEA45htGxhL+chnJZcYqqbjBxVwb1HcSU0HqLsGKfKF3xc="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-94a4243-202309201413.0_1695219264673_0.8947556125502407"},"_hasShrinkwrap":false},"1.11.1-94a4243-202309201416.0":{"name":"@flowforge/flowforge","version":"1.11.1-94a4243-202309201416.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"94a424361e216c8f041e751111a9e37693fdb1e9","_id":"@flowforge/flowforge@1.11.1-94a4243-202309201416.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-7cNclbY19qxxwA2F8Tt3Lj6crrsLJjdr2rFxwC4DNfM4X2u02fKyfq7J8C5tes5/2rB3rzNAHwguS/wold7Cnw==","shasum":"68e72f117a5966eebfc92be868f33c526fd74ced","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-94a4243-202309201416.0.tgz","fileCount":272,"unpackedSize":4124076,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBB7Y8d23R9BRcDp1shVIFMP1DZPVXmfbmlur67aifGAIgdW9sFUR1W90oR+NoAyVkJVSNGvcXqS5L2nreji6t+pk="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-94a4243-202309201416.0_1695219455385_0.9937768481817231"},"_hasShrinkwrap":false},"1.11.1-c15b3ad-202309201525.0":{"name":"@flowforge/flowforge","version":"1.11.1-c15b3ad-202309201525.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c15b3ade82fdceef5fcca5e70bea566158532733","_id":"@flowforge/flowforge@1.11.1-c15b3ad-202309201525.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-SjLDT+yJqxf848Sp4wB6Nozsa7rR59pKQudFusn7xUCwazWAlEi7MpQydAttZiis5VgzzZhbE69smoIGjEzzVw==","shasum":"0b98141efa87d465a56bcec4eca797c3e834079d","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-c15b3ad-202309201525.0.tgz","fileCount":272,"unpackedSize":4124966,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC11GvLMRafSvbm+MsRgxK13PEASLaueTUhnNi9fIfXjQIgfjf7wIzBrgTpX9GeF1a03b7z9gLmlv64zhj19isurBI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-c15b3ad-202309201525.0_1695223600208_0.1647676453117104"},"_hasShrinkwrap":false},"1.11.1-c15b3ad-202309201528.0":{"name":"@flowforge/flowforge","version":"1.11.1-c15b3ad-202309201528.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c15b3ade82fdceef5fcca5e70bea566158532733","_id":"@flowforge/flowforge@1.11.1-c15b3ad-202309201528.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-M3BwsBAFaEBy4bx3xNVpuERy4K59fv1TbH3kcROEgt4tXRciihTwEuRI/pmdQ1OQiF+pqcFwdFYi1sWU7aIz/g==","shasum":"d22afb378a027c221821e5b22abe1fb36820e8ee","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-c15b3ad-202309201528.0.tgz","fileCount":272,"unpackedSize":4124966,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3UrdI98EdQpygwPwffG+2nQJsDso6U/2aW4H8NU8+lAIgKIi1gB1HlcWj+At5AWy9bANUfXlcvAfvKLa35Pt6yz0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-c15b3ad-202309201528.0_1695223783483_0.853278583237234"},"_hasShrinkwrap":false},"1.11.4":{"name":"@flowforge/flowforge","version":"1.11.4","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^8.3.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.11.1","@headlessui/vue":"1.7.14","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pino-pretty":"^10.0.0","semver":"~7.5.1","sequelize":"^6.32.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.1","@babel/preset-env":"^7.22.4","@fastify/routes":"^5.1.0","@vitejs/plugin-vue":"^4.2.3","@vitest/coverage-istanbul":"^0.33.0","@vue/test-utils":"^2.3.2","autoprefixer":"^10.4.14","babel-loader":"^9.1.2","c8":"^8.0.0","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^12.13.0","dotenv-webpack":"^8.0.1","eslint":"^8.41.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"^2.13.3","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^16.0.0","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.14.1","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.1","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","pg":"^8.11.0","postcss":"^8.4.24","postcss-loader":"^7.3.2","postcss-preset-env":"^9.0.0","promptly":"^3.2.0","sass-loader":"^13.3.1","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^15.1.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.1","vue-loader":"^17.1.2","vue-template-compiler":"^2.7.14","webpack":"^5.84.1","webpack-cli":"^5.1.1","webpack-dev-server":"^4.15.0","ws":"^8.13.0"},"engines":{"node":">=16.x"},"gitHead":"89ae35ee1e2ff4d9e4cac0bf736230bebc886ba7","_id":"@flowforge/flowforge@1.11.4","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-CiHdFBb2FvwKJlI0uqzMJBAyvGUWcZwIx78P0s/pyYU41NA5fCif332uxUAx77qjeFTsWxj7hiixgYHlXEtP2w==","shasum":"362b3adbe0dacb53c7535a3561a57c9260a72247","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.4.tgz","fileCount":271,"unpackedSize":4091869,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCU9+kUb4Dnzt3rUtqQqhU0f4TftW6AsjF6Gwk2ldWw/gIhAPf7USk6L+I8BD8vuAhyExZ0mNgSJtRrw6ydsn41mDUk"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.4_1695292883322_0.9031602358762005"},"_hasShrinkwrap":false},"1.11.1-2d55cbe-202309220902.0":{"name":"@flowforge/flowforge","version":"1.11.1-2d55cbe-202309220902.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.0.4","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.0.0","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.6.0","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"2d55cbe02965d0dbc79376e897b297bec362ee39","_id":"@flowforge/flowforge@1.11.1-2d55cbe-202309220902.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-TCRUE8A8kRhzGg4OWUPgvVe95HSwYz3PC5NToknXukjEP8PQbGAKwyivocdCeNMVsd/0Pi5juE0QNhjY7f2eVQ==","shasum":"518d8fdb5492f341873b3cf277493ada1f14745c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-2d55cbe-202309220902.0.tgz","fileCount":272,"unpackedSize":4124966,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOD+Tlsgrfc9GxxNKtZfPoKcGVIsGddCGW5Qw72UnExAIhAPkAjnKEUVKbAhO6/W3NivyA6RMZNUJ5aJ+UsnCvpUCG"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-2d55cbe-202309220902.0_1695373448177_0.5767581541168794"},"_hasShrinkwrap":false},"1.11.1-a67d6ef-202309221312.0":{"name":"@flowforge/flowforge","version":"1.11.1-a67d6ef-202309221312.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a67d6efd65f218e72197ae6fe2ea830686e9767a","_id":"@flowforge/flowforge@1.11.1-a67d6ef-202309221312.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-yVlmb0NyT15XYZZlcvZQ8Tb5SZl1OKLuEZgY4NvnEYM/MzmS5DjukocsDq5Qpwv3m6wbPUxpYoZxZ72exsJJSA==","shasum":"61911a5d03545191d883874cb98195cd1cc9a2c8","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-a67d6ef-202309221312.0.tgz","fileCount":272,"unpackedSize":4124999,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5ireXWPWUq7zfZLgLtOypuIYJEIKqneifAF7HJ2gltgIhAND/DgN9Uulr+374RjgI3I7vHumNndDbqoQnGplybE0d"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-a67d6ef-202309221312.0_1695388439711_0.6594510267938842"},"_hasShrinkwrap":false},"1.11.1-a67d6ef-202309221315.0":{"name":"@flowforge/flowforge","version":"1.11.1-a67d6ef-202309221315.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a67d6efd65f218e72197ae6fe2ea830686e9767a","_id":"@flowforge/flowforge@1.11.1-a67d6ef-202309221315.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-00fOjV2/ljnTZ7HV2/VxG5EZfHmIOFgyM6mDXwZRr7wGA46Dbg/ZI/mSyt5c56fKYOQBANW0RJBHul9Ed2MOUA==","shasum":"cd61b98a50e8dddee0a00ab1ced2db5669aa83f9","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-a67d6ef-202309221315.0.tgz","fileCount":272,"unpackedSize":4124999,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOOwHgviUTEP5MPPILWLm/HeTOk9tmwhfk1VpTDI59ZgIhAOWBUSO0vHsqy4iMSQu9fn3edlEVK8EJTjyVQmahISs+"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-a67d6ef-202309221315.0_1695388603249_0.5538541724194901"},"_hasShrinkwrap":false},"1.11.1-a67d6ef-202309221349.0":{"name":"@flowforge/flowforge","version":"1.11.1-a67d6ef-202309221349.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a67d6efd65f218e72197ae6fe2ea830686e9767a","_id":"@flowforge/flowforge@1.11.1-a67d6ef-202309221349.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-4pStBxXg367WNRpYNBV3Kd5KtRuq9f1x+hgv8hXzJgMfD8+KbiUmGwminUjncvkeCC9JEdPxaL7moMcc2BW+RA==","shasum":"9192b0dce61bac3a5d368febf4c1cc8dc6d5813f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-a67d6ef-202309221349.0.tgz","fileCount":272,"unpackedSize":4124999,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDd1NOtdZU5Frzht09n0kGuir8gzLYpxiYZZkiLrullhQIhANC2YYwq+qMk5eZEKRx8wXkf9E0iyL1ToUQjRefFUdJb"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-a67d6ef-202309221349.0_1695390649898_0.25463278595293004"},"_hasShrinkwrap":false},"1.11.1-b7b0642-202309250854.0":{"name":"@flowforge/flowforge","version":"1.11.1-b7b0642-202309250854.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b7b064224ca864d2478e91b662bc3834753569f3","_id":"@flowforge/flowforge@1.11.1-b7b0642-202309250854.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-MHYWlUo+2qEksfFUaGqzl9WgKZcsyKURxIWrTBazBQbGv0oLmAscI7uRmqzvJs3Ij7kb1p6qoP9yTwk1Bd645w==","shasum":"c6476cfd595ae825b6ddcec3a0330a135f0208e5","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-b7b0642-202309250854.0.tgz","fileCount":272,"unpackedSize":4146269,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDEGmX5cYjeW7CCwnp5RtvM+GzXKuHqmMLOeZsFBF8/2AiB2nOIfbRTibQEzqqxw+HqYCjUNpH+lgkD/q2rKtyYJHA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-b7b0642-202309250854.0_1695632159760_0.8194778452608744"},"_hasShrinkwrap":false},"1.11.1-b7b0642-202309250903.0":{"name":"@flowforge/flowforge","version":"1.11.1-b7b0642-202309250903.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b7b064224ca864d2478e91b662bc3834753569f3","_id":"@flowforge/flowforge@1.11.1-b7b0642-202309250903.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-lbBnYptLtFoO/hpbpcR7677YObpXQKfwGnXH5KbH+FvpI/MWtDCHBQlwDdr+ILLZ116SULscScTEzEI2pcTGmQ==","shasum":"b53f647a6c2fa67d9d0e64ad70225813623c7f4f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-b7b0642-202309250903.0.tgz","fileCount":272,"unpackedSize":4146269,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDVk7QYf9gcbmQe7IMf9PmTIsc2+o5FdzSaOOR5ofsbgIhAMKtGwKnzKznG6f1F1bdH68uPmHjt61piy5KNQj6AMao"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-b7b0642-202309250903.0_1695632720559_0.8115400904430632"},"_hasShrinkwrap":false},"1.11.1-e3b3c56-202309251233.0":{"name":"@flowforge/flowforge","version":"1.11.1-e3b3c56-202309251233.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"e3b3c560fecfc0bb76e3d0d048fc430467468138","_id":"@flowforge/flowforge@1.11.1-e3b3c56-202309251233.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-dX329753WRT2hq8lXfkk9aiyVWt94N4yO/skNCRR6SRurelFpqmobA7yc0geJIh1biKWP+A69cyfBjvOL824ZA==","shasum":"89cb0ceffcd8d3f36714c6ec74f0a8734661907c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-e3b3c56-202309251233.0.tgz","fileCount":272,"unpackedSize":4146415,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIcKo/q+gmN36h8FpuJLALPJNhmj90NNAjAtKpQE3bHAIhAKW5G8G/q8ul7i/wmI6zRmUVoj0wpI6mappRYNq15cEk"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-e3b3c56-202309251233.0_1695645297240_0.8085421540423292"},"_hasShrinkwrap":false},"1.11.1-517c808-202309251418.0":{"name":"@flowforge/flowforge","version":"1.11.1-517c808-202309251418.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"517c80876e0a01da5851622952e6ec6fab8735a8","_id":"@flowforge/flowforge@1.11.1-517c808-202309251418.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-csZZ2tTc7FvGsezAAqoLLlpQWXyQgPQX/DsI7QdZbjk52b7rTvllDVFzqoVHFOzV+KIFduUluSTlRG9ET+SVEw==","shasum":"90d0b46aba0b1aa4df46908c08635a7fbb5aa297","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-517c808-202309251418.0.tgz","fileCount":272,"unpackedSize":4146467,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFO3pAG4EdZ1aDfD5Z++AGkW4hY8OsA+fpH+SxE33ylUAiANEaTsO3p0/uAljnmns8gioGIipL4as+w/R8rhEpqwbw=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-517c808-202309251418.0_1695651625695_0.44524936207229504"},"_hasShrinkwrap":false},"1.11.1-517c808-202309251423.0":{"name":"@flowforge/flowforge","version":"1.11.1-517c808-202309251423.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"517c80876e0a01da5851622952e6ec6fab8735a8","_id":"@flowforge/flowforge@1.11.1-517c808-202309251423.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-i2qbLPAI4VXjK3+Ds5FrtfwiGaMvJ3O4MAKorVvaWp+Y0ZhVyxVdG9hnrJ3qwvsx2Rmoms667sdvV3ifG09Nzw==","shasum":"a40670e1b903a36678e6124ccf8c36229e16696e","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-517c808-202309251423.0.tgz","fileCount":272,"unpackedSize":4146467,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD6EP9VybWs2m6ZsBzka8oybwOCAYIK1eY+vh/n90LcPgIgRRHNxVM7aDeZDagj2fkrIE5PQNo8K2xV2TCtR2j/rs4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-517c808-202309251423.0_1695651853702_0.039280755235003406"},"_hasShrinkwrap":false},"1.11.1-8c727f1-202309251733.0":{"name":"@flowforge/flowforge","version":"1.11.1-8c727f1-202309251733.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.13.3","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"8c727f1a3a7be269d087b0c00bcaca8b907876c1","_id":"@flowforge/flowforge@1.11.1-8c727f1-202309251733.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-mrFWvb4TP3C7Lpp4l0I4ewMbows5SrwXUTKQY19s3nkzd0qpoqqymB5lh6ktojOgRkYEu1hIppArU+lGe4ihmA==","shasum":"9589cbb43de65e26e0aea902dce930e8efd918d6","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-8c727f1-202309251733.0.tgz","fileCount":272,"unpackedSize":4146467,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDCP0FWVGLARCcsEW6AufXCkO+2y7OmEXXZoAwuIQNAAIhAOtAMA6uvJh5BipOLFFAPNyDDwSnSq22/74N7xGNSq3Y"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-8c727f1-202309251733.0_1695663264201_0.8225646567004627"},"_hasShrinkwrap":false},"1.11.1-b787b0f-202309260749.0":{"name":"@flowforge/flowforge","version":"1.11.1-b787b0f-202309260749.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b787b0f37aaadfee84725228aa3c4edb92c4eedb","_id":"@flowforge/flowforge@1.11.1-b787b0f-202309260749.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-gQDHRSqnzNpl5keg3RwHRTcmDBadGz+oPd6SL6YQV0706cTFKDWlO0Afe0PoHHqDne+n057+H88UMmEjjNSMPg==","shasum":"6d7f16e541683a82138f326c2b5d3be39543824c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-b787b0f-202309260749.0.tgz","fileCount":272,"unpackedSize":4146467,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMd08IGszWUf7PxY+qRCwdF4xNDTjlM8dWUnhPqyLPFwIhAJ36tI8CtDvdCtc/RCnaNEuF709Cf2cxgsTsr1O/5aSp"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-b787b0f-202309260749.0_1695714628067_0.4474460158660418"},"_hasShrinkwrap":false},"1.11.1-bfb15c6-202309260940.0":{"name":"@flowforge/flowforge","version":"1.11.1-bfb15c6-202309260940.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"bfb15c6feb7ea2e36af33b61aa8e77726aefc1ca","_id":"@flowforge/flowforge@1.11.1-bfb15c6-202309260940.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-1vJgalcCpdmaPtkdqx8qZGj6MQ8uZIhCV/Ax2BZuv/EbQfxK7rhVn2kLJTL9odQ2EgHmkMvn/KnlbKbk+UsEqw==","shasum":"35b63ae60e598be321226fb9d2d5303a4989485a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-bfb15c6-202309260940.0.tgz","fileCount":273,"unpackedSize":4157873,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsMmxHOe0ofZoFvLjqemEwOEcvE8N+vxLMwuSJiYxRRQIhANP692iTyaewiFRpjQ1ak5xw+oU4tJA9/8hjMbdTzRqW"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-bfb15c6-202309260940.0_1695721306180_0.6454032058923338"},"_hasShrinkwrap":false},"1.11.1-bfb15c6-202309260947.0":{"name":"@flowforge/flowforge","version":"1.11.1-bfb15c6-202309260947.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"bfb15c6feb7ea2e36af33b61aa8e77726aefc1ca","_id":"@flowforge/flowforge@1.11.1-bfb15c6-202309260947.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-JksPh4p8883IJcjW3KipOJG29kOPthEpIXeffbSm3R8na/kUCYl0CLR7alm1xQO8pqCFDfxklRrBG2wf1v0ceg==","shasum":"89b4cebf74e461688191cc75b2adb93130524593","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-bfb15c6-202309260947.0.tgz","fileCount":273,"unpackedSize":4157873,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDUHw0ygcrY57g0X2rPLfUleUokC1g2jZRfouq4iOgCkAiEA3w8LnWcdLTPSKtyFuAbtjhODKt12Q87K9W0yd6cXArg="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-bfb15c6-202309260947.0_1695721713190_0.37773127497436043"},"_hasShrinkwrap":false},"1.11.1-070deec-202309270842.0":{"name":"@flowforge/flowforge","version":"1.11.1-070deec-202309270842.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"070deecc58f7a2f503735c5167899ce4fd5a0dd5","_id":"@flowforge/flowforge@1.11.1-070deec-202309270842.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-l0O8+KhaX+EkdgtADWx8VwDh+/hZoR/0RBF+sONrfFkEP2Shcf2M/W/gjNU/XDUoVKyxZc/z2c1t38QrhZ5tzQ==","shasum":"3a1b639f1b68a5cbaa4ff9065af1cb2cdccb4e57","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-070deec-202309270842.0.tgz","fileCount":275,"unpackedSize":4202397,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrDv90pC4OFPaXXsbju1uUM0huL6fxnlMspTmh7/+PNAIhAJ87Nw4HMEbQXxWy1Sda5DTWPla0cVJ9CehIfl334GOJ"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-070deec-202309270842.0_1695804251410_0.19275648903213605"},"_hasShrinkwrap":false},"1.11.1-bdbdfe1-202309271410.0":{"name":"@flowforge/flowforge","version":"1.11.1-bdbdfe1-202309271410.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"bdbdfe12be275ca7e7ffeeec1e3a4a6b3369ef58","_id":"@flowforge/flowforge@1.11.1-bdbdfe1-202309271410.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-kxu45wvDjD8qA1Lmt0/knGUUMlnO7zZtHVON5zJrKSLT+WcZ1wDzPLYglchOTS6AP2cPtYn+gaS0RaKZHnmNTg==","shasum":"32de464a0cbda93e1e72c1d7dd231a51f9e58ec2","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-bdbdfe1-202309271410.0.tgz","fileCount":275,"unpackedSize":4204261,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE/2vsQOmjLMSPI0dsLOw89Pwa4r2N4NsN+PcNe7oRBMAiAsE4HuJebxYrio8BaQW3kBxaCxYogBeclhlh/nvWo6tQ=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-bdbdfe1-202309271410.0_1695823896573_0.7636386591643975"},"_hasShrinkwrap":false},"1.11.1-d7d7f31-202309271607.0":{"name":"@flowforge/flowforge","version":"1.11.1-d7d7f31-202309271607.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d7d7f317cb78206ccd5fb632a388414042cb45f8","_id":"@flowforge/flowforge@1.11.1-d7d7f31-202309271607.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-/ZDNZDJWzGWEKll3l3XgVgXkgRkzjFyMtRnL339sxGO6YSerPJgZu2kxvsXC9Ov/e0p0gvoHVOadE2TGXl4IDQ==","shasum":"28ab5f2444f5ab834d76199906d24a5ee889b6e2","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-d7d7f31-202309271607.0.tgz","fileCount":275,"unpackedSize":4204261,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDstjMst2RkHNX/j5z8F5iJwlsFXdnRQgsR49RzBzhflQIhALuFMLTWC0MKE1q6Iik1AnMBf+rMJBisxpPom5RUVHSz"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-d7d7f31-202309271607.0_1695830919543_0.694858136085412"},"_hasShrinkwrap":false},"1.11.1-01ef864-202309281030.0":{"name":"@flowforge/flowforge","version":"1.11.1-01ef864-202309281030.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"01ef86472c45f7e7b7e91f2cff3d87271cd4161c","_id":"@flowforge/flowforge@1.11.1-01ef864-202309281030.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-swGptwvNrCGd4LX/6RG/w5G6J2RVqYX0d/43pGjwBT95HtP7xWq6n38fHn7yfs+Dx4G/exaBRHm+2wurg2XVWQ==","shasum":"69f7901d501c3ec4913c36eaeedfc4b1253e840a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-01ef864-202309281030.0.tgz","fileCount":277,"unpackedSize":4264103,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDYLOp/3C8RC/KdKXx4htsbF+V2W1lO9Jky9BUp4gY6eAiEA4fGRyqFrFhEN1iMIHS8IQSPIAHt2yIOkONxVgIBRDdI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-01ef864-202309281030.0_1695897085006_0.06056599957460107"},"_hasShrinkwrap":false},"1.11.1-01ef864-202309281033.0":{"name":"@flowforge/flowforge","version":"1.11.1-01ef864-202309281033.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"01ef86472c45f7e7b7e91f2cff3d87271cd4161c","_id":"@flowforge/flowforge@1.11.1-01ef864-202309281033.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-F33XsP5FL3T698xDLb2WEFThla1XZgnSVAqPZ4Ha3VhQcwyWpVIl1CISDie1VVaxVG+h5Kbvn0en1eiOC63nhA==","shasum":"427ab0579e1dbe251212544ebfff24f0170a1100","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-01ef864-202309281033.0.tgz","fileCount":277,"unpackedSize":4264103,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHfZjc2nafgooCWTB40MxID5dVtMLzY6MeKwwEPjxO/pAiEAyp1QnkF1XT6jRiDJWL9kwPsOTvc6Uf84F/ouu1z7zXA="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-01ef864-202309281033.0_1695897272691_0.8529357856685835"},"_hasShrinkwrap":false},"1.11.1-01ef864-202309281054.0":{"name":"@flowforge/flowforge","version":"1.11.1-01ef864-202309281054.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"01ef86472c45f7e7b7e91f2cff3d87271cd4161c","_id":"@flowforge/flowforge@1.11.1-01ef864-202309281054.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-qqmQ8X3JFC2Y9JwrSZraD1MQyeiA3rP+mzRBCAEebO4fZMHAYLwIlx10js3uLUbQCVirlsZapHCzzNpUmt9YZQ==","shasum":"2af842209194a35df0af426ff196639b252fdf3e","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-01ef864-202309281054.0.tgz","fileCount":277,"unpackedSize":4264103,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICFYpFHGAaUD4YXMQ2VtLNQ2Y2uYYzsBPL9qAUwqzjIqAiEAhixe2CkjD9C1r7gu3A0jaDmgbrkg4WLkH5FbdLZvvE8="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-01ef864-202309281054.0_1695898567632_0.6458715610971226"},"_hasShrinkwrap":false},"1.11.1-01ef864-202309281102.0":{"name":"@flowforge/flowforge","version":"1.11.1-01ef864-202309281102.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"01ef86472c45f7e7b7e91f2cff3d87271cd4161c","_id":"@flowforge/flowforge@1.11.1-01ef864-202309281102.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-SN1PQOh3H8s8M8mfisKAVLbMWJvWYOmJX+rylH9e9ce2+YsPKIC9vDmhNuzKxUeA/5PSQcOHdwLvPKDDrDbgIQ==","shasum":"46e81dc8ffe39edde72c35bb85865bd4f8d416dd","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-01ef864-202309281102.0.tgz","fileCount":277,"unpackedSize":4264103,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGZbDztY4J0l4iQHST3+TvaCP4H4X845ITciLooEmISgIhAP/2LTnXSX7SNKy97x7ZqQ9TDH/ruCDKmUs6FIQn3x+s"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-01ef864-202309281102.0_1695899016979_0.9656202605044721"},"_hasShrinkwrap":false},"1.11.1-bf7c1bf-202309281111.0":{"name":"@flowforge/flowforge","version":"1.11.1-bf7c1bf-202309281111.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"bf7c1bfcafdbc7ebf5d8be4a16051a7e78d1b6cf","_id":"@flowforge/flowforge@1.11.1-bf7c1bf-202309281111.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Namj8KGdwal6SNCKN0OoaoN7/n+Wt46b433xnDuSTFcWYOPDaIw9epfnBbKEKAeZS+vl6aLc5OLxXxVkWbjpoA==","shasum":"44a8ffd00a22921688e329b6887396e23da860fd","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-bf7c1bf-202309281111.0.tgz","fileCount":277,"unpackedSize":4264444,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCg3CDXqMcseEc57Gu+mtxHDCYt7yT3WLBH+JiQaUmu/gIgHgVrqTzkTNIpjJjhz5mYVCRPIAJPOsFbfzj8W7dx6AE="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-bf7c1bf-202309281111.0_1695899541519_0.8274209259495637"},"_hasShrinkwrap":false},"1.11.1-bf7c1bf-202309281113.0":{"name":"@flowforge/flowforge","version":"1.11.1-bf7c1bf-202309281113.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"bf7c1bfcafdbc7ebf5d8be4a16051a7e78d1b6cf","_id":"@flowforge/flowforge@1.11.1-bf7c1bf-202309281113.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-6DTr1iV9cRl6hAFQzWkO0Wm/srqKqhuhocwRhdcW56IesocNmFNZyn+BGM6C/qnFpWgBmV/UbhMOE8mASbsd7w==","shasum":"258eff5ee9e6794164c0bc6f3e4d7a84d09f17be","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-bf7c1bf-202309281113.0.tgz","fileCount":277,"unpackedSize":4264444,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA3z9fhamrPB65bPBENVAmZt/hD41KLW0rK4LiqX0nysAiEAzdpu7f/nUBBVVeheT9HWlGBBTwEsxjKjZSRmSdYCmWE="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-bf7c1bf-202309281113.0_1695899697183_0.7171706025264519"},"_hasShrinkwrap":false},"1.11.1-715864e-202309281125.0":{"name":"@flowforge/flowforge","version":"1.11.1-715864e-202309281125.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"715864e36383fce8c23e57150d62346aa991406e","_id":"@flowforge/flowforge@1.11.1-715864e-202309281125.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Dcv71qHVbVhTIPpVkOvKfWrS5Fnj0je3N6JXxzXseF7ygI3HictqGAOFiKLWYVNGNFpUzy7PgSyY2csye0U6Dg==","shasum":"354d9162a913ca96ee8090a77884ad292b17d749","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-715864e-202309281125.0.tgz","fileCount":277,"unpackedSize":4265310,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrvFQ9EtQE48tEyhwGOnPCPmhH22aEc43e+SR+Er+KugIgN5BSC9H9RKawDFq7zNTIwSulIFRBfykg96dkt76h0C4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-715864e-202309281125.0_1695900390453_0.9696733225144312"},"_hasShrinkwrap":false},"1.11.1-715864e-202309281130.0":{"name":"@flowforge/flowforge","version":"1.11.1-715864e-202309281130.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"715864e36383fce8c23e57150d62346aa991406e","_id":"@flowforge/flowforge@1.11.1-715864e-202309281130.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-+ALdp/q+qsVA9WkaRIOFYSABsipgdXlpBFeiQWL4m4FyCddyD3vkXMqAOBUPDoUsWp+JnzPhr+U2Fe73gxto8g==","shasum":"cedc4d4d87ca593942f8214fe14ec37f9edc43cb","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.11.1-715864e-202309281130.0.tgz","fileCount":277,"unpackedSize":4265310,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGXSSeQGYBC9qTjadRm/oaIWQ6Pn+MKLKvJR2iy4fxHiAiBPWJcGetyxu+4r9wr/hc3xJSAvdhqi5qnGPwvDolCDVg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.11.1-715864e-202309281130.0_1695900721996_0.859476807827233"},"_hasShrinkwrap":false},"1.12.0":{"name":"@flowforge/flowforge","version":"1.12.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.12.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"gitHead":"6800ba0415d4e0286c3a1a479d5274d71574d256","_id":"@flowforge/flowforge@1.12.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-+8dH6b6Z0/pWukHOZWwYEyV98xi2uRFRf5SSGXqrdXwCoMIT+8LyorKLHdPTu3kY06n7+3Cx+aj9h6ECnIKgSQ==","shasum":"4d7a3257574266125cb9aab3adebdd9751a7d540","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.0.tgz","fileCount":277,"unpackedSize":4271336,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWWDSaTTXuLyZoijrfIdO4lNyQ2raSaXGpx0V45YV4fgIgAwhcuHLe2Y3fE0JS9IFSDTFB7E24lXnkOW1VmTLBQE4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.0_1695903729742_0.23817041825181584"},"_hasShrinkwrap":false},"1.12.1-6800ba0-202309281227.0":{"name":"@flowforge/flowforge","version":"1.12.1-6800ba0-202309281227.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"6800ba0415d4e0286c3a1a479d5274d71574d256","_id":"@flowforge/flowforge@1.12.1-6800ba0-202309281227.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-0kNm+xAt4No6i0Yg/NP/HTmdhojAimOdb8ZP+e70yK78KN7NWsRPjs22lXnM9LjtMtip4Xv9qn89ub/WmXzyTA==","shasum":"f84571bdae8273b36fcfb2e0bc99be91ef21ed7c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-6800ba0-202309281227.0.tgz","fileCount":277,"unpackedSize":4270789,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF/OemtYsgHDG3zJ9vu08rIkuO4mVHxNarCWabzTGrBmAiBc0zOztRO6MBRuhE5VSceyN+WUpTvht9NHBwfAJ0XjyQ=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-6800ba0-202309281227.0_1695904149530_0.64593494660608"},"_hasShrinkwrap":false},"1.12.1-6800ba0-202309281229.0":{"name":"@flowforge/flowforge","version":"1.12.1-6800ba0-202309281229.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"6800ba0415d4e0286c3a1a479d5274d71574d256","_id":"@flowforge/flowforge@1.12.1-6800ba0-202309281229.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-PVLbF6PA6AjoMc1ROIr27gN869TYgUc559z+0m30z9BUg48jAZ5Fe+vZnOIVp7Fv/ADBpTfcBJMmNuS6wruhJg==","shasum":"49f6384d9ace127e88fcfc018452de7e614d789f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-6800ba0-202309281229.0.tgz","fileCount":277,"unpackedSize":4270789,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDULE9dsXTpsQ2iECtiAH+I00QR/PSEDdNaRhb8ALWfPgIgLlfmrWpe8AP1Jf0Ys+y4eez/5TmG8Fken8fGxG/Am2U="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-6800ba0-202309281229.0_1695904243957_0.602320659163367"},"_hasShrinkwrap":false},"1.12.1-6800ba0-202309281231.0":{"name":"@flowforge/flowforge","version":"1.12.1-6800ba0-202309281231.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"6800ba0415d4e0286c3a1a479d5274d71574d256","_id":"@flowforge/flowforge@1.12.1-6800ba0-202309281231.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-SdUBt6L99iqaF9iXkPH7ebX3RJfRD/jirZCwm3mFmINV+3VnMEwdS4GVjoj0/O3BWPxlg20AYJmgQg6WmPC8IA==","shasum":"96bbb41f3ef2e432bea5f3544ac53aa111ef38a7","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-6800ba0-202309281231.0.tgz","fileCount":277,"unpackedSize":4270789,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7tSPa+vaVL7LbIhyu41oVAzgK/qORx2Zho1iYDWFbngIhAPXO/KVwjm2nErd8Zk0e2V3Mrrglg8tYcarTg4qFcqrl"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-6800ba0-202309281231.0_1695904345176_0.22623130733934205"},"_hasShrinkwrap":false},"1.12.1-51fbfe1-202309281712.0":{"name":"@flowforge/flowforge","version":"1.12.1-51fbfe1-202309281712.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"51fbfe15bc05bb0ccc3c9832fd2b2150cc23a89d","_id":"@flowforge/flowforge@1.12.1-51fbfe1-202309281712.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-C1dKqFw/tQ00LsTSocb5x3aHKfNyWcPBZ8qwsByoPXvpzBogd5oU1Jdb8kOkNg9Z0x6boWBvofefYT+vCi2eGA==","shasum":"6c3f38bbbf7616b653d9037794761e57cbe07747","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-51fbfe1-202309281712.0.tgz","fileCount":277,"unpackedSize":4270875,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID4AMdBhxk1/dq8vkK9wdwE/QOijrCzXJuOxTWAs6is+AiEA6wids3cUQmh4FyKHLZzt72aoWus8wm6TZryaroPtQ2U="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-51fbfe1-202309281712.0_1695921223276_0.9086529923912461"},"_hasShrinkwrap":false},"1.12.1-51fbfe1-202309281714.0":{"name":"@flowforge/flowforge","version":"1.12.1-51fbfe1-202309281714.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"51fbfe15bc05bb0ccc3c9832fd2b2150cc23a89d","_id":"@flowforge/flowforge@1.12.1-51fbfe1-202309281714.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-lf1bcZg2PCXjxaIh5eVDLVZzuZhVleNH8afItYZR4FF0lenBw6B5PCrq33DiTlwYhq5YDND/3/TXHDM2OKQI+A==","shasum":"d9f2eb51d7c4b802394c1471fad8682bfd7abee3","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-51fbfe1-202309281714.0.tgz","fileCount":277,"unpackedSize":4270875,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF1HMWTjTMx0F4dtlRUyZkuhOPtvc0d/BFBLeT5888RzAiEAu5Lo2cM2gjOt+czmkajTeiHkilc8qmS3w5s9QAUZXq8="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-51fbfe1-202309281714.0_1695921371223_0.8645282146338642"},"_hasShrinkwrap":false},"1.12.1":{"name":"@flowforge/flowforge","version":"1.12.1","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.12.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"gitHead":"ef1d72dfe5dc491a81b64cb40b5782a15099486b","_id":"@flowforge/flowforge@1.12.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-8w40Lbi515O+xVNRk//HgZVYHLT6FL3Q/HYz367TaBQsg7I7sPUVWut+td3qg5KCZvG2qiKLw8SYpdZkk0ZG/w==","shasum":"b4a03f6e1e5b2e4c6417558da0259017f25ef8c3","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1.tgz","fileCount":277,"unpackedSize":4271686,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBiS1NoaCgGAdcPn1Dn2jn6dq/UkBgjV7xUpZB5FInQBAiAjUiWWB4RtJ+5xrNdqmZfz86fmCHhNdM1cbkCzWUi8jw=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1_1695922366483_0.836040308790643"},"_hasShrinkwrap":false},"1.12.1-bd58c8b-202309290819.0":{"name":"@flowforge/flowforge","version":"1.12.1-bd58c8b-202309290819.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"bd58c8b715c46076d3c7212af22a3936d178c042","_id":"@flowforge/flowforge@1.12.1-bd58c8b-202309290819.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-MXkxN4tiiXsQtXHX+wGplQyE6ys42RFGOUkW5CGYk1UBLV4gIEfFnE5R2f7VrRZrhHxh+LvAW5TS1UkvjZNEIA==","shasum":"a3a9c77c8b31b4bec2760a951fcb725787284b3e","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-bd58c8b-202309290819.0.tgz","fileCount":277,"unpackedSize":4270885,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIALgXigg+wtGbHb7n25u2q2LPD8SkNmwLQO6quevxZCxAiEAv/7Ib/M/8kHEpYBKhnezdzY6A+ka7vvTOoyx+VGRmfI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-bd58c8b-202309290819.0_1695975684235_0.4488666970837323"},"_hasShrinkwrap":false},"1.12.1-bd58c8b-202309290821.0":{"name":"@flowforge/flowforge","version":"1.12.1-bd58c8b-202309290821.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"bd58c8b715c46076d3c7212af22a3936d178c042","_id":"@flowforge/flowforge@1.12.1-bd58c8b-202309290821.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-v0OH2+46XlrwNNx03bZRmC0rA1xygA1pCoTPRiQ4sxkX/U1GsWGJF5H+8gpgUwo3fI4wRl1N8qZYju20T9oeAA==","shasum":"8e116bd23e110103a942a15a8f88d1e46965211a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-bd58c8b-202309290821.0.tgz","fileCount":277,"unpackedSize":4270885,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID+WSqo+OM/8G23NGn6ag9bIfSzZ1uMNzslQbVNnsRWpAiEAoNL6L5HJtt92gtuPb2tUXv510js4ez/C+wee3VuuIs0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-bd58c8b-202309290821.0_1695975808881_0.4608752270193306"},"_hasShrinkwrap":false},"1.12.2":{"name":"@flowforge/flowforge","version":"1.12.2","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.12.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"gitHead":"0a4fcec667ff60a41dcc3d87448f5bc33d1b01cd","_id":"@flowforge/flowforge@1.12.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-nVDwT91wUvlbLuqgHRYRNPstqaCSB42dalJtyKps3eLTf69F8U2i6VKaA0DCLxCSVEDpB1ecTi5O9y1jtgZSFA==","shasum":"c5d35bcdb15d965aa6e638a1aef7ec641bf361c6","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.2.tgz","fileCount":277,"unpackedSize":4271831,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzpUpvL2cV6xzEkJefKwU/B4VMtDsGBvA9aJm1wVwwKgIhANQ7a2X9ehs1uZupWGkK08dSJpe8LVZoeg16DQQe5iIb"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.2_1695976951379_0.47019545900533344"},"_hasShrinkwrap":false},"1.12.1-bd58c8b-202309291538.0":{"name":"@flowforge/flowforge","version":"1.12.1-bd58c8b-202309291538.0","description":"An open source low-code development platform","homepage":"https://flowforge.com","bugs":{"url":"https://github.com/flowforge/flowforge/issues"},"repository":{"type":"git","url":"git+https://github.com/flowforge/flowforge.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFlow Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"bd58c8b715c46076d3c7212af22a3936d178c042","_id":"@flowforge/flowforge@1.12.1-bd58c8b-202309291538.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-JLb8icaea3bNDpQqTEwsZzrFITJC3DfeJimj+UnF7ukd4HvjXiHDIkC1FcUnK9Bc+Xf/tCCbFTRRFhHv6Fmkmw==","shasum":"f1f32cab75586347df59ed928ce7e594c38dcbde","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-bd58c8b-202309291538.0.tgz","fileCount":277,"unpackedSize":4270885,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIALYj16dgKnKPAA1vhQLIvmI47R1TuQyLENp+60wCYrWAiEA8M9s/zvfl4anSXZzBZu+CT+iwGc3S8XOBwbZ/9BMCyM="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-bd58c8b-202309291538.0_1696001988840_0.615348119520037"},"_hasShrinkwrap":false},"1.12.1-d8867e6-202309291731.0":{"name":"@flowforge/flowforge","version":"1.12.1-d8867e6-202309291731.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d8867e6fd6b904433104b406f6316c061b00a479","_id":"@flowforge/flowforge@1.12.1-d8867e6-202309291731.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-TT0BWCBQ2lyg+D2DCTch5/kDVtUwknNu+MSQa6rtbcddTEzD0kEp4mDDeNv/e9JHYUHehvHHFwm/iyYpyEyvfw==","shasum":"d6d0637b7ed4d74d3aa70ccb3290b43625410ee1","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-d8867e6-202309291731.0.tgz","fileCount":277,"unpackedSize":4270880,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDezrPlmWyEtvCnuJKgjCJkAIU7dqD/VBVUx6pr1AlJ2wIgfwpoQWhO+nB9paAqztoYyUP+25t45aN5vVaEBThPrLc="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-d8867e6-202309291731.0_1696008778838_0.9425163391662015"},"_hasShrinkwrap":false},"1.12.1-d8867e6-202309291733.0":{"name":"@flowforge/flowforge","version":"1.12.1-d8867e6-202309291733.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d8867e6fd6b904433104b406f6316c061b00a479","_id":"@flowforge/flowforge@1.12.1-d8867e6-202309291733.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-dhjXxEF7gmIvYum5wQ5LrkyiB5L0EDpwwpNENGX3+RkqQNcIW+7rBrg5trTfX385hTEXH9MMNodD11Q9OofRWg==","shasum":"92e611e40d824ed242c5d785872e91cb251bf254","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-d8867e6-202309291733.0.tgz","fileCount":277,"unpackedSize":4270880,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFfNXdDuJZ2kjxsF9Y+vruDZInx9jVjdg9wRFrZZd+zYAiA5+gbVJ1JjYLa9yFQIo1Nqpbm2LpfjomWte1QTHAD4dA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-d8867e6-202309291733.0_1696008876079_0.4161987866738961"},"_hasShrinkwrap":false},"1.12.1-a521daf-202310021025.0":{"name":"@flowforge/flowforge","version":"1.12.1-a521daf-202310021025.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@node-saml/passport-saml":"^4.0.4","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a521dafda6604e0976cc00f468156e8f560d5a77","_id":"@flowforge/flowforge@1.12.1-a521daf-202310021025.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-QDVC+MTiMEKRQuXEpb7g0b2BoaZBrwbQK/DIldQ/7N+CMWln2R5FLjKAUTnV5KJUgTipEUL2yXkFHVfBH/KnAg==","shasum":"87bde2e08fc14fc8d4c246154fda23a81bf4ac5a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-a521daf-202310021025.0.tgz","fileCount":277,"unpackedSize":4270880,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3qbb0/oTL1SfNDpccB4kGzvK1HaS3o3w5a47DAvDGTgIhAJh2P/UBryysXbxhFytm9q6/MPHSlL3gmAMKIbzSZLXg"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-a521daf-202310021025.0_1696242398101_0.8148296950492082"},"_hasShrinkwrap":false},"1.12.1-3784d6a-202310021507.0":{"name":"@flowforge/flowforge","version":"1.12.1-3784d6a-202310021507.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"3784d6af66e8285d4b4e4f08b11992119a82fd11","_id":"@flowforge/flowforge@1.12.1-3784d6a-202310021507.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-PVbWsANS1xUSDG4siydGsrO/tnhlCuB0nFz3VHyA5/To/aPyDva8NubFare10++zPkkfcbH0f/0pt+dPTfJWhg==","shasum":"09213b63d15d9eba736afdd6cdcf9008e2dc7756","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-3784d6a-202310021507.0.tgz","fileCount":278,"unpackedSize":4533673,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIcgw83ss1U/VhSQR+agZ7zcbEBrK4KyT/Ka9tCP0LQwIgcBb967YYh227//NcsxahZthvNFGpOGoe66mPjK24YGA="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-3784d6a-202310021507.0_1696259314313_0.07583418385914031"},"_hasShrinkwrap":false},"1.12.1-3784d6a-202310021513.0":{"name":"@flowforge/flowforge","version":"1.12.1-3784d6a-202310021513.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"3784d6af66e8285d4b4e4f08b11992119a82fd11","_id":"@flowforge/flowforge@1.12.1-3784d6a-202310021513.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-WQMz0wJFXx1J6CvJl2rqOghi6NTbQQCuBmYHDJI53nvITZnfCyXA9Lx+aK4uTU4fA7hBIeE8x0+K6ImajAJfJA==","shasum":"793bc2e9271b728a9eabd0e709d651740fcbdbcd","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-3784d6a-202310021513.0.tgz","fileCount":278,"unpackedSize":4533673,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8y21w3sxtzZw9Wd/G2UmfrA0MTjE0wOPG7ZNm9TIvMQIhALZkMNo1sRC1ZZrL8LfyCAuecwr6IssHTl0NK7xoATGr"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-3784d6a-202310021513.0_1696259698614_0.5075772807107819"},"_hasShrinkwrap":false},"1.12.1-1930a70-202310021530.0":{"name":"@flowforge/flowforge","version":"1.12.1-1930a70-202310021530.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"1930a703e293e2cfd48933fd7e183b81890258a5","_id":"@flowforge/flowforge@1.12.1-1930a70-202310021530.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-JiAwglk+ORHvn57vfkxuuPQBKUnS9GDaXP2Xk15iSGexr+ABEti0ZKy59ylwjS9jGdTcyVpNjXCcfnI6mku1wg==","shasum":"fb6714184100b647a346f65587fa141a620bee90","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-1930a70-202310021530.0.tgz","fileCount":278,"unpackedSize":4533683,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgK8hu1RwW1CrXg29uj+FGJZr1JnXsGMEseWLVb8pKvAIhAO3AOEqelgj5nY8sVz8diZMF/F4t0RuONsMTcJjQnwfx"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-1930a70-202310021530.0_1696260725776_0.024950109579570112"},"_hasShrinkwrap":false},"1.12.1-1930a70-202310021532.0":{"name":"@flowforge/flowforge","version":"1.12.1-1930a70-202310021532.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"1930a703e293e2cfd48933fd7e183b81890258a5","_id":"@flowforge/flowforge@1.12.1-1930a70-202310021532.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-x49hTuxkDkv9IC+N6m7W79KDCoY3O+X1cg+zxq6Fbt20HZAGdTwPpyhjKDf2kn6KuO9I8sf96KwcP3wfaDSgSA==","shasum":"4595c868b6990556b61c5ae87b7d2ff3c83a8229","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-1930a70-202310021532.0.tgz","fileCount":278,"unpackedSize":4533683,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGp/cUDCr3xp5ty4FDXS38NpL0qwR2E1f60SICHLVrVSAiAhyStd4YaPM3FPNtNd6mTzbpccrTm7VFaVy6vblhahwQ=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-1930a70-202310021532.0_1696260863608_0.04164513227941735"},"_hasShrinkwrap":false},"1.12.1-de14721-202310021539.0":{"name":"@flowforge/flowforge","version":"1.12.1-de14721-202310021539.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"de14721c8c47d28e3ff9cddd49cba70d835f122e","_id":"@flowforge/flowforge@1.12.1-de14721-202310021539.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-1xGG6dDjZZm9D0SWRk8rM4NtMScEnKbsRolVIrSuhQX81yRUboqhqx3RLYsTU+VUxniOu1Kdagslqnb27iU6wQ==","shasum":"7b7eed489cab52e03ac0baa44e791ce8ac6e13bc","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-de14721-202310021539.0.tgz","fileCount":278,"unpackedSize":4533735,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBTZHXzEYmA9KSRcvcVQHTD5GnR8O3cLfV26kWhGgtkIAiEA3QvTgc0MfGDxZcvcrHC4wVuqJfjhx6zWD7Nhuj0teIU="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-de14721-202310021539.0_1696261231262_0.6578666033749199"},"_hasShrinkwrap":false},"1.12.1-de14721-202310021543.0":{"name":"@flowforge/flowforge","version":"1.12.1-de14721-202310021543.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"de14721c8c47d28e3ff9cddd49cba70d835f122e","_id":"@flowforge/flowforge@1.12.1-de14721-202310021543.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-2sualFwzvQD4vLxZGAfFxoMcf3p8Fc8v9+7Jf2oQXIFap/pIj1J2EAC0Tr0nXkc1EGYQWOhIN7FO83MoNry1uQ==","shasum":"0818192fa8646d31bd788e427b19135e5820b383","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-de14721-202310021543.0.tgz","fileCount":278,"unpackedSize":4533735,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjiefZX2Y5YHsOuY5r6wVwavTQRu278VSOb1A8ImhpxwIgYIjt5D1FZ7b9WPdV2l4CtUc1vLx7MyhgTIPWiAJ6Oo4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-de14721-202310021543.0_1696261473405_0.4541195423723918"},"_hasShrinkwrap":false},"1.12.1-de14721-202310021545.0":{"name":"@flowforge/flowforge","version":"1.12.1-de14721-202310021545.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"de14721c8c47d28e3ff9cddd49cba70d835f122e","_id":"@flowforge/flowforge@1.12.1-de14721-202310021545.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-48PxZNiwh6zCLWbYHrkD0qi/53pdufTFa8qRmjqEUxKNZpujjqPq8bw/CVxbFm1d7WbWD+E+14CtwYYYCRjx2g==","shasum":"6d5addc0270cc55fd3ac4b586c685b6df78488d6","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-de14721-202310021545.0.tgz","fileCount":278,"unpackedSize":4533735,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpFV0znx7JMnSJgIUysecgc1WZw/0oev5oG6SWJsrLAwIhAP+yplk4nenNcCrZgqO9Ew2Vl0cbb8MS3UkR+FO+rGCF"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-de14721-202310021545.0_1696261573055_0.7164833632227312"},"_hasShrinkwrap":false},"1.12.1-de14721-202310021549.0":{"name":"@flowforge/flowforge","version":"1.12.1-de14721-202310021549.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"de14721c8c47d28e3ff9cddd49cba70d835f122e","_id":"@flowforge/flowforge@1.12.1-de14721-202310021549.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-VEsYFfdvGQCj7LtsfCeFipLPqUcD6kDFEWbgIXBHnJaGbmy0SfPplM2awBeSMsSWXTucYhZTwu0bDs5EAhg/vw==","shasum":"943cb98efa35d3357a52a1e0cbc01791ae3ba5a1","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-de14721-202310021549.0.tgz","fileCount":278,"unpackedSize":4533735,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxY/mjvkwHuA8r7CiJec7m89xsRpy0iGEv1C5Fyd70NAIhAJKETKpAue3jKZ0GmEkZgeq/afH57gqlrxqH5HsH/U/p"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-de14721-202310021549.0_1696261864300_0.06901377722400337"},"_hasShrinkwrap":false},"1.12.1-500858f-202310030918.0":{"name":"@flowforge/flowforge","version":"1.12.1-500858f-202310030918.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"500858f75d6e33d9dbc1f53d29d361aea86951a4","_id":"@flowforge/flowforge@1.12.1-500858f-202310030918.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-thH4tBZq51A0qZr/YXqdRFxlWBzfgiJyGh0NL67x8XlCXSWs57jbDNy42CQHiMKRWqBB9LNVowue2vwDqVtbNQ==","shasum":"1771ac8c315d4ca47e7b375e662f1560814110ec","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-500858f-202310030918.0.tgz","fileCount":278,"unpackedSize":4533735,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAH5ADVcWau8nV6MMil9iyn5RssKtfbZA40+OK2Q/+9QIhAJvukSjRMIBK48RQsbk3l0mhOwdXMmBwqCyfmVzn06eQ"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-500858f-202310030918.0_1696324808527_0.21035177207054012"},"_hasShrinkwrap":false},"1.12.1-842fdc9-202310041417.0":{"name":"@flowforge/flowforge","version":"1.12.1-842fdc9-202310041417.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"842fdc95737c3b47cc1407a0a2453b87f46e1cf9","_id":"@flowforge/flowforge@1.12.1-842fdc9-202310041417.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-y19mYpCcwx7N9XSpgpqaVNc5utPF/MFdrE57kkzP2ARPdYm4P6T1YX8gvMkxJfzCT4MEBHjTCEkCuGoFHkMFwg==","shasum":"b4cde50304614f3c8c48c73b23e365e1a5ad8d70","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-842fdc9-202310041417.0.tgz","fileCount":278,"unpackedSize":4534072,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWju1EvOq7FbteGMP8zNDZYSLrY6eoViQn95ipkDRySgIgbW98HIhny5NKDgJs4gLl0iaSiFpCCsVF2JPYYoDb3zM="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-842fdc9-202310041417.0_1696429170222_0.9745777766440891"},"_hasShrinkwrap":false},"1.12.1-842fdc9-202310041424.0":{"name":"@flowforge/flowforge","version":"1.12.1-842fdc9-202310041424.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"842fdc95737c3b47cc1407a0a2453b87f46e1cf9","_id":"@flowforge/flowforge@1.12.1-842fdc9-202310041424.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-89Y9j8bzwo5z/WunlyrsmlmFGbMB4W1YE9naLB4uTXpQuZc3w1OGAxTXS+57+8sm3wYXmW+4oBq+NFYl3CsV1A==","shasum":"8a18a328ba97e84bd5eb777138f26cbda1d6acbb","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-842fdc9-202310041424.0.tgz","fileCount":278,"unpackedSize":4534072,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6Fm9NvMCQicMa/CGY0QM4P7qDeq8gON2VXeCPDqf3pQIhAPXEUqVCFtLYfLAp41X/jp53Lu0LB8DwWeED99NnyNOo"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-842fdc9-202310041424.0_1696429535119_0.6404982757470801"},"_hasShrinkwrap":false},"1.12.1-a525869-202310041556.0":{"name":"@flowforge/flowforge","version":"1.12.1-a525869-202310041556.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a525869d67e1ab5c2494d46ae7f86e447b4ef671","_id":"@flowforge/flowforge@1.12.1-a525869-202310041556.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-5HZLPnFTsKDNI0sYC0gyz5EYVpkvqWBbq28QgHaj0bA0nr90xdnwTiWEpXwQOmyD1Sp7EtFcbBRX/NPWmVYbnw==","shasum":"79c34d9acbb414cc70e48ac0d72d7560fd6ea152","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-a525869-202310041556.0.tgz","fileCount":278,"unpackedSize":4534053,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGq9l06DS/wbMpQHS2O6BtKSvZtKqHPw/2+Qaewu9aAMAiBxd5O/hcPBp7Sy/tPqCmWqb/XLhS9aDz1/i/BXPIVHOA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-a525869-202310041556.0_1696435084383_0.9371839458215108"},"_hasShrinkwrap":false},"1.12.1-a526326-202310050830.0":{"name":"@flowforge/flowforge","version":"1.12.1-a526326-202310050830.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a5263262b25e8dd935d34ce4eb210523a29a90e1","_id":"@flowforge/flowforge@1.12.1-a526326-202310050830.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-EqZA72GnIyQjhzdAfZeFYlEF/TwlrZj8INF+fWYGWyjVOIJOcCyQhlnT/qNUzVTZLUEuEoW+MbVS8o92DS6c6A==","shasum":"aa155ef4a4103afd58e79e5fdc60149588b56cbb","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-a526326-202310050830.0.tgz","fileCount":278,"unpackedSize":4534277,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMdJ47JYgVui9JJDRegqTIPoey+QjQePivLjT9C4385gIgSPlJXmTTLcmS71EHKVc/gMrOEXSxz5gfB364z7fARbA="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-a526326-202310050830.0_1696494713393_0.658967873791809"},"_hasShrinkwrap":false},"1.12.1-a526326-202310050832.0":{"name":"@flowforge/flowforge","version":"1.12.1-a526326-202310050832.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a5263262b25e8dd935d34ce4eb210523a29a90e1","_id":"@flowforge/flowforge@1.12.1-a526326-202310050832.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Z7ixInW9Ibl/vkU0uPdvOx3QxzSodiJHteLxiBbax0PEk7zueoCZ9XDpzQu0d5XMnkpMJgdY7Yxa6pkGxaeAmA==","shasum":"14084203d22f1de626fe8413d86af3983b1b7164","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-a526326-202310050832.0.tgz","fileCount":278,"unpackedSize":4534277,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/H/wa40IortKk5STff9oqL4OxbpsGuWtOUaeLp512wQIgOPmaTr1DXJMNcJA5OtN39B2OdmR3qEMP9BBImAG9uo0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-a526326-202310050832.0_1696494845657_0.9806296902347975"},"_hasShrinkwrap":false},"1.12.1-fe0e996-202310050941.0":{"name":"@flowforge/flowforge","version":"1.12.1-fe0e996-202310050941.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fe0e996f9b9d8a14f7b1dc67d650e92734e5ae25","_id":"@flowforge/flowforge@1.12.1-fe0e996-202310050941.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-4VuBXkya1lZZL3vLw6fCYLxpiUFBg38lgGV8RyxZIGVarYkT8lI2bLgf6xJJ8dy7RdKORXtnm1oQstZDmZ8Ljg==","shasum":"e5cf10e815e02a7654d91621016de304ddaa3612","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-fe0e996-202310050941.0.tgz","fileCount":278,"unpackedSize":4534286,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjoivUIqhmDA8IlO1p3vOM9aA9xFNeU6erw7sLybNdhgIhAPxOTuuolD7EDjnkk2ww6fPgHlmrKGbM72+jEk89yujo"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-fe0e996-202310050941.0_1696498977756_0.94672522820059"},"_hasShrinkwrap":false},"1.12.1-225ffc4-202310051518.0":{"name":"@flowforge/flowforge","version":"1.12.1-225ffc4-202310051518.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"225ffc442c5994893c722b06e9ee4c0d091c6bdc","_id":"@flowforge/flowforge@1.12.1-225ffc4-202310051518.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-COcZyfvCFs0PGzBUZKgFK0WtOl6m3vcPr9BjxXXGkcu/LlHmZ4zBDFzEsBhGSGX82i/10+E8X6Nzt0ZZRhFV0Q==","shasum":"27b2d706f01693aa073f011b22b973a6aa09c060","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-225ffc4-202310051518.0.tgz","fileCount":279,"unpackedSize":4556574,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCc1s9IdE4Ag4eMPgRH09+ipSZq8I54NUciv8cps/c+LgIhAOgh0js/yv8qmDyOVZpkx0ZBtZFIo3jCm1aqNUJ6PZPI"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-225ffc4-202310051518.0_1696519188720_0.7021975522881618"},"_hasShrinkwrap":false},"1.12.1-225ffc4-202310051527.0":{"name":"@flowforge/flowforge","version":"1.12.1-225ffc4-202310051527.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"225ffc442c5994893c722b06e9ee4c0d091c6bdc","_id":"@flowforge/flowforge@1.12.1-225ffc4-202310051527.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-aKf1sE400UHecc6ljouT282F26DbtW1o3oUOAQE2gnvQQHv4lWBB/ewaiCzgJsMCQyTfU2aoxgdOJLVLrwT9AA==","shasum":"d2f70e222d5ab5c9ac4fd5348bae73a196c95d2f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.1-225ffc4-202310051527.0.tgz","fileCount":279,"unpackedSize":4556574,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDnJRpd/tv8nI0SNPUKIrvLaBsi+la0BqwhzmTRdupg7AiEA2CtbqtWWuVLepS8d8S16OYbGc2Q6q3fsBimZSebNs04="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.1-225ffc4-202310051527.0_1696519709101_0.8826494484385499"},"_hasShrinkwrap":false},"1.12.3":{"name":"@flowforge/flowforge","version":"1.12.3","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.12.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"gitHead":"dcddbe86ff011d79e6bdfd8261f6d60937bdc027","_id":"@flowforge/flowforge@1.12.3","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-tTe0iok9Yev2+jnt0Wi8aAYjiQrvMHILnwmmHjCxlXacmnRkcUPs9TkFvuFiFKSqZ3lI6vMfv4BH88SG6la+hQ==","shasum":"4b2fbd2d105f12b449eb69b9bca83cd399d57506","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.3.tgz","fileCount":279,"unpackedSize":4556941,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuSxJIwO+uMbmN1W6uqwS4vtpEsNHPKXQVjadEbRmkNAIgIPIWKyCIZw2o0e4EWYD89F6ZNJHvsryUpkjODflOyWc="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.3_1696520430918_0.43058658157642715"},"_hasShrinkwrap":false},"1.12.4-dcddbe8-202310051545.0":{"name":"@flowforge/flowforge","version":"1.12.4-dcddbe8-202310051545.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"dcddbe86ff011d79e6bdfd8261f6d60937bdc027","_id":"@flowforge/flowforge@1.12.4-dcddbe8-202310051545.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-07qqiG4f7E2IZ6C9zHdg/Z2LxKqtAteA8f8eL0DDSQVyIKJehjp5CkYtJJXWnQEZ8l3MREICetriCPoMbpZ8iw==","shasum":"ed57d92df6d370c7b6ab95a455a1dc749005440d","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-dcddbe8-202310051545.0.tgz","fileCount":279,"unpackedSize":4558469,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDJYlnpfNgovHImiKW4MsSTtuVG0GB4gkfgjh2W/tpahAiEA9rlkKZeUVM17fGLuzBthbISPDXnQI5jJS/3IgZQ/vD0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-dcddbe8-202310051545.0_1696520785999_0.7973362727718365"},"_hasShrinkwrap":false},"1.12.4-dcddbe8-202310051546.0":{"name":"@flowforge/flowforge","version":"1.12.4-dcddbe8-202310051546.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"dcddbe86ff011d79e6bdfd8261f6d60937bdc027","_id":"@flowforge/flowforge@1.12.4-dcddbe8-202310051546.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ZEZy6BpstujqQX85Xf1lF71lurvwCQ3dysLKHp9wVeZmoJTMIF99Wt0WFTlk6mbjr53dfCwjsLidPfzLHBax+Q==","shasum":"9f16bd492f340bd51150b20163bf0bd06ac66131","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-dcddbe8-202310051546.0.tgz","fileCount":279,"unpackedSize":4558469,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE4qoknAVErC7GlTjk8r1SMZ4CsBcyoi/nRF2aOyo88YAiArRUta7htl6ernG5OMXP8bpkcGyne8byiioSg1lGLGNA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-dcddbe8-202310051546.0_1696520910376_0.6080632898660221"},"_hasShrinkwrap":false},"1.12.4-dcddbe8-202310051552.0":{"name":"@flowforge/flowforge","version":"1.12.4-dcddbe8-202310051552.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^4.3.0","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"dcddbe86ff011d79e6bdfd8261f6d60937bdc027","_id":"@flowforge/flowforge@1.12.4-dcddbe8-202310051552.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-TrDHZqOn/sUxDKmmsir45SF2AZ37t+Ykn+YkOZAn7Bv8RRSl/VTUF40fteR3Bk7g+wcVMO/3ZNt7hin2+27o7A==","shasum":"4ccfc9f0ecc20866bb1aec49e246491d4c4a879f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-dcddbe8-202310051552.0.tgz","fileCount":279,"unpackedSize":4558469,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqfOdn6QSAEE/mPGqxB4EQ5w3GGvo0rCrgwojrtl6UogIgbbWkXZhua8GIvm+yNUQO6GPX8aQG/NWmJJlb4JS0ZYQ="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-dcddbe8-202310051552.0_1696521240914_0.3666160297723611"},"_hasShrinkwrap":false},"1.12.4-8ab0141-202310060939.0":{"name":"@flowforge/flowforge","version":"1.12.4-8ab0141-202310060939.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"8ab0141efc16a201005e01c4223c5e60689f6fac","_id":"@flowforge/flowforge@1.12.4-8ab0141-202310060939.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ZKxpveuK/ktF4OXUoftfs3Jbl3szT2Pf7c5z1C+miFNGwLRZCqQiWfGr5PMDzyNFFbr/VblvOxu5Etpp+0yWCQ==","shasum":"8383c1a807fb84139239c06e350c2c8f870c7f52","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-8ab0141-202310060939.0.tgz","fileCount":279,"unpackedSize":4541803,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtaC8UMNlYK9EhzePagFBxXdyvPYRQzjXjOV3Yd5JmvwIhAN4Hr3s8zsjHsFaTNVB7B9Y6nJ65ydXjEGH8GbZX43ZS"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-8ab0141-202310060939.0_1696585223554_0.9288693742164797"},"_hasShrinkwrap":false},"1.12.4-8ab0141-202310060943.0":{"name":"@flowforge/flowforge","version":"1.12.4-8ab0141-202310060943.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"8ab0141efc16a201005e01c4223c5e60689f6fac","_id":"@flowforge/flowforge@1.12.4-8ab0141-202310060943.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-rCQ3cNlgPF4Q1YBAkGvuCd9G6PIYSes8bBhqs6qV2nY52GNHNfedWirQifcTQcXLEzXt/GlxTjcuXl7DriwmJQ==","shasum":"44c76eff321f6e71367ed77ef572fab009f64748","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-8ab0141-202310060943.0.tgz","fileCount":279,"unpackedSize":4541803,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEQvmiNtlV2PNA3Qn8w5C//TKaVwa39mmhdJCntzYIxZAiEA6FpAGfbWSso9twEinwKNP05lDPH2dXDg2t0s56qUjIg="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-8ab0141-202310060943.0_1696585500658_0.9771614255968879"},"_hasShrinkwrap":false},"1.12.4-8ab0141-202310060949.0":{"name":"@flowforge/flowforge","version":"1.12.4-8ab0141-202310060949.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"8ab0141efc16a201005e01c4223c5e60689f6fac","_id":"@flowforge/flowforge@1.12.4-8ab0141-202310060949.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-yV/V0rz1tvO8AKsSwtN5Z0QsSw3vcIkx27CGU+PkKQHIMKBSmdXrmgm+cqLBP35ib78Bgl1js3P1PDd2UvgjrA==","shasum":"e11fe720dbce71e70fb922b2470e67859cfc5d92","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-8ab0141-202310060949.0.tgz","fileCount":279,"unpackedSize":4541803,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9YeuSHSCwDrkaJkkqwFsyvRrhBoJ3AWD5QwCC1IIKhwIgb/Bvw+fjiB+Tm5Ku+C/mviBRbifTJZBzprXkmEyXhOI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-8ab0141-202310060949.0_1696585838409_0.8263576755595607"},"_hasShrinkwrap":false},"1.12.4-94ad6d7-202310061006.0":{"name":"@flowforge/flowforge","version":"1.12.4-94ad6d7-202310061006.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"94ad6d78166cd71d2f8ef92f7dba80ffa529f93d","_id":"@flowforge/flowforge@1.12.4-94ad6d7-202310061006.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-mXIHgUK/l/9xy4s/UWmiTVT+hWiZ41uQ8SiGHwGTI/U3HUqFo/XUUzLrpakcGQObOQZmt2/mxehmY6PsvkQ0zg==","shasum":"b6bbf812e04f68254c52dba45224a3215fde348a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-94ad6d7-202310061006.0.tgz","fileCount":279,"unpackedSize":4542771,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBUiBVTOfShiKqzXQ5Sh8ptFe+M9JxnVDAVTkFIHsJDkAiBh1EdWtUGnUFyiK7gIhg7xN5I6+uNowTEs7fiFR0s7Cg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-94ad6d7-202310061006.0_1696586874319_0.14411032703113413"},"_hasShrinkwrap":false},"1.12.4-94ad6d7-202310061010.0":{"name":"@flowforge/flowforge","version":"1.12.4-94ad6d7-202310061010.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"94ad6d78166cd71d2f8ef92f7dba80ffa529f93d","_id":"@flowforge/flowforge@1.12.4-94ad6d7-202310061010.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-YZEVqu+axJ6y+/6XD6gpM+a80eYB2AHFuIp2I5sX5KahI2hVeNsdlJT+maoV2TjL2AxjYI0edBQrFr1VysdKPw==","shasum":"904a4cb641fd034cc9e48fda2d2a6d3b822f8d04","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-94ad6d7-202310061010.0.tgz","fileCount":279,"unpackedSize":4542771,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFR3YqJkq6rio+RCzk3xWfg1y3iqYVo+jKBkXh5O+Wk/AiEA7U89jIzf8pp4UoSyBokXQ5/THzlvNUVfop2czbNtgrw="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-94ad6d7-202310061010.0_1696587100520_0.020464257360288673"},"_hasShrinkwrap":false},"1.12.4-7156535-202310061107.0":{"name":"@flowforge/flowforge","version":"1.12.4-7156535-202310061107.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"71565351398b619b0d3172515cc822dc681f3c2d","_id":"@flowforge/flowforge@1.12.4-7156535-202310061107.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-BDCn7a5GE3dxaI2Et1PHDZOLbxnHW49Bk3dMPmubYzQF3kcw/xtQshJD1DHlpwFTqJ4H1C2wRaHR1vIN+yQBmw==","shasum":"6598ddc1285121c3502190acf6af54d75b1f32d6","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-7156535-202310061107.0.tgz","fileCount":283,"unpackedSize":4557408,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3T4EopUu660IxQFBAlMFg9mjtORPp4kbEQijwBnWkLQIhAJIcdH+DVse74Ub3+fM0YUUB144PwqUf4mar6uuaJcab"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-7156535-202310061107.0_1696590518636_0.654066363187372"},"_hasShrinkwrap":false},"1.12.4-7156535-202310061111.0":{"name":"@flowforge/flowforge","version":"1.12.4-7156535-202310061111.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"71565351398b619b0d3172515cc822dc681f3c2d","_id":"@flowforge/flowforge@1.12.4-7156535-202310061111.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-knlaUE4NUW47GGzBqtWA8Mi4YacI7cShiC9rBjQSMStGCOHmrIwqlqLs4BjLuaCyTaqijSqpbuPscO3H1kQ1qg==","shasum":"6e2c7064ac44e98b8f6b505df629f3b68cb71a74","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-7156535-202310061111.0.tgz","fileCount":283,"unpackedSize":4557408,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNKRUzYbxq1kwhFRCackKm5BbcdY1Yfm3uGUwTP6uDpwIhALHHnEA58VTJLwBIzkzDg087mUj/OytNjSlocpOog8Jw"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-7156535-202310061111.0_1696590777061_0.5657532975321613"},"_hasShrinkwrap":false},"1.12.4-c8f484b-202310091340.0":{"name":"@flowforge/flowforge","version":"1.12.4-c8f484b-202310091340.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c8f484bb3d2080ffd987ee48a0201716b172f2ed","_id":"@flowforge/flowforge@1.12.4-c8f484b-202310091340.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-/yGLksQSygBNKIdM7EzwgP2G4cdxN+DGKEIlGooYlLJn9xWssTE+VUrDhEbqwUIdAVkW9NKnTtWXJrHYDsOSJA==","shasum":"a85e45b1b1b08f6d4323074bb1f5e5d6a61e9ad4","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c8f484b-202310091340.0.tgz","fileCount":283,"unpackedSize":4568949,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYS2xY5Y31kYh2Ct59XIVB/KGvk17j1t9gIGc91UgsWwIhANHOEroD80rQ1VUbxxN8XQqj5R7vn3iUpECXmHn8R3Kc"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c8f484b-202310091340.0_1696858886684_0.6108254249163989"},"_hasShrinkwrap":false},"1.12.4-c8f484b-202310091343.0":{"name":"@flowforge/flowforge","version":"1.12.4-c8f484b-202310091343.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c8f484bb3d2080ffd987ee48a0201716b172f2ed","_id":"@flowforge/flowforge@1.12.4-c8f484b-202310091343.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-o8M2U8axYjanl+lYr4U/9RYM5xH2/RzAXtPVNTo+PJ3x1vE6WsqeYQmXugrk0UmXF08+/HRbw+Hm1uRl3tLHQw==","shasum":"6759196f8327381c44a622a0bc53937c57bf989a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c8f484b-202310091343.0.tgz","fileCount":283,"unpackedSize":4568949,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE8MUXUCo5w+FdID7h8flP0VVcNwT78viQYWfxecCDcaAiAmJiKwvwqturyzaXzZcFoz5o9aasutZR0RkWMHzDELOA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c8f484b-202310091343.0_1696859121004_0.8421226729849707"},"_hasShrinkwrap":false},"1.12.4-c8f484b-202310091347.0":{"name":"@flowforge/flowforge","version":"1.12.4-c8f484b-202310091347.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^4.3.7","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c8f484bb3d2080ffd987ee48a0201716b172f2ed","_id":"@flowforge/flowforge@1.12.4-c8f484b-202310091347.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-kJeCDbzTJDZfry/kS6ls7/++k+9adNiErNU8I5gSAMmR1nI93z/0YyVrT5fLpksWYP3q9tq/lbQxoyXnxD1WaA==","shasum":"a2c4d8d5031dfbcaff4d43b1fe94df6ba6b90d59","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c8f484b-202310091347.0.tgz","fileCount":283,"unpackedSize":4568949,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE8oJU/xz4CmoI6d8spw3BZCmkm5mg1+kSHY6MhNpZkVAiBS8v8kgIsRqfe1z1rkEdVmhciRTA/QQT7jrWzj/N1CUQ=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c8f484b-202310091347.0_1696859297579_0.14279505053839148"},"_hasShrinkwrap":false},"1.12.4-c7eb708-202310091700.0":{"name":"@flowforge/flowforge","version":"1.12.4-c7eb708-202310091700.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c7eb708fdaca9b84d289bb983be658b13287c578","_id":"@flowforge/flowforge@1.12.4-c7eb708-202310091700.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-2zEGkbQOqOap8XbUuZzUQ6yx0vlWMzlfyiJO0Q3VN3+O8knMNJPhzy6CVcfyMfWkUC94h6siFtkzJlr/SD8scQ==","shasum":"6a5581872b10c8a8bcd5e0a9a60b9913b23fd905","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c7eb708-202310091700.0.tgz","fileCount":283,"unpackedSize":4568953,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQjJ71xgJZkGDxtRq7TGJqKa/kuD+wRUPJD57+ys31qwIhAJJSWa1aRWNlRhf6WeTjWDfpPlQObr7p+E+p/Vbp+qnj"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c7eb708-202310091700.0_1696870877042_0.9612904479947966"},"_hasShrinkwrap":false},"1.12.4-c7eb708-202310091706.0":{"name":"@flowforge/flowforge","version":"1.12.4-c7eb708-202310091706.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c7eb708fdaca9b84d289bb983be658b13287c578","_id":"@flowforge/flowforge@1.12.4-c7eb708-202310091706.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-T3Y0QiYV03pEaXc3KFYApF5UgyCy0w8+t9yTU4EW4HSrUCUzgomyJCOGa3SrD0J8D89ZxnxTd489zfEGdVqiag==","shasum":"b0c562557f0f22a6b96cbe07abdfa983dbc67e6e","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c7eb708-202310091706.0.tgz","fileCount":283,"unpackedSize":4568953,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDpnRI/jusBtxeckegRqoKKREbxQPeNpB1HnwyFXtd+FAiBZqmBwNs74tmkgvmuuV47uFwaPsOXXSFOorn/2a+xkCQ=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c7eb708-202310091706.0_1696871275700_0.121434008612195"},"_hasShrinkwrap":false},"1.12.4-c7eb708-202310091710.0":{"name":"@flowforge/flowforge","version":"1.12.4-c7eb708-202310091710.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c7eb708fdaca9b84d289bb983be658b13287c578","_id":"@flowforge/flowforge@1.12.4-c7eb708-202310091710.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-gxRglpjBSaFt8d5zYfhkYXcW5naraI5bIfF8ziES0FqwrIN4nitVDLYd5mb6syoOq/ytsiV6EnpDkkWcO8jMVQ==","shasum":"af3570a2783cb196f4424bb9d88c5fb74bfcc0de","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c7eb708-202310091710.0.tgz","fileCount":283,"unpackedSize":4568953,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFWyfa6jBVhSyXt8WN3WbWMC1WTvRHmgmFzSBN7ZmPYuAiACnLFu7cTUOuzxsxywU622jY0ssJpYX9lPc4nCGn3hdA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c7eb708-202310091710.0_1696871551628_0.40338761769469333"},"_hasShrinkwrap":false},"1.12.4-f929fec-202310101544.0":{"name":"@flowforge/flowforge","version":"1.12.4-f929fec-202310101544.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"f929fec58339a335420b504807ec6fe36b165e6d","_id":"@flowforge/flowforge@1.12.4-f929fec-202310101544.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ibZJtX764tt+BM2Nbp9FDOn1pzPNw8kFheNNE3/pG/zk2GVU+nrTKVrnlhT/a7kX63UdsotGcYpM16IMM1Kx0g==","shasum":"85dd3f2514e83027770724a219abe6865c37d37e","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-f929fec-202310101544.0.tgz","fileCount":283,"unpackedSize":4569551,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCY24flclKSCoOW9EXJ9L9/Sb62WiEeY2qWXbrfNPuL2wIhAO+FLrZ0npi2LdJdQUX0ceu65DmrG9n+Yv1bMOonZ5Hy"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-f929fec-202310101544.0_1696952758500_0.5637919053014457"},"_hasShrinkwrap":false},"1.12.4-f929fec-202310101554.0":{"name":"@flowforge/flowforge","version":"1.12.4-f929fec-202310101554.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"f929fec58339a335420b504807ec6fe36b165e6d","_id":"@flowforge/flowforge@1.12.4-f929fec-202310101554.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Vmt1fxX8tLqpmlbetB6WM5pipbZnShF8U8vILMeaKpiOOL71oYJOxj032k/GtPTzMcAhqlnVJ35e1KGhmgP7rQ==","shasum":"7cb75b2967e4188447a9bed36fa883406fe110f7","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-f929fec-202310101554.0.tgz","fileCount":283,"unpackedSize":4569551,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9CYqb4pXY/jv172id1K9HRQhfJWeU+JJaInsgObRrDgIhANkPUYDmx3fCpNGHsvSW0Fikyai99ojmmE3jnRaG98SJ"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-f929fec-202310101554.0_1696953346198_0.1501445442746343"},"_hasShrinkwrap":false},"1.12.4-12ce018-202310111015.0":{"name":"@flowforge/flowforge","version":"1.12.4-12ce018-202310111015.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"12ce0186c5c26a40d1eb72780eb5c6912ccc6cf2","_id":"@flowforge/flowforge@1.12.4-12ce018-202310111015.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-mVSmCFsz1mg2yNYIbZTsZjH9dtROAP7fv6qKxmEi+mTmk2aPhAvdPGOLsD7+NzVkMEGHcioheRlmxxp1/hjh5g==","shasum":"3866ffd992f3a33066f0a39060de6707075e16da","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-12ce018-202310111015.0.tgz","fileCount":283,"unpackedSize":4571436,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzwpwJC4htXG3aCoMuRmDIKPaQMkTVakLcqN3emwZYgQIgNXOAa5EOGZ3nDlZL883IAN0X5rE/5JdMjiOlut45eUw="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-12ce018-202310111015.0_1697019398601_0.32481992350591016"},"_hasShrinkwrap":false},"1.12.4-12ce018-202310111017.0":{"name":"@flowforge/flowforge","version":"1.12.4-12ce018-202310111017.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"12ce0186c5c26a40d1eb72780eb5c6912ccc6cf2","_id":"@flowforge/flowforge@1.12.4-12ce018-202310111017.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-BBDWRN8UB8VAabsHd9982jkhJUkoZxgwpTyEhBKPqgdq84nrnfmplFPZlU0rmfLytMbZ/YyMe9wVZAp7TMAQeg==","shasum":"acdcf4d9ebdda75f02ba4401f524ae72275dc4f5","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-12ce018-202310111017.0.tgz","fileCount":283,"unpackedSize":4571436,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMhDVN0U6vJibJO6VApmlljo4sYs2yo07fV+qlrBskewIgQCQhlrxbYMFkTMm7YHOzYISa7lJwy+bNFFDbRoeczQI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-12ce018-202310111017.0_1697019506504_0.16037883237908068"},"_hasShrinkwrap":false},"1.12.4-12ce018-202310111019.0":{"name":"@flowforge/flowforge","version":"1.12.4-12ce018-202310111019.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"12ce0186c5c26a40d1eb72780eb5c6912ccc6cf2","_id":"@flowforge/flowforge@1.12.4-12ce018-202310111019.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-iKRS8fafjqF3BfRwY72d/IVLz/actfM5uhUYhunnHxqwkAAV1fjuJSDUDy3SreeYGYCpFiDbyrbVu21FCjuj4w==","shasum":"fbb6e9260dad0713373ad82b788b205c370d3fc0","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-12ce018-202310111019.0.tgz","fileCount":283,"unpackedSize":4571436,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICamG8o84oE93V01wKHAOEbX9OoJTFHa5paGghczKKejAiAMlWGe2Rz46wg2garOYNfAK+/3Jp8c8rAc0rFhSwFL/A=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-12ce018-202310111019.0_1697019624383_0.026640579360119432"},"_hasShrinkwrap":false},"1.12.4-6f6682f-202310111906.0":{"name":"@flowforge/flowforge","version":"1.12.4-6f6682f-202310111906.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"6f6682f4f9642758afb1cf2e04216a1c51f61632","_id":"@flowforge/flowforge@1.12.4-6f6682f-202310111906.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-gGLR7Aaz/8euFGW23ML0eujt4XLits2uNC7F1MLTWfsiFezeWd6dmcfypLnVUCmIs/Hdh6PfUBfOE4kc7mm5Kw==","shasum":"32597d524d276a0651d621218afa51f5f17e9d2a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-6f6682f-202310111906.0.tgz","fileCount":283,"unpackedSize":4571533,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEDm2RD1F+6OFOWMjgT2lazPkp6kd6nOtoy5CfYzS2AfAiBB10j3AoIsedwlDyeD0IILC9ITlSjz3Achce8AVDGNbw=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-6f6682f-202310111906.0_1697051244184_0.21043324015285214"},"_hasShrinkwrap":false},"1.12.4-6f6682f-202310111908.0":{"name":"@flowforge/flowforge","version":"1.12.4-6f6682f-202310111908.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"6f6682f4f9642758afb1cf2e04216a1c51f61632","_id":"@flowforge/flowforge@1.12.4-6f6682f-202310111908.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-IwsEks8fi0CtCmgxprOV6x26Vtnyu4rRhc6jJ2QfiumBAmu68MAgRL11PIgxgAjrLPZNO1wZHbcUrigReDDtww==","shasum":"758c075b61f8ae896d0b768bae8b84738f9f7271","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-6f6682f-202310111908.0.tgz","fileCount":283,"unpackedSize":4571533,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcOKX/UQDGIZkkPXqJiumtQRDv/CDVN/qTjtVzS0E3uAIgVl1k4//T+1tb4sxVOdjpDzsD/EBKknqnP92q0upQkQY="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-6f6682f-202310111908.0_1697051381208_0.06990227820580164"},"_hasShrinkwrap":false},"1.12.4-2ae7b45-202310111933.0":{"name":"@flowforge/flowforge","version":"1.12.4-2ae7b45-202310111933.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"2ae7b4544277be31235f097035f6d17cf3a56ce3","_id":"@flowforge/flowforge@1.12.4-2ae7b45-202310111933.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-YL0oVqv+vg0/0mKY5umbMoEYQFXPJemJ8KY00IJTcj5Mfgf5qQEp+yJarGxFzzjbmAQdljIEgrnqnP8CZgVf9g==","shasum":"53375c80f91e1ac1e334046bdc34043ee393f7f5","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-2ae7b45-202310111933.0.tgz","fileCount":283,"unpackedSize":4571436,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG+xJEviLMHqik2lr0XwJreqI8IVT6YowuBcP+c8wS1iAiEAwLc/qwp8QA/PEGs3yzXcIzbpy8cCuhi7pFejfNTMNMg="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-2ae7b45-202310111933.0_1697052896854_0.5443170422237875"},"_hasShrinkwrap":false},"1.12.4-2ae7b45-202310111936.0":{"name":"@flowforge/flowforge","version":"1.12.4-2ae7b45-202310111936.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"2ae7b4544277be31235f097035f6d17cf3a56ce3","_id":"@flowforge/flowforge@1.12.4-2ae7b45-202310111936.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-G8CqIzi3oO2eZYfYXrihdqBXqlSV9a1f2WLZK+aaufBfnSL7kZJ9E7nMOfZ6FcaEx4BWap9D4+BLcYG+JcoJ/Q==","shasum":"b65d68ca9daf18acb3f90039381b4e775d0c8e3f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-2ae7b45-202310111936.0.tgz","fileCount":283,"unpackedSize":4571436,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBXLoCEoG5dHee/DqLUuUstnrtvwrIUf7GF/UbL2821wAiEA0kzk39hfE4P6DvkwPE7dkQRjh07k8RHP563r30iVSkM="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-2ae7b45-202310111936.0_1697053057562_0.8980359964574955"},"_hasShrinkwrap":false},"1.12.4-2ae7b45-202310111942.0":{"name":"@flowforge/flowforge","version":"1.12.4-2ae7b45-202310111942.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.18.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"2ae7b4544277be31235f097035f6d17cf3a56ce3","_id":"@flowforge/flowforge@1.12.4-2ae7b45-202310111942.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-YQWZBlrpfAfYZC3CGeIPimDmxFwSe+Ru0sUpwVo8stzCryOB9BNq1M68eFHRTLS9UjSFG58toXsoTyhitOlnAw==","shasum":"2024b4914c929ca612042ce0b1505d3de1cff7bc","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-2ae7b45-202310111942.0.tgz","fileCount":283,"unpackedSize":4571436,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzBLIs9tk0QY/3xIeqr+AZT4VKmCLacip21l46VDaM/AIhAMicjoQiU6PjvA0Lio3sMwfA8hgxOgKRN1c0AkQDbhPP"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-2ae7b45-202310111942.0_1697053423406_0.5727222963751055"},"_hasShrinkwrap":false},"1.12.4-b2b88b2-202310120554.0":{"name":"@flowforge/flowforge","version":"1.12.4-b2b88b2-202310120554.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"4.23.2","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b2b88b2086d7fe38c5a4cc711970df463892a74a","_id":"@flowforge/flowforge@1.12.4-b2b88b2-202310120554.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-nf8KyWuOk1HufpoaNzkZHhe4cZ9foHsAedRxvxDMbixeyH/zfarZnc9fIgn6nNUZgC2RqL5Csk1r6vYvi9D5FA==","shasum":"c895427368c5120127430d3941d7d2d15f52c234","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-b2b88b2-202310120554.0.tgz","fileCount":283,"unpackedSize":4571435,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFEVEi0tLuqid435leafcXgb/UE/7UMglyd6njbenNvhAiAmSWQA4jZPBTQnYR0akAlrVBuUC0ADhc2nMYNpbw4++A=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-b2b88b2-202310120554.0_1697090151619_0.7679901338824633"},"_hasShrinkwrap":false},"1.12.4-c9de018-202310120558.0":{"name":"@flowforge/flowforge","version":"1.12.4-c9de018-202310120558.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"4.23.2","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c9de0188ea3a93c9186bfeec604a227969392d90","_id":"@flowforge/flowforge@1.12.4-c9de018-202310120558.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Ydp1z3WhVXz6T5WH44hwCiRBtquXzuaM2KsZB35tResAwg8F2NP+tZDarkkxtfJ00wZEi091ECRrzuQfYDN9/A==","shasum":"e788cf47b00f67daed1de53ddc08b644897b4790","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c9de018-202310120558.0.tgz","fileCount":283,"unpackedSize":4571532,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDH0pYlrXrDjNv+3v/q3sd1IZq1WkIyFk2LG8ZFp/0GqQIhAKlsM7ucsH0GPoEJt8XfFOSt4oYMiLu2Sbykp4TpvSqK"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c9de018-202310120558.0_1697090388003_0.35878417805541063"},"_hasShrinkwrap":false},"1.12.4-c9de018-202310120604.0":{"name":"@flowforge/flowforge","version":"1.12.4-c9de018-202310120604.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"4.23.2","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c9de0188ea3a93c9186bfeec604a227969392d90","_id":"@flowforge/flowforge@1.12.4-c9de018-202310120604.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-MwVyH4wzIiP4e0tCIJs9617PafTHJlBm06hFywKmJ1eTt/w57Nnarqy+Q6jaHqDKcuz6epGH9NgAnRJ5VLbIrg==","shasum":"c3af615f2e38882226b9237f5ce8fc36f7b336ea","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c9de018-202310120604.0.tgz","fileCount":283,"unpackedSize":4571532,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFp6bAJJ2LFxqIqJwas8s8Zw4+we0WMnq/CWj1yur5M3AiEAlvfP952GlFoIaSCmnrY8cCDjSX3w2uXaCfELrrvyba0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c9de018-202310120604.0_1697090757206_0.8018462184211772"},"_hasShrinkwrap":false},"1.12.4-c9de018-202310120607.0":{"name":"@flowforge/flowforge","version":"1.12.4-c9de018-202310120607.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"4.23.2","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c9de0188ea3a93c9186bfeec604a227969392d90","_id":"@flowforge/flowforge@1.12.4-c9de018-202310120607.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-HdAewdKsIXv0TkwKb5Nj0P9Lcz6hE69z4skixF2jjD/bFQqSauwzCbnkwOOi7xHfN2M82iWh2EgsBlZEE7dwgg==","shasum":"a6c0d39cc68ac3e242a5a9fc0bf9e50e3d023816","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c9de018-202310120607.0.tgz","fileCount":283,"unpackedSize":4571532,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdGUd7FuvpLwecKuR1I4ncmNHB9ibu99LLkUb5fCox0QIgaMXa0cJ1nSfzFCDqVDnMXmpmZI0hooqSk27Sto1ICUE="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c9de018-202310120607.0_1697090933703_0.7495976552716483"},"_hasShrinkwrap":false},"1.12.4-c9de018-202310120613.0":{"name":"@flowforge/flowforge","version":"1.12.4-c9de018-202310120613.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"4.23.2","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c9de0188ea3a93c9186bfeec604a227969392d90","_id":"@flowforge/flowforge@1.12.4-c9de018-202310120613.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-kTYa17z9VrhllXqi1tCSAj7nh9G1QamEAsHfgguxSFHZArra9xfDW2R9HwesyAxY79GjoCrOg4jEhbL5/e/AUQ==","shasum":"5ae13d98b0a39a3da044b4ec41feba0c937ba785","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c9de018-202310120613.0.tgz","fileCount":283,"unpackedSize":4571532,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoroYI4tLwtTst42Al/6hVKPjUUJuLtVYm8q4wdjxC7AIhAOmer8WkC6I8qrhSdCRUzvb8zAaIESH3HUECEu3iQM6Q"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c9de018-202310120613.0_1697091272829_0.5359097474782768"},"_hasShrinkwrap":false},"1.12.4-495e842-202310120905.0":{"name":"@flowforge/flowforge","version":"1.12.4-495e842-202310120905.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"495e84298217c1c7052eeb08b4df078a57d927c9","_id":"@flowforge/flowforge@1.12.4-495e842-202310120905.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-1MDNMKY0sg8vrTVwcMPDHkzSZT3p7nmZDFlMXdWNXNQlWIagR8vDivhXsH3zIayuiNDJRWtKZXSB2YzPy4lgog==","shasum":"6a6ea64e4bc23da852d05d6c09b8570f93ba6db4","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-495e842-202310120905.0.tgz","fileCount":283,"unpackedSize":4571722,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkj2bfNlxy8tWtVH4pDsUhJXoy0llKdQqSkM0/M6QUwQIgLgFSMjZDFOWJFn4bK84TMwNcWSl3eHrJQhvmvQzx5Ck="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-495e842-202310120905.0_1697101582370_0.02361566527642145"},"_hasShrinkwrap":false},"1.12.4-495e842-202310120906.0":{"name":"@flowforge/flowforge","version":"1.12.4-495e842-202310120906.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"495e84298217c1c7052eeb08b4df078a57d927c9","_id":"@flowforge/flowforge@1.12.4-495e842-202310120906.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-uHABwl4Sr7h+ETNc3dikH6aCoo85rF4wZ1/mHp9gp+91+zeLlkpqXMi75L/hQqu12xvyT6bMCQC0k6jhi01+tg==","shasum":"fb37071c27bbf2d6829e1e86e8ad3677dc3cea9b","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-495e842-202310120906.0.tgz","fileCount":283,"unpackedSize":4571722,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDF/aPW04zL4pJvHHovgTcBSw5B11jjmjt+y4q1S/5NLgIhALdherP/inoK54jJd/zfICfmgHv1Kw4bIqEK1eURbOgH"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-495e842-202310120906.0_1697101691955_0.5969321228030449"},"_hasShrinkwrap":false},"1.12.4-495e842-202310120920.0":{"name":"@flowforge/flowforge","version":"1.12.4-495e842-202310120920.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"495e84298217c1c7052eeb08b4df078a57d927c9","_id":"@flowforge/flowforge@1.12.4-495e842-202310120920.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-79W9VHUMIa16s1kZAfqpCZLEjqtaxZHI/Xzfrn0nKN4SrLUYnImfDjMBi4g6c6um15JMPjiO5hIiXOF2k7Gbqw==","shasum":"9d564bc6fbe70252e0fcb22d50ff5ef75310ad12","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-495e842-202310120920.0.tgz","fileCount":283,"unpackedSize":4571722,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBYj8UnL2iH7xwT2kO15t6GYz6xTYoaqw+rD5BxIJ6PxAiEArqVJ3iE2Imz1H554GLiEn5hxS/A+Z+OdP8Qg1Yb/qOI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-495e842-202310120920.0_1697102495171_0.1258265528605782"},"_hasShrinkwrap":false},"1.12.4-b46ebae-202310121112.0":{"name":"@flowforge/flowforge","version":"1.12.4-b46ebae-202310121112.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b46ebaed2d8e8f6feca024afd76d97d5c1f91f5c","_id":"@flowforge/flowforge@1.12.4-b46ebae-202310121112.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-JDDSdF+GkHXINkwyF9U8UGarj3jxmLl4Ol/NCKTHnjMO2lozA5YPJbPc1FGJCHwBF/FR1Of2w6n5419bpG8cBQ==","shasum":"a0b5e5f6e453aa45677bd77438f8240089c17c06","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-b46ebae-202310121112.0.tgz","fileCount":283,"unpackedSize":4576762,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDA9ZiJKqdhkD7aXvE6mmSxiyPORmBaggtI7AydKqUynwIgahkl6xSA55uZRxqldaKY/VnjO1ledSXgnCEkcuitHD8="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-b46ebae-202310121112.0_1697109207161_0.5069000805508384"},"_hasShrinkwrap":false},"1.12.4-b46ebae-202310121115.0":{"name":"@flowforge/flowforge","version":"1.12.4-b46ebae-202310121115.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b46ebaed2d8e8f6feca024afd76d97d5c1f91f5c","_id":"@flowforge/flowforge@1.12.4-b46ebae-202310121115.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-T3eNp7HIgJpg6a+DkAqyCHzwhWU4/NDUa4a4qROYeHTVAHNgSfUjSmj56nru6O0vhG+wGshGrode4fBKX38PJg==","shasum":"0dcf9e5575364c76bfc686e0d367a75148bd7708","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-b46ebae-202310121115.0.tgz","fileCount":283,"unpackedSize":4576762,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaQdq3aN/txl5CiC+0kfnWKB6mCW7yD3T98yDiiHvxUAIgJh1JJsOQ+IgoieY8r23dSx0gCMWtUgqpzF5xIUjdRh8="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-b46ebae-202310121115.0_1697109390055_0.07811871885358146"},"_hasShrinkwrap":false},"1.12.4-b46ebae-202310121121.0":{"name":"@flowforge/flowforge","version":"1.12.4-b46ebae-202310121121.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b46ebaed2d8e8f6feca024afd76d97d5c1f91f5c","_id":"@flowforge/flowforge@1.12.4-b46ebae-202310121121.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-f7fOgeB4wfZqc7d6ZPod3RSdEIzPIGLmm25BGdctjzge7uEzV0S4bwncJe5WUpE3WBKRr96vRpxQgfSpYbxRIA==","shasum":"a9ffbd927ebcf85a5ab8eddfe2bbb9e191b717ed","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-b46ebae-202310121121.0.tgz","fileCount":283,"unpackedSize":4576762,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBKSO/5Q9gN5hv/Pgtq8VP0RT/LxOu8EYmKfjIF8UxejAiA/sWzZtdSejo05qhmofcZbN+LbNosP5N7FR/IWCWXi5Q=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-b46ebae-202310121121.0_1697109783636_0.925376002362039"},"_hasShrinkwrap":false},"1.12.4-c481673-202310121638.0":{"name":"@flowforge/flowforge","version":"1.12.4-c481673-202310121638.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c4816734c8ad4c226e25787fa9393d7fb9356b71","_id":"@flowforge/flowforge@1.12.4-c481673-202310121638.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-C3Ne1ytHOdBYksV8tlvtVsumDhjxLAG7viDhf6L/Z+HOHstBSxc0bdP/JB7dioprQdE9fH1dpTS8j1wYGCu6NQ==","shasum":"b9d8525e4f40d56105252b1f3181bf8018e262b4","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c481673-202310121638.0.tgz","fileCount":283,"unpackedSize":4576996,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFCXYJwT6N0oJZZn2E9kAXoNuOHoB/IsgRVMYvaTc2KCAiEAnMV6ZFxYhurvZGBXrc/mqXgJRA00vOmpnKxxeNx2wBc="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c481673-202310121638.0_1697128772262_0.6725541302801392"},"_hasShrinkwrap":false},"1.12.4-c481673-202310121641.0":{"name":"@flowforge/flowforge","version":"1.12.4-c481673-202310121641.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c4816734c8ad4c226e25787fa9393d7fb9356b71","_id":"@flowforge/flowforge@1.12.4-c481673-202310121641.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-+Rvy8NkL0LzTfpMAYxxWgZkPpF8bWO/RosBdR9pONCa6d7Foe/clNRwgD5w5pVKxnvdJlvnsKg+pM75uFQi/0g==","shasum":"7888f315dde7eb3b8d63a8d7cf6c3c71d8c7d474","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c481673-202310121641.0.tgz","fileCount":283,"unpackedSize":4576996,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFE168ejQcY2jlJ0dqBuWOCOUnNsOIgVRusm8uWH//iQIhANm/2I9UUCap+HTauz9ljsRVMUyhxrlvdK+ix8ScpZEp"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c481673-202310121641.0_1697128957971_0.18992156796183224"},"_hasShrinkwrap":false},"1.12.4-c481673-202310121645.0":{"name":"@flowforge/flowforge","version":"1.12.4-c481673-202310121645.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c4816734c8ad4c226e25787fa9393d7fb9356b71","_id":"@flowforge/flowforge@1.12.4-c481673-202310121645.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-lBLJ7Mr73ZdtHC3X2sjNT0k+/KjI3qQZ9nI0wp91EjoGiy0oGEXTdQU3Lk3kwAmSnhguTMbQ3w74ohaVd2TwMA==","shasum":"2cee67b09cc79f8af7e2f0944fb566aee95fdf34","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-c481673-202310121645.0.tgz","fileCount":283,"unpackedSize":4576996,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCik391BI0IR86R4zgQksYXFJArLQgagOFvwDS2xn6IZQIgfI1tDTkQaF2l7UqQK6GqQh1U5ZFwKYCmNYePpG859pE="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-c481673-202310121645.0_1697129197764_0.8632331103474651"},"_hasShrinkwrap":false},"1.12.4-2a28320-202310130716.0":{"name":"@flowforge/flowforge","version":"1.12.4-2a28320-202310130716.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"2a28320978b0e6d536c602e5725666fe4c9bb06a","_id":"@flowforge/flowforge@1.12.4-2a28320-202310130716.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Da1TfWz8gT+85UmwXSYXQ+5CTk4hChAQgIzRwwGmP7BCmXJGGfQIkNO4S6qCTrg1/yZZxbMGZA1jDLzWHnB5ag==","shasum":"fc8d46999ee0f28df0426240f8c10a464c7bcc95","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-2a28320-202310130716.0.tgz","fileCount":283,"unpackedSize":4578441,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFm19jTPUMf+H3LwYfuVJLq8C9IRHtRe1XbY6ryEPsUVAiEAljn5BhL+UPbAMHVgJSSjfloYF+M6xz2dV9UYblyoDug="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-2a28320-202310130716.0_1697181448112_0.9707681259726881"},"_hasShrinkwrap":false},"1.12.4-2a28320-202310130727.0":{"name":"@flowforge/flowforge","version":"1.12.4-2a28320-202310130727.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"2a28320978b0e6d536c602e5725666fe4c9bb06a","_id":"@flowforge/flowforge@1.12.4-2a28320-202310130727.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-NqStmqb2nA3ruCwV+5DtW+yEknOZ8RhPkGEZ0G+V8lcnW0ozAxHlyngN/b4f1ILA12fLIVIMILwglSH3AkoKnQ==","shasum":"f29ceb1bd3feb0e3cc8c0d56ca0a0158ce83d990","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-2a28320-202310130727.0.tgz","fileCount":283,"unpackedSize":4578441,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICoCnA5YjF2z28qTcO4lCKAxqGAfE37txrp+ToQJfRybAiEAwSZpFsnkGbBdIrZ1Uc/ZTg3mKpDGPZOe578FrGVDhAQ="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-2a28320-202310130727.0_1697182143253_0.19083058200251934"},"_hasShrinkwrap":false},"1.12.4-7549558-202310130928.0":{"name":"@flowforge/flowforge","version":"1.12.4-7549558-202310130928.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"7549558dd2e90e61ce4f5cc4580ba9172fbf28b5","_id":"@flowforge/flowforge@1.12.4-7549558-202310130928.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-61rMF5QxTovp6tKHkZa0f9RGTJuuI0JsmaxXFREUXpQEmbVf4Ar+hSTKcQMKyBT3xPe+riiQQ1UJqv/teWVGxw==","shasum":"6820605efd9da6da27d8ae068a87e63734b65026","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-7549558-202310130928.0.tgz","fileCount":283,"unpackedSize":4578387,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFI7VNLLp45qj2YRBK0vyDuohiPf8mNo7hyeQiLc4TIuAiEAkEvQOhh21cEyZzlJXjkY1Jhy7fuieH7VmfRVBOotPfI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-7549558-202310130928.0_1697189428548_0.05153142450185633"},"_hasShrinkwrap":false},"1.12.4-7549558-202310130931.0":{"name":"@flowforge/flowforge","version":"1.12.4-7549558-202310130931.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"7549558dd2e90e61ce4f5cc4580ba9172fbf28b5","_id":"@flowforge/flowforge@1.12.4-7549558-202310130931.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-XnW2lZodaPiZnpLaXyWqOEKearnuOAWzoPnQy+IbYuaKE+yEVCYTVdlMsv9lzTNsrEKIszvMz81AS2Qod22sRQ==","shasum":"ce6d5e5cd59d32f52ba04fe88ccba5e9ae60410f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-7549558-202310130931.0.tgz","fileCount":283,"unpackedSize":4578387,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJl48ffSNOjsPLRNn5EHNYKiV9buaFsSvC9TmTPlKvLQIhAMp6xuUu9M/dc7UxbVPRMMG9i42CXg4GiIlQ+ZF79Gor"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-7549558-202310130931.0_1697189584615_0.7783417625350404"},"_hasShrinkwrap":false},"1.12.4-15e2aa1-202310130957.0":{"name":"@flowforge/flowforge","version":"1.12.4-15e2aa1-202310130957.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"15e2aa1c4ee8f7c345804989f4f6eba0ef182640","_id":"@flowforge/flowforge@1.12.4-15e2aa1-202310130957.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-WsrqcDzBi3gQuzNOp+9t3AgqN6r100fjasFZHMGX589HD8AZH8tuIa6qnLiKcj/ElyADSRjifUIpkjYGSKtB3A==","shasum":"cf2eae7133d7881d2647aea29abf12e7cf3f8c7c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-15e2aa1-202310130957.0.tgz","fileCount":283,"unpackedSize":4596675,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcJFpVVpoP3VYgaY9USNWM8EmOSh9dLPZL8izW6O7VYQIhAMHgGEAsolCc2l5zxun/bW3AGDBNF/wRlak7IHt0ze4a"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-15e2aa1-202310130957.0_1697191105015_0.9950362128696224"},"_hasShrinkwrap":false},"1.12.4-15e2aa1-202310131000.0":{"name":"@flowforge/flowforge","version":"1.12.4-15e2aa1-202310131000.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"15e2aa1c4ee8f7c345804989f4f6eba0ef182640","_id":"@flowforge/flowforge@1.12.4-15e2aa1-202310131000.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-uNOq/Kfo522QOQsQ6T1ZJ1FGsDX+mmM5hJjRP07H+Aw6zjMTYtsQ3dVQvj3NV111r3FEwOYCGOy0P0S07R+gIA==","shasum":"7fd54881a23d31c7ecc6bdfe042584c492a49213","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-15e2aa1-202310131000.0.tgz","fileCount":283,"unpackedSize":4596675,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB+3n8gn+2zvv7zakDUUzfm8rT+v5h4Qnwrnnxps9oEnAiBfIo+hTFL7704vfEpcwKLqpkCiYUVaq4TABlTo6Kwl/w=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-15e2aa1-202310131000.0_1697191312938_0.623348091838192"},"_hasShrinkwrap":false},"1.12.4-cf77c8f-202310131100.0":{"name":"@flowforge/flowforge","version":"1.12.4-cf77c8f-202310131100.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"cf77c8fdb84ae12db9560244ea9223714f9212fb","_id":"@flowforge/flowforge@1.12.4-cf77c8f-202310131100.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-qG0Np0leDfbaTa3IPjh9R2Cydu0RjnHQfH/ZyHB+b+SvG9IE+Rznap8vaevbIDJ2iSniNZVvLOAkFv4YUH9NmA==","shasum":"7a63ca450114de27bb007ef3277b94461bd6e8ae","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-cf77c8f-202310131100.0.tgz","fileCount":283,"unpackedSize":4596685,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkdpLf1lDJ/HK05mUD6O3pXZvum0BUTKumlFY6xCSu2gIhAN8G/G86gb4kKGvV2+ET0whktJ0cTh/hHNfaW6aEjNYf"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-cf77c8f-202310131100.0_1697194881462_0.5025857376940184"},"_hasShrinkwrap":false},"1.12.4-48109d8-202310131147.0":{"name":"@flowforge/flowforge","version":"1.12.4-48109d8-202310131147.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"48109d8620857138808ea9256d2265852ac12d90","_id":"@flowforge/flowforge@1.12.4-48109d8-202310131147.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-RD0lyAmTfCxevh5AKyah82pkMu9ncyyNXbsdA/Cp+tCOSNBXBgVlePId8wQeb2rrAKMqZovmsug2taZjJ32zUw==","shasum":"67b4fada35dd8b2cfb904e67c8165373978c2ed1","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-48109d8-202310131147.0.tgz","fileCount":283,"unpackedSize":4596695,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG+NLDfEthbpKGsDq6Qj/3FQGpPvxs2ZBZ/ok1SCnSVfAiEAnqxtYYpDohpzeNu9jf+R4lDm0fWMZtSXAxgI/yo/gs8="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-48109d8-202310131147.0_1697197745791_0.027764534604620916"},"_hasShrinkwrap":false},"1.12.4-48109d8-202310131149.0":{"name":"@flowforge/flowforge","version":"1.12.4-48109d8-202310131149.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"48109d8620857138808ea9256d2265852ac12d90","_id":"@flowforge/flowforge@1.12.4-48109d8-202310131149.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-fkzgC2eoVC5kxOVv3u6LuTrY9W5mVgstlWXe4laoJznOasHB6xsQe4l/yyktUAsR43T/Yz56N35vFNUssTW4mg==","shasum":"bad4da2fa723a3c6b9572b43bd4ec8d550ef0168","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4-48109d8-202310131149.0.tgz","fileCount":283,"unpackedSize":4596695,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA8K6shyjCVg6WBOKSLAhhatnUxsxIo1sAgd1TTRf49SAiBMDPT6j4/5SRnNmz9MfJpvxY3IHXGOpAdV9GPaiwZV2g=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4-48109d8-202310131149.0_1697197836018_0.8365868182567961"},"_hasShrinkwrap":false},"1.12.4":{"name":"@flowforge/flowforge","version":"1.12.4","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.12.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"gitHead":"5d77e5afb03d35726220118e2112a0aae9feaf98","_id":"@flowforge/flowforge@1.12.4","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-d22CgERDpHuLJrXB8cgRrZkp7kxy97KEq7eUUcxhLeT43K+OEqOHPikaGmtExBoMz7MPclzEAcdXhZuqbLyeUQ==","shasum":"9d99dca3ec1b3792f311739894108842fab6c511","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.4.tgz","fileCount":283,"unpackedSize":4597049,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDdAlRD72KSAGQlcNRkQYnJ9Gl7rFpy4rHdjpHugg9Y5AiEAlSkveCRNXx3ChlaYZNqIbf4pXsFHajkN2imJMulAq/U="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.4_1697198590244_0.015198859125832964"},"_hasShrinkwrap":false},"1.12.5-5d77e5a-202310131209.0":{"name":"@flowforge/flowforge","version":"1.12.5-5d77e5a-202310131209.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"5d77e5afb03d35726220118e2112a0aae9feaf98","_id":"@flowforge/flowforge@1.12.5-5d77e5a-202310131209.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-H4D1us0Wo24/ftShZ5NmlwYSmRlS9vxp7Kv4/CpO11WvpU9vUJJqACIHIIiE1l/RWUjJ6sAsidzWdISLR195TQ==","shasum":"88af820b10aa23fcb00dd5ea82bcebccd07cd1b9","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-5d77e5a-202310131209.0.tgz","fileCount":283,"unpackedSize":4598569,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQLjLwfC1foUslKSSQevp8frcwD/QcIrzQLlturk05zgIhAJo0xO5LWfubBfZT/SzXnExBnTxho19grLGAJqWlMgud"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-5d77e5a-202310131209.0_1697199050351_0.6782118852152228"},"_hasShrinkwrap":false},"1.12.5-5d77e5a-202310131211.0":{"name":"@flowforge/flowforge","version":"1.12.5-5d77e5a-202310131211.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"5d77e5afb03d35726220118e2112a0aae9feaf98","_id":"@flowforge/flowforge@1.12.5-5d77e5a-202310131211.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-CALHKTGsrxsk5QfIMpoF3WM3BnLp0eQQtdvQ6pXAKyyf+l6Reor4yN3l9+1S0ERgJ+n0t/Q7IFYA84d0pRsyGA==","shasum":"007bec5fb88b602188296d4c4acb7813b5ef08d6","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-5d77e5a-202310131211.0.tgz","fileCount":283,"unpackedSize":4598569,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClkmdxLiqvvCYJx7DPCqtuL4ET6do0rbDcEhVBhg9AxwIgeumsWJSLGV2aaDmjImDUEqsf4A4qh8uEv8DZD09wRmM="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-5d77e5a-202310131211.0_1697199173151_0.9224073367268781"},"_hasShrinkwrap":false},"1.12.5-9f1a012-202310151408.0":{"name":"@flowforge/flowforge","version":"1.12.5-9f1a012-202310151408.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"9f1a01230e27976af9f4e6e314b855fc8b272504","_id":"@flowforge/flowforge@1.12.5-9f1a012-202310151408.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-UcPzoJbAHrYPBym0wLEB4Pb1FTgwuglL97EEiBPqNAOXUwINl6rMQXqPYIegCLhnQ/6rlvAsLoad08I/X7shcg==","shasum":"5990e3fe45578e577bd71ce393b089fc21faa595","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-9f1a012-202310151408.0.tgz","fileCount":283,"unpackedSize":4598584,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCEKS2zYQ79m15Lm5yAvqW554xje8a6QNNObSkl3Z3QQIhALFuSRkQxIW+oIwpFSjacgD4PAQuEELbOSj7QMJvSr9f"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-9f1a012-202310151408.0_1697379018530_0.8035848349127925"},"_hasShrinkwrap":false},"1.12.5-9f1a012-202310151411.0":{"name":"@flowforge/flowforge","version":"1.12.5-9f1a012-202310151411.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"9f1a01230e27976af9f4e6e314b855fc8b272504","_id":"@flowforge/flowforge@1.12.5-9f1a012-202310151411.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-fsxOxwxd+7hayefhi77MVE1KzKPbASwKbobGUZzynvJIKgsDqDU3HIhxiMWR0SwpGMlkZfEWSxpp+IpLP3NHig==","shasum":"ba4caf03e7d0f716385f4c96f027d94ca1a95052","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-9f1a012-202310151411.0.tgz","fileCount":283,"unpackedSize":4598584,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID6hYx2AFYWqI/Mdd0QNudy/PQ6oYXVgUqQi51zrTr8FAiAgDqUTJDfkydxpN0NDuQBGq3YXkw62J97wksvoYy1x9w=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-9f1a012-202310151411.0_1697379207433_0.6795354516958605"},"_hasShrinkwrap":false},"1.12.5-9f1a012-202310151416.0":{"name":"@flowforge/flowforge","version":"1.12.5-9f1a012-202310151416.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"9f1a01230e27976af9f4e6e314b855fc8b272504","_id":"@flowforge/flowforge@1.12.5-9f1a012-202310151416.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-JaXzaKm1PVlfoT7NPqrtET95qj7ruMGQPAHUg2xkk7IH30RBWenIseWhMPjQeSWWkLBevlxm1PzTiUGmim+urA==","shasum":"e32e65a5c188222ca41f6566cf7e6d0e93ba91c3","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-9f1a012-202310151416.0.tgz","fileCount":283,"unpackedSize":4598584,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMm3Po0v9gz27j6YoozGi5mvjNYG1GXP9mTd9IBnCJNQIgbUwzLprlU2uj/ERAPD2YucFZAEhPBnVQNWbbN6W8wJU="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-9f1a012-202310151416.0_1697379437904_0.5342946679420553"},"_hasShrinkwrap":false},"1.12.5-a15f186-202310161016.0":{"name":"@flowforge/flowforge","version":"1.12.5-a15f186-202310161016.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a15f186f58dfbf9cda03aa3d6f3e3713d029a3cf","_id":"@flowforge/flowforge@1.12.5-a15f186-202310161016.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-QSZZYxnbXp82jSjUXhzeOhRinWHgPMYqgksTn28OKOy9S/A23RTPTr2niWGNmFlFL3WBJ2Wu7Iu5kA1S2VAGeQ==","shasum":"f037c29a2c381d1eb17b2fc313708703e0a472bd","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-a15f186-202310161016.0.tgz","fileCount":283,"unpackedSize":4600138,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYt4IxTGMdroHNbf1+JQe+VORDTHtP6Zb98VQPznQLkgIhAI1oZGSyanQ1a5kVPeUrNbX+idDlR/rgwMesGctoOJiD"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-a15f186-202310161016.0_1697451462547_0.5112586143310636"},"_hasShrinkwrap":false},"1.12.5-a15f186-202310161023.0":{"name":"@flowforge/flowforge","version":"1.12.5-a15f186-202310161023.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a15f186f58dfbf9cda03aa3d6f3e3713d029a3cf","_id":"@flowforge/flowforge@1.12.5-a15f186-202310161023.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-vF2vj9SHVMsQxTyJm9j80Pc2+vGWPa4G4u2KcEHH3hRt04yX9P73Mx/GAruaBNnY+NzPPzsdAxNZA89YhZlJ0g==","shasum":"479687967c80b3365a2f00c02647fd692e633543","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-a15f186-202310161023.0.tgz","fileCount":283,"unpackedSize":4600138,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCL/ZP2vyr+wvtxW2QrdDkim8wm+RG7z0vqtEybBTTPLQIgIRSO6JPDq5AVzYug5AmKb/6v70AwloBU+5exWFLmCJ4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-a15f186-202310161023.0_1697451934943_0.46216999919506985"},"_hasShrinkwrap":false},"1.12.5-a15f186-202310161402.0":{"name":"@flowforge/flowforge","version":"1.12.5-a15f186-202310161402.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a15f186f58dfbf9cda03aa3d6f3e3713d029a3cf","_id":"@flowforge/flowforge@1.12.5-a15f186-202310161402.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-F0DubHMi29YhYDWxk62sYBVDar2iLG6CxL1yQPq43b+ZLS6Yxafs15j1Fa0Hwua5QCmd0e7zjKBheLbrRZsbNg==","shasum":"8d1378a08fcdf531ba27cc2ce5f61cccefb3cb17","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-a15f186-202310161402.0.tgz","fileCount":283,"unpackedSize":4600138,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1e6A+eCiDwIJdDZWKzXa0PWVfecR0OswH7ey68xn+HAIhAIzVVwEUh9Jmqjqh759fPhIiYx6VJbNhKw8kQBvbggIE"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-a15f186-202310161402.0_1697465045882_0.5495987135715577"},"_hasShrinkwrap":false},"1.12.5-62a9747-202310171251.0":{"name":"@flowforge/flowforge","version":"1.12.5-62a9747-202310171251.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"62a97479aeeb908636501b69e2b15de9a0eb1fcd","_id":"@flowforge/flowforge@1.12.5-62a9747-202310171251.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-a3UwPDBkwOttZFJ7prsTpsC+BYRwsKf/CIyee8GcsaxB+vnjOi28EE37kNaT0jwfliUPe+keWDFQRkRUxtqd2A==","shasum":"900f5e90d0f70111c4453b3fc412440b75263ee0","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-62a9747-202310171251.0.tgz","fileCount":283,"unpackedSize":4600180,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEMGEqT/V/vxgaqNGZdrkg4nJdG/IPvfg3HXJTZwmSa1AiEAnY19zbYBIeES8L7EHy6tPtwCihvgiEkV9B0PYVJD8LI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-62a9747-202310171251.0_1697547148387_0.3843263517700297"},"_hasShrinkwrap":false},"1.12.5-d0b73c3-202310171651.0":{"name":"@flowforge/flowforge","version":"1.12.5-d0b73c3-202310171651.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d0b73c3ffe4b800e32f126874bd9c8c3ebb0f349","_id":"@flowforge/flowforge@1.12.5-d0b73c3-202310171651.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-bI1rIHjvhC11eCqA3U6twfaw23EkiFyzWobG8qanU6XA1Qppha/TCrtK6Ok+65z1o8SZ4AqokIgXN3kkK8wnBA==","shasum":"4b13e637f8d6359cf519656608dd11db1168622e","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-d0b73c3-202310171651.0.tgz","fileCount":283,"unpackedSize":4602444,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMdaNc452fyi1+57e/YS+FNDqDsBucLmPuHYed4o/x3AIgHpm3DJIaIpyPt/pvTl9TY1au653SLL+vsSoboargj18="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-d0b73c3-202310171651.0_1697561572609_0.5506373200098571"},"_hasShrinkwrap":false},"1.12.5-d0b73c3-202310171653.0":{"name":"@flowforge/flowforge","version":"1.12.5-d0b73c3-202310171653.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d0b73c3ffe4b800e32f126874bd9c8c3ebb0f349","_id":"@flowforge/flowforge@1.12.5-d0b73c3-202310171653.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-7W0q932Sd1fR/iwKA9CIu/Bx2cInGpx9Jy6+tO+6/R74FElNTuVfxpM0CehSNU3xUWaWRpJvJNzdS8i2GjHlvQ==","shasum":"a98c2c374da78df44a320cd7dd0616de7a94fd1f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-d0b73c3-202310171653.0.tgz","fileCount":283,"unpackedSize":4602444,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBYvTy72eRquZj1CxA4vCkVEm0x7dgbbEH/sF3hxcfWBAiAS08e6nYYIn7j88iGH6tyq/pm7tVDCLHZ3Ixq8+XEhNw=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-d0b73c3-202310171653.0_1697561704684_0.7731981494401439"},"_hasShrinkwrap":false},"1.12.5-d0b73c3-202310171655.0":{"name":"@flowforge/flowforge","version":"1.12.5-d0b73c3-202310171655.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d0b73c3ffe4b800e32f126874bd9c8c3ebb0f349","_id":"@flowforge/flowforge@1.12.5-d0b73c3-202310171655.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-65CG0R9GbkvKjpev3TqErmgs/d79F/PDuJCkuftZ67g//he1bTKcpj9BvyUaGswzRfhzpoLsxF+4AFzF9yyeeA==","shasum":"7055b157b13478b112482b3947939383ab330aa4","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-d0b73c3-202310171655.0.tgz","fileCount":283,"unpackedSize":4602444,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkjIQMspR5/LnkoGLJo5yRSHIdRQNu2QkhWWmRIU3D1QIgXU5j7HfqbCQiVjOgqS2gvBrb2AJDa+w23w6jZlwlr7I="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-d0b73c3-202310171655.0_1697561820871_0.6787469596883795"},"_hasShrinkwrap":false},"1.12.5-788d357-202310181135.0":{"name":"@flowforge/flowforge","version":"1.12.5-788d357-202310181135.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"788d357da77760bb410558dc88cc81b2cda6ad0a","_id":"@flowforge/flowforge@1.12.5-788d357-202310181135.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ZCxRzOr486U6fEBBZbmiyUYgIhBWVZA+JTTvb3dTcx8Amp9Yi+GLFw1Jc807mPIzeMCPRj0QFZgiMHNgXnt+nA==","shasum":"7045d2d3a8f893a37492dbb389cc67fba0099fc6","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-788d357-202310181135.0.tgz","fileCount":283,"unpackedSize":4603111,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdbfcEkmcUkszLRvrxUVmwQIlvz55kIC2Lw9aVBUM3WAIhAJjVVH71w4sMhFT5HXkfYMI8b7wvJGHTxL47tc6MISj9"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-788d357-202310181135.0_1697629012147_0.8727074354110771"},"_hasShrinkwrap":false},"1.12.5-c58f54b-202310181137.0":{"name":"@flowforge/flowforge","version":"1.12.5-c58f54b-202310181137.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c58f54bda85588b2ec6bd0f4b76f225e3e7eb034","_id":"@flowforge/flowforge@1.12.5-c58f54b-202310181137.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-wvMd7cfmxh7UQ6otb/MSf9yLpBDFmXtsixXXJJuaPrA4ayVhoS+24/rwHMVVP/UR4S8KFEewWn3IomrngHROyQ==","shasum":"2bfdb73946e864288fba7a8cf10b31ad37722159","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-c58f54b-202310181137.0.tgz","fileCount":283,"unpackedSize":4603111,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICZQI/s1YV28wtbr/AabzAGMt+WuG9sWEH1u04ZFhxW1AiADq4YAaMLGgDifG76O8E5siRspKxLsvEUWS6J5uGsKOA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-c58f54b-202310181137.0_1697629147101_0.2020419506655644"},"_hasShrinkwrap":false},"1.12.5-c58f54b-202310181145.0":{"name":"@flowforge/flowforge","version":"1.12.5-c58f54b-202310181145.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c58f54bda85588b2ec6bd0f4b76f225e3e7eb034","_id":"@flowforge/flowforge@1.12.5-c58f54b-202310181145.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-zD6cUUdC6M8i+4mWDYxJcCaREDgMQWhYV3B4xm7rA1FkssJ+qtqzEsWGAyIbZqjoowgUhFagiFovjiwVN9ILEw==","shasum":"88eb88b59fd26606bc2d115da582fc5cf2781ffa","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-c58f54b-202310181145.0.tgz","fileCount":283,"unpackedSize":4603111,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqYqKmCWNaWn/OUtR2EMmiA8n7uxjJx8oR/+76BGkvqAIhAMHbFvi58+Yy4i+IUy0k9Dn4HGgnM2Rw48wlgFLn8yyC"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-c58f54b-202310181145.0_1697629628130_0.263749647416049"},"_hasShrinkwrap":false},"1.12.5-3a16aaf-202310181351.0":{"name":"@flowforge/flowforge","version":"1.12.5-3a16aaf-202310181351.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"3a16aaf58effd37b98d75937e42a6a9c4c53443d","_id":"@flowforge/flowforge@1.12.5-3a16aaf-202310181351.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-swpiea7zdmL+NRK0bHU+qT+zOpVeTaobU/aBf2s21eZhU9awt7KUQFN34XsRZD8V4dbg981xFicP6dsykRd/EQ==","shasum":"90183c4357d3c304f613192d905ba1522e08f588","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-3a16aaf-202310181351.0.tgz","fileCount":283,"unpackedSize":4603111,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC5lXiybSfAWPrvdJbdoJdiizc9/31yuHeR8j0QbMjgMAiEA6h4IJB+Ys74IZh75DDMSBpWHpkPewbBukzcvEflhRQ8="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-3a16aaf-202310181351.0_1697637151591_0.16046865608634486"},"_hasShrinkwrap":false},"1.12.5-3a16aaf-202310181352.0":{"name":"@flowforge/flowforge","version":"1.12.5-3a16aaf-202310181352.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"3a16aaf58effd37b98d75937e42a6a9c4c53443d","_id":"@flowforge/flowforge@1.12.5-3a16aaf-202310181352.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-iSbs7OQ/HFqU2Ui+1CWpNnwnhiiEdNjoN4QMGho7E51IJrFlCbU8psT/X7fC2yaRn2LPueYz+G+rSTpb7TaQ/w==","shasum":"f35ac188b595306c82f2a059f95e4c8bdd8f09af","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-3a16aaf-202310181352.0.tgz","fileCount":283,"unpackedSize":4603111,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDetCC2MQ9q+1SrRMtOstPb9hOMhlUftPqf8K071z70cwIhALIClAeRqy+5aXILplXJhfD7G6HLJzWyG+8qboKwQet4"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-3a16aaf-202310181352.0_1697637247410_0.38400365332252195"},"_hasShrinkwrap":false},"1.12.5-d39247a-202310181430.0":{"name":"@flowforge/flowforge","version":"1.12.5-d39247a-202310181430.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d39247aadc1f8f2bd496e7dc32ee9d9f6fc8a484","_id":"@flowforge/flowforge@1.12.5-d39247a-202310181430.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-mKE19XkqO/TJiG3lKdr77saOyDLn70WZs7hbsFcbQ/GtDL/76QrMVA3BEUWBuCbLupnJ+9ewiZhIy4Qp2EgQ7g==","shasum":"a3c17a1aa4d52b73686914b4f8623b6574904df5","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-d39247a-202310181430.0.tgz","fileCount":283,"unpackedSize":4603912,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEigDMivlMQtv8LNk/Ut/kL8UHc6WRQxl7nH4mx/lBpaAiB/wT5UkECHB7A6tVPs89jSsSS6QZa2q9mVPaRInr1ybA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-d39247a-202310181430.0_1697639511384_0.701258239953624"},"_hasShrinkwrap":false},"1.12.5-d39247a-202310181432.0":{"name":"@flowforge/flowforge","version":"1.12.5-d39247a-202310181432.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d39247aadc1f8f2bd496e7dc32ee9d9f6fc8a484","_id":"@flowforge/flowforge@1.12.5-d39247a-202310181432.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ixwDlsyNBHgIHdTVfVQGlXW/mNIxEYvHog5VELyHORikP3fA0y2Cf7z7iC0AEfrJFt5qpMRdHDdvlOuDHleEuQ==","shasum":"1b20b0daeab6a1a3991a663b996202ac5afce3e4","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-d39247a-202310181432.0.tgz","fileCount":283,"unpackedSize":4603912,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFSTzGkBbKVj89SYfP5s4TZv0RCr9FG0zZxcF/bFKwPZAiBMddc6vJQ+Vc5S0ruSWFWB2SEoQlbyfSSmWMX9ukLfOQ=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-d39247a-202310181432.0_1697639654501_0.1635198794898225"},"_hasShrinkwrap":false},"1.12.5-d39247a-202310181555.0":{"name":"@flowforge/flowforge","version":"1.12.5-d39247a-202310181555.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d39247aadc1f8f2bd496e7dc32ee9d9f6fc8a484","_id":"@flowforge/flowforge@1.12.5-d39247a-202310181555.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-XSo2+VzZ4Ot5Lf6nxy5M4zjqVy4btdJowXwwOpy7MAIHyMbL62G8qilPeXdEpGJ0+Y4pHWrAK51TCu9odWouMw==","shasum":"a4698e0567f40a80c70789581d26d394257d766d","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-d39247a-202310181555.0.tgz","fileCount":283,"unpackedSize":4603912,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID53HDSvmczZnOBm63tli0jsilNFNvDSNuQ6x0/ewGCQAiArOY8I7e4u956xxgOfpE8KKgHJJqOzryMhe7uhH/b0Og=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-d39247a-202310181555.0_1697644633373_0.4215966090577279"},"_hasShrinkwrap":false},"1.12.5-d39247a-202310190822.0":{"name":"@flowforge/flowforge","version":"1.12.5-d39247a-202310190822.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d39247aadc1f8f2bd496e7dc32ee9d9f6fc8a484","_id":"@flowforge/flowforge@1.12.5-d39247a-202310190822.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-r1AwyWpCYY+I+WiyeAwRFxyVBN1lXpjgtOLv7yqqTXnARrJt7CmMbzGNdPrG4mlNzdfeAUOGuFG1CQGPg+cNIw==","shasum":"648d77e88c84bd11312cbc15113618a0252b6ed4","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5-d39247a-202310190822.0.tgz","fileCount":283,"unpackedSize":4603912,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBXevSkfH+o1FLqwoK8c3ryom/MyKIoZYjTqNxcSGab6AiEAuIP35qYVemH0Zjfur69q7SiYTDclT4vuStHg/A2PTUY="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5-d39247a-202310190822.0_1697703817087_0.9885402933420586"},"_hasShrinkwrap":false},"1.12.5":{"name":"@flowforge/flowforge","version":"1.12.5","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.12.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"gitHead":"a8261d8cc5b325e868e7f330d5c39213405aab04","_id":"@flowforge/flowforge@1.12.5","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-x+IBs+Polxv1in9l6tK/cQtTpBrqzVDY8m1I8mjDqrRZM0asQCJ2HuGF5CyPC4htmyV13LAMJCitDTnFzZmW7Q==","shasum":"df561e8e867fbb4a80128e2ee9d8909ae3686b02","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.5.tgz","fileCount":283,"unpackedSize":4603308,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIGVlvwjjXTthDnExBgL903H9ATwmtKVbpBMOg0vkdcgIgPnrdTE627R6Xf5KBjyI/QmBfu6yVU2s3tdPeaxinHFk="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.5_1697723998696_0.7623049480936479"},"_hasShrinkwrap":false},"1.12.6-a8261d8-202310191405.0":{"name":"@flowforge/flowforge","version":"1.12.6-a8261d8-202310191405.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a8261d8cc5b325e868e7f330d5c39213405aab04","_id":"@flowforge/flowforge@1.12.6-a8261d8-202310191405.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-nKBKHH+X+HNVLvSbTEWcfjC7JdPuD7IS2uGuGb4XEwdmZ1ljSQ9pcZwcZ86Io3n3lOkhtoJgVBrElw3AHPREXg==","shasum":"76846828eb4b2308c30e929ef7abd73409415ff6","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-a8261d8-202310191405.0.tgz","fileCount":283,"unpackedSize":4604828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHyFYxgmZ1FXmLW3QTeMS3tE7zg2UnUXoxczwESryMxwIgMArpxHVEUTK6G9A6IQskVL0uLugQSzQL4fEwqKGshcc="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-a8261d8-202310191405.0_1697724415276_0.03656730051714829"},"_hasShrinkwrap":false},"1.12.6-a8261d8-202310191410.0":{"name":"@flowforge/flowforge","version":"1.12.6-a8261d8-202310191410.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a8261d8cc5b325e868e7f330d5c39213405aab04","_id":"@flowforge/flowforge@1.12.6-a8261d8-202310191410.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-vIdRIlOVWxk0j0iQwMYxPQsDOgP546TRv3byJbt0/749dWdumJNd455XhNQ6heJJhe0bwcP10CPOyr+MULhtfw==","shasum":"78123c9a1d2b93404f083d586446eadc9d931373","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-a8261d8-202310191410.0.tgz","fileCount":283,"unpackedSize":4604828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGwT8DM4iF3tpOxOskOyZW/1Q8TIG2dt+KCq+EHOd33xAiEAlxobceDXiuxD59eTCiG7/6uFHbR54/xoE2qI1ykyj0c="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-a8261d8-202310191410.0_1697724681715_0.23995732354685506"},"_hasShrinkwrap":false},"1.12.6-fb351e1-202310200857.0":{"name":"@flowforge/flowforge","version":"1.12.6-fb351e1-202310200857.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fb351e14491b2bd01d005f1b22cc2be73a306108","_id":"@flowforge/flowforge@1.12.6-fb351e1-202310200857.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-rR8OuKFnioUqVBygKBFBAJM5MHO+EjMHqIHRr/o64gFtSXGogOxb6CvGN5nIMZOOpqTFCMIqfFhFhv4KopYtoA==","shasum":"806c1fbc17f9d4da67d7205841f15ddc21f4ded9","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-fb351e1-202310200857.0.tgz","fileCount":283,"unpackedSize":4604828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmp5KckAjSKkQjyKKpMxG0WKjQ4mjL6xnl8N1uVaJUwgIgHFlHzeiLeb9IBXBh/ABNvJU4sHlYP7zj2F/U4d9eh/U="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-fb351e1-202310200857.0_1697792332820_0.2989521623678637"},"_hasShrinkwrap":false},"1.12.6-fb351e1-202310200902.0":{"name":"@flowforge/flowforge","version":"1.12.6-fb351e1-202310200902.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fb351e14491b2bd01d005f1b22cc2be73a306108","_id":"@flowforge/flowforge@1.12.6-fb351e1-202310200902.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-GRE1rAVoAo45uT75kX1hIcAoYgFUEhRpJRhw/1W+J8flF8tZLLTUvL1L06PYZssyExIzJrac4YXU89p4fhnPJg==","shasum":"002fc52ffc3a201fdeb7ef97e8425a0fbe0b2405","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-fb351e1-202310200902.0.tgz","fileCount":283,"unpackedSize":4604828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuczlbRUW8GIqQKMzwz95jOaWDl/uagbAVFIg6XuhtewIhAOQBWqeM0rEelziBJ1Evn5sxx/CA1bvAOZ6Ek2e+21ZK"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-fb351e1-202310200902.0_1697792651250_0.3142583112033046"},"_hasShrinkwrap":false},"1.12.6-fb351e1-202310200910.0":{"name":"@flowforge/flowforge","version":"1.12.6-fb351e1-202310200910.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fb351e14491b2bd01d005f1b22cc2be73a306108","_id":"@flowforge/flowforge@1.12.6-fb351e1-202310200910.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-UkU4ygu8nKdpyN2WuxgGaYkhDdvyhXGTYxlB+BjpEk5/zbFamt0wKkzeRn/ZN4Q3GxgfoIMep6SpbgSVkF0pDQ==","shasum":"e6fdd3c613b677b04363032702af6fd354b2d47a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-fb351e1-202310200910.0.tgz","fileCount":283,"unpackedSize":4604828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGaU7IVgyBf37d1WDQsflag4KkCt6NmzMQkgv7f+VcMYAiEA6p7pARF9EurY9xwS3qvLq7cSjLWyw9ZR9fhxcUHUXx4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-fb351e1-202310200910.0_1697793120300_0.7815319162562637"},"_hasShrinkwrap":false},"1.12.6-fb351e1-202310200929.0":{"name":"@flowforge/flowforge","version":"1.12.6-fb351e1-202310200929.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fb351e14491b2bd01d005f1b22cc2be73a306108","_id":"@flowforge/flowforge@1.12.6-fb351e1-202310200929.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-W4K5/ToPH1PXxM82kqbDHQme7smW1kk7qbV5/VO0AW1W3y+Y9kromXRcNXAo6PhygjjxkGZpGjN+RhUbzd2J9A==","shasum":"f9bc09fd0d16e55de9d6a61df2e178240168d3f8","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-fb351e1-202310200929.0.tgz","fileCount":283,"unpackedSize":4604828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDipXeqD2WpjYq9SaqN+MbkP8yIpTGEZsfX8SZtGz7W+wIgHIxc3md4sZ4CEHN0qtUv73Oh1eF4NfFphGvhEAfXV/0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-fb351e1-202310200929.0_1697794224511_0.2046825050374963"},"_hasShrinkwrap":false},"1.12.6-fb351e1-202310200939.0":{"name":"@flowforge/flowforge","version":"1.12.6-fb351e1-202310200939.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fb351e14491b2bd01d005f1b22cc2be73a306108","_id":"@flowforge/flowforge@1.12.6-fb351e1-202310200939.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-DIzrb8XXO30fy+cx8aVeREO4aOrwOZskwAteo7O5/KtOOt3r2xmM6gdv6jsdAtt0/92wOXdkS7goopkRBQJu7w==","shasum":"078b8523bc9fe566ba642092dbd4711cd446a822","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-fb351e1-202310200939.0.tgz","fileCount":283,"unpackedSize":4604828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGeefsSSrF/eZLqguZXFpks5NJaIWvWCmcPLC/pDtCxvAiEAuau6l5E6gXMRH/geRJUn34x4u7ktTOaDn9B6j6ABc6s="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-fb351e1-202310200939.0_1697794829483_0.4766472583514072"},"_hasShrinkwrap":false},"1.12.6-fb351e1-202310200958.0":{"name":"@flowforge/flowforge","version":"1.12.6-fb351e1-202310200958.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fb351e14491b2bd01d005f1b22cc2be73a306108","_id":"@flowforge/flowforge@1.12.6-fb351e1-202310200958.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-jale2JzBmyK27H5LKpgPNY7zeF6I3qT0jOAK/rimZtLihPqpjXL2adZSsfZwlZ7y0MSV8oUsDbAzPB8y26CGWg==","shasum":"1bae1406e389b4aa079e5e8c1160381b2a242227","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-fb351e1-202310200958.0.tgz","fileCount":283,"unpackedSize":4604828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFxaWmntgwnw5v2OWwr4kMQJlKf44SiPg1X6WUKLJ7U0AiAhhsV6Kh++cSp5Y1rBdRQoR1x7otReSghJnOItpabwNg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-fb351e1-202310200958.0_1697795980718_0.8661944374151349"},"_hasShrinkwrap":false},"1.12.6-fb351e1-202310201004.0":{"name":"@flowforge/flowforge","version":"1.12.6-fb351e1-202310201004.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fb351e14491b2bd01d005f1b22cc2be73a306108","_id":"@flowforge/flowforge@1.12.6-fb351e1-202310201004.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-t4efvftnQt1E0E68JARcB6TrJqY8VJfTR4x+gcK62Nrbc6DPPR6A8LNuehVBzGaomzLoMIXrMQm364KLXDyDBQ==","shasum":"d73d29059b28a0b9148c3533a50b223ad442bda0","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-fb351e1-202310201004.0.tgz","fileCount":283,"unpackedSize":4604828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICFj4ZrlzZSBeV48Ipe3KFp7aFlXXlvGPD94o7iKaZAjAiBKnaSuvOGctzXmchqJ7fqpHk3nf6k4BuqXFDvzRNI70Q=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-fb351e1-202310201004.0_1697796342121_0.049894573172726275"},"_hasShrinkwrap":false},"1.12.6-fb351e1-202310201006.0":{"name":"@flowforge/flowforge","version":"1.12.6-fb351e1-202310201006.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fb351e14491b2bd01d005f1b22cc2be73a306108","_id":"@flowforge/flowforge@1.12.6-fb351e1-202310201006.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-NmMOOdE55/83zEbmjMmGD07H5vv4JnMTX40pwt4p+sA1cKAxsJBhI6e+0kfOFJEeDX/ncJOaPZ3fF//WgU85fA==","shasum":"c60116f087c3212c79da11c6631d2e707d0fe5df","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-fb351e1-202310201006.0.tgz","fileCount":283,"unpackedSize":4604828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICLIty7fdmtjuMHUtkKLOS4wSKhhECjl4WnQIIbNMxRnAiB/jtTiHf7v5N2PtLW2JclWTn+SkNCw9wfBn5x4h2YlTw=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-fb351e1-202310201006.0_1697796463486_0.8734146039708823"},"_hasShrinkwrap":false},"1.12.6-8613954-202310201022.0":{"name":"@flowforge/flowforge","version":"1.12.6-8613954-202310201022.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"861395408b03e320c99cbd1a73d7052614535ef0","_id":"@flowforge/flowforge@1.12.6-8613954-202310201022.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-MA7wE6RqPmA19CFZprlWWpeJPTSdVONI9xRkyh63TPZUVvjhSQqNS5jEfiJxDajP/NHpRAqqdIGS4+T4W5WqpA==","shasum":"d4bd4eaacd4c19e26f6f1d1d4c4b6acc21cd7bf9","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-8613954-202310201022.0.tgz","fileCount":283,"unpackedSize":4606661,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRvQEgyB7NnYrZizU/e6+dXq5GxgWjX9lnexv6qnuarQIgNNgo0dBbHnUY3lXzAnxNdZILVE+tGbOsCMPSIErm8Fg="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-8613954-202310201022.0_1697797404789_0.8792639510792852"},"_hasShrinkwrap":false},"1.12.6-8613954-202310201024.0":{"name":"@flowforge/flowforge","version":"1.12.6-8613954-202310201024.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"861395408b03e320c99cbd1a73d7052614535ef0","_id":"@flowforge/flowforge@1.12.6-8613954-202310201024.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ZYwHe9nPN8CD/3tLD14mtlaotskzmROHBUhANwI7yM45HPFkh2VtemJlivXuBPgEK0+dZzVkJu10TPQuHPYqlQ==","shasum":"cbc67e99563eba9dadde1b74ca17cf3fb288915c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-8613954-202310201024.0.tgz","fileCount":283,"unpackedSize":4606661,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHC7pbxX7vVCtds0U3/vjWXwdt2rcISBTi65dSVJkS9CAiBRF/Mb0oMSpbqgs+DqsZRDt6ngYUZVfYkBJgg7hUqF+A=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-8613954-202310201024.0_1697797554640_0.16391749615094198"},"_hasShrinkwrap":false},"1.12.6-8613954-202310201029.0":{"name":"@flowforge/flowforge","version":"1.12.6-8613954-202310201029.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"861395408b03e320c99cbd1a73d7052614535ef0","_id":"@flowforge/flowforge@1.12.6-8613954-202310201029.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-gxpOAeXdmTCGblsAZ/on8ZodsHprzcsoNuFlj2ypLNo2SSOgC0l5bTofs9X+FvkEY+OkyBhiNeDLPTQZ6TUyJg==","shasum":"101947a0ecc69f7e71182e5a592caf89541cf375","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-8613954-202310201029.0.tgz","fileCount":283,"unpackedSize":4606661,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVAVxmbtIBAnSxD28HfT9ZxaZ4W+NVS0hkj+9nOZDVBQIhAOEfS1kRcfSmLmvxui23Kt7jy4YaySmcHJM3usxioyJG"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-8613954-202310201029.0_1697797873441_0.8886257691586685"},"_hasShrinkwrap":false},"1.12.6-b63ba2d-202310231105.0":{"name":"@flowforge/flowforge","version":"1.12.6-b63ba2d-202310231105.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b63ba2da74fc99453ce7e524db3ce5c63d41974d","_id":"@flowforge/flowforge@1.12.6-b63ba2d-202310231105.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-QI4kFXKAGVb8+9v9BCxXEmUhyRP/lQ+pT+22Rxn54PojobLT9UjmBpvL/tHuirlEMRWoCGHLCfT6qTm5LwjbXQ==","shasum":"8ee8b8e6756be3cefc3f4022e9bef1fd2211b347","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-b63ba2d-202310231105.0.tgz","fileCount":283,"unpackedSize":4606749,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcBnQVtVzKgGMAvfEKzpM8EsTQoRF0jBmU/DX1XRHc6wIgHblqjS2RYubuNHxHO+Lu+YuNPPLndylz3GwxCVoQgks="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-b63ba2d-202310231105.0_1698059187528_0.3877982263237425"},"_hasShrinkwrap":false},"1.12.6-b63ba2d-202310231106.0":{"name":"@flowforge/flowforge","version":"1.12.6-b63ba2d-202310231106.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b63ba2da74fc99453ce7e524db3ce5c63d41974d","_id":"@flowforge/flowforge@1.12.6-b63ba2d-202310231106.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-jGqrdBbiPpfZbuSEf1Q6NcmyGGWuO0orvihYycig3AZN0mW4yiI81TlPiPw1MddU4HxuLGco2yTtHf11HCft/A==","shasum":"d6b5d20f1dc898c6904fcb93b46c4e91495dd7c8","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-b63ba2d-202310231106.0.tgz","fileCount":283,"unpackedSize":4606749,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVy6M6wCe5goXMsk1qRkAiYriS+dSqvY82pEvu5UTp5QIhAN725SSKAK5S3z4vtGMc3aiVqT+B9Z6zTt3XD0RcCAC7"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-b63ba2d-202310231106.0_1698059305837_0.6798066954999988"},"_hasShrinkwrap":false},"1.12.6-b153e79-202310241017.0":{"name":"@flowforge/flowforge","version":"1.12.6-b153e79-202310241017.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b153e79860dd272054cd75b96cf42ec6670e8d11","_id":"@flowforge/flowforge@1.12.6-b153e79-202310241017.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-AQx71uC9XkpL2A8M+L6Yx1B5bFtxkKflO407FZveYCBwumDFSRpYNLFUqKGI7QcZcGI/lvpCHYShIoqgUQDTGA==","shasum":"2e9d15b0ebb8f2c95a5cf9ee7ef629390a13fe13","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-b153e79-202310241017.0.tgz","fileCount":283,"unpackedSize":4685845,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnVHxOJojuvCFjKhIgupBKu1yzug8l45tSIDYKgloFNwIhALe7wEeu4KSqb8eXSHbpk5lmx0EKLGEX3oW5vVlam7a2"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-b153e79-202310241017.0_1698142703265_0.4738509650506635"},"_hasShrinkwrap":false},"1.12.6-b153e79-202310241018.0":{"name":"@flowforge/flowforge","version":"1.12.6-b153e79-202310241018.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b153e79860dd272054cd75b96cf42ec6670e8d11","_id":"@flowforge/flowforge@1.12.6-b153e79-202310241018.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-0lLZFxiYP2fuCfLDQmd2e8lhJwDy6k9PFG/5BhsN/55IwU3f7EXk+BXnoV/7okHUVhF3xI96bOdQOg1mD6Cmmg==","shasum":"b9129893ed763eec542d2ae926127568848cfe42","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-b153e79-202310241018.0.tgz","fileCount":283,"unpackedSize":4685845,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRWISRYZlM+Y1Qb0PhSr1Qu2DRfuXmPm7h7sVhYN2AXQIhAN4+ddI6sS2jCYAtSNo464EbqcnKDsa3kFlXB5u2cmoA"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-b153e79-202310241018.0_1698142806420_0.9401034592001061"},"_hasShrinkwrap":false},"1.12.6-b153e79-202310241020.0":{"name":"@flowforge/flowforge","version":"1.12.6-b153e79-202310241020.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b153e79860dd272054cd75b96cf42ec6670e8d11","_id":"@flowforge/flowforge@1.12.6-b153e79-202310241020.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-9qc1L1rem7G3jVZMzlgWtjy46b45jZ2DZBbaD/JWb6QygMksjK8Q1BojaUIhKnjHS/m8GD2JBn1e2nyRk9BXJQ==","shasum":"7f4535fb9fb0cfe7041f155e7025985a36bc46ec","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-b153e79-202310241020.0.tgz","fileCount":283,"unpackedSize":4685845,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFR+Z6bEV1SVGGs0TsN/hqyRBUuWwBjqtuWsMi6MPJE3AiAx4Gbt10jcG79JJ76hSwQNu+vcGtYNTWgFo79R+gSPOQ=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-b153e79-202310241020.0_1698142945593_0.28794063474763965"},"_hasShrinkwrap":false},"1.12.6-b153e79-202310241455.0":{"name":"@flowforge/flowforge","version":"1.12.6-b153e79-202310241455.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b153e79860dd272054cd75b96cf42ec6670e8d11","_id":"@flowforge/flowforge@1.12.6-b153e79-202310241455.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-wVY6uxrk+LtS+Do5Yrx0EQnjALvv/o+0rwnFidOt215KOYjicreouFsEEoMsUsS8TY1IK12dK4G5KCdkO/6DCg==","shasum":"f3846b6725c932d91484afcd43be2b56cfe4d991","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-b153e79-202310241455.0.tgz","fileCount":283,"unpackedSize":4685845,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4UihKlioYK8BocLrdnYWskD3Cnh8rZApUxCfn50BAgAiA1B0NILNMtBg9Wl+pVdFH4OssazRqxGb/vgkGW1ehymw=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-b153e79-202310241455.0_1698159449836_0.48226890749543627"},"_hasShrinkwrap":false},"1.12.6-b153e79-202310241621.0":{"name":"@flowforge/flowforge","version":"1.12.6-b153e79-202310241621.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b153e79860dd272054cd75b96cf42ec6670e8d11","_id":"@flowforge/flowforge@1.12.6-b153e79-202310241621.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-9JL+tpNuyGAho4yY+W/mKZuxSzc9mMOvDChwMgLnUKu6tN/Ls29Tf8OQVHtXsMxCfPCegtgYO1UhXUU273BrZg==","shasum":"be39298ddbe5dc3ae66efe92c724be4269b58d16","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-b153e79-202310241621.0.tgz","fileCount":283,"unpackedSize":4685845,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDkoYbRqjDaWmz7VazZ67bYZf3xPcky6voUn26/tpNvfAiEAoit2iiCYQkOKiLUUYjGQQOPOqc99ISSXE4a4n/HFpJE="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-b153e79-202310241621.0_1698164556784_0.5049468647381183"},"_hasShrinkwrap":false},"1.12.6-7cd5432-202310241646.0":{"name":"@flowforge/flowforge","version":"1.12.6-7cd5432-202310241646.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"7cd54323f532cd65c8d99cb89e979fddb2cc3832","_id":"@flowforge/flowforge@1.12.6-7cd5432-202310241646.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-H9lr8dPndsYgWUpkXK7AwscS+w8WsW2JrBit+CLvo5ZZeMfSD6d7z+lzJyCpgPZIkk/+wcLmYM5suE7o5KX6sA==","shasum":"56cac6394959ef3b12968dedebc29814d468c9b4","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-7cd5432-202310241646.0.tgz","fileCount":283,"unpackedSize":4685845,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG3IBb8RCnuscxianiHXEY5Ns9adQuNqEC+vx9bITfIiAiEA4KYkslmMAMGRxT/UeXMslSByBkj9P8RDqX4roJt9Sdo="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-7cd5432-202310241646.0_1698166131360_0.9540839376875243"},"_hasShrinkwrap":false},"1.12.6-4cf0224-202310250827.0":{"name":"@flowforge/flowforge","version":"1.12.6-4cf0224-202310250827.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"4cf0224ebf9316920eae3adf3cdf6e29bef56c69","_id":"@flowforge/flowforge@1.12.6-4cf0224-202310250827.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-qglykN+OhcDxm+eA1SoAJ6YAYZQn1/oeEA+yKrampqWZhbxpLDKROHmqHWu85hmtQqQtuLUvp3avrZAUcNfymQ==","shasum":"83424b5fc861787b35fe601f0c56a24362e681a1","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-4cf0224-202310250827.0.tgz","fileCount":283,"unpackedSize":4685845,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIATkwAcpO3E78dc+hByHNvfrdaZfpiBHL2Qa1qYinYu3AiEAzmKwhJPVk3OrHIuANtP6xPD3RBmMAW1YZJZVTNvyr0M="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-4cf0224-202310250827.0_1698222555311_0.8344334387331165"},"_hasShrinkwrap":false},"1.12.6-4cf0224-202310250900.0":{"name":"@flowforge/flowforge","version":"1.12.6-4cf0224-202310250900.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"4cf0224ebf9316920eae3adf3cdf6e29bef56c69","_id":"@flowforge/flowforge@1.12.6-4cf0224-202310250900.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ritIyP6NiGaGHiOefipsnhaWnZvHZqCEoebjlkGKCBr/kuaYpAkAir/ZUorLEOz2/hfjDSEf9wU7UrJN+zVBcg==","shasum":"726fe169bfb274eafd9fa77979fdc8cb6b475bf1","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-4cf0224-202310250900.0.tgz","fileCount":283,"unpackedSize":4685845,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB4gRlAxhOHTXqBc+MaN8AhGHOHKxMN+06TALGEipbrWAiBYIMVqvqytWdQBQyUT2yl0VG1CErTnWG3yNeq1Inc7dQ=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-4cf0224-202310250900.0_1698224529723_0.9371738791511457"},"_hasShrinkwrap":false},"1.12.6-4cf0224-202310250905.0":{"name":"@flowforge/flowforge","version":"1.12.6-4cf0224-202310250905.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"4cf0224ebf9316920eae3adf3cdf6e29bef56c69","_id":"@flowforge/flowforge@1.12.6-4cf0224-202310250905.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Q1kUb6vlIfrgOfYSdrpxxbFGoc5w3KqmrPRS/2KeUneW94mP6zSRF3GId6B+gEQIiGtJ5dYzy/+2tH4qjUSHcQ==","shasum":"5ea066f0b699de8e2cee3df3934a380fc83a1eff","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-4cf0224-202310250905.0.tgz","fileCount":283,"unpackedSize":4685845,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBigg+ZS1SVJxyv0LC6em0vdPAO25okXP3Pvaue16X2UAiEAmQuhSLgta14/CRoV6qNrpE9Cd2IimTz7fisfN81ADVg="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-4cf0224-202310250905.0_1698224850721_0.050945060906352424"},"_hasShrinkwrap":false},"1.12.6-4cf0224-202310251022.0":{"name":"@flowforge/flowforge","version":"1.12.6-4cf0224-202310251022.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"4cf0224ebf9316920eae3adf3cdf6e29bef56c69","_id":"@flowforge/flowforge@1.12.6-4cf0224-202310251022.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-HotF0LGjD5DRHMzcZm/Ss9KFu0U5OBZN8Xkm3awHe/luT4vWkTZVY3wg2U7hFJ83on6jHCOYjrDJl2Mkv+0irA==","shasum":"6aceb5589d0a73182ff8e5e263a8e215d98f2e90","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-4cf0224-202310251022.0.tgz","fileCount":283,"unpackedSize":4685845,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFq0cpEZ8Dxjm8r4tOX1Clg8VnTGHPvVqvTmQkymG/gBAiBnCdhgyusO7g2BzUHgdIqOWaUTeGZ8qR4SHXENI5MmwA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-4cf0224-202310251022.0_1698229478516_0.14422346238009198"},"_hasShrinkwrap":false},"1.12.6-76a1abd-202310251241.0":{"name":"@flowforge/flowforge","version":"1.12.6-76a1abd-202310251241.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"76a1abd73b03839552cc37f759ea230e22f1a68b","_id":"@flowforge/flowforge@1.12.6-76a1abd-202310251241.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-JutXd9vEt3avgbrtt5savqPKdowWZiJ85ltEZHkOK0O5HVLfQoaQOVSxfH/f6CfZsuwyjUkQ7u6KWFzBCIdLMQ==","shasum":"57011c2e9fd3fcbb68c289a214bb8f024c6a0817","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-76a1abd-202310251241.0.tgz","fileCount":283,"unpackedSize":4686132,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6sn8NrdVB8UJkLtc61opuzBf1XWLxWH5zZPcTW13iLAIhALz1V9OOZ24v0avOjfZNPeMGMz8bGmZO8X0Y7G7Trda9"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-76a1abd-202310251241.0_1698237805935_0.49736764143054724"},"_hasShrinkwrap":false},"1.12.6-76a1abd-202310251244.0":{"name":"@flowforge/flowforge","version":"1.12.6-76a1abd-202310251244.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"76a1abd73b03839552cc37f759ea230e22f1a68b","_id":"@flowforge/flowforge@1.12.6-76a1abd-202310251244.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-FWtIOgjm8EB0yzO0IxfcxNkpX74q3j7qPEF/97isnwtEeZ+6Ec4JyTASNCbi2Y6Y4PoUDxa6bTdH19wHmBrzVg==","shasum":"ea343f8abf3d4f991da025dbfcc94a5894ed3b47","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-76a1abd-202310251244.0.tgz","fileCount":283,"unpackedSize":4686132,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICXHsKmT+a7zmY6/A1H+NYjC79wLr1zBkgAWV5JpKlfcAiAUu3AEGsW0GessTix3/FMOLLhchdsZIbBiS1eIyspJgg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-76a1abd-202310251244.0_1698237968433_0.5002959694542362"},"_hasShrinkwrap":false},"1.12.6-76a1abd-202310251249.0":{"name":"@flowforge/flowforge","version":"1.12.6-76a1abd-202310251249.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"76a1abd73b03839552cc37f759ea230e22f1a68b","_id":"@flowforge/flowforge@1.12.6-76a1abd-202310251249.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-naw+THopP2fAhP3Lz+7UgU/6N+EH37Pqk4sK5p1BB3MewTQdnGumDZL/gXmp9zxuDLx4JsgTvNF3R5ZIGBRhDA==","shasum":"4b3c0b9e5776939f5d51c355b416b7df56584966","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-76a1abd-202310251249.0.tgz","fileCount":283,"unpackedSize":4686132,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPxveBcfzHdsWXB3gZkfJGkMUJMZER8GiGIh01ZKvWxwIhAKd2YA+oRKqS6O/SfxDuUPfiBCnrn5Edjd3jjA5cbcrT"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-76a1abd-202310251249.0_1698238236420_0.11370685325695784"},"_hasShrinkwrap":false},"1.12.6-76a1abd-202310251320.0":{"name":"@flowforge/flowforge","version":"1.12.6-76a1abd-202310251320.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"76a1abd73b03839552cc37f759ea230e22f1a68b","_id":"@flowforge/flowforge@1.12.6-76a1abd-202310251320.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-fjArglDkh5Z9wYZGHr1xrVZylEDzhJRouJhC3y7PnRPm9dUTQ2IAgrAaR41VecUqLVkOVhse28FDRM7YguNEyA==","shasum":"2b15d49a1147e9003a51122e100e2aa77351b947","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-76a1abd-202310251320.0.tgz","fileCount":283,"unpackedSize":4686132,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfq0W5GlL8OyeWq5ylXcdvrxIE3b1P5XbCcCSW31FnmAIhAKPf8GjWv79NunpSjKC3rHvIvkMdZhcGXNVtqlrOVnZQ"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-76a1abd-202310251320.0_1698240126091_0.9564022090310902"},"_hasShrinkwrap":false},"1.12.6-76a1abd-202310251328.0":{"name":"@flowforge/flowforge","version":"1.12.6-76a1abd-202310251328.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"76a1abd73b03839552cc37f759ea230e22f1a68b","_id":"@flowforge/flowforge@1.12.6-76a1abd-202310251328.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-jQY9G36j4EyPJQIQZu7IzH5umaLKlUQ2YPewc9c4G6CYHo10Qh9aSQwNw2MpF93IDcRdvfvdMkFx6N3qJz2kFA==","shasum":"f9870dc8112b3916ab9e88d42fa9aaa730be981a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-76a1abd-202310251328.0.tgz","fileCount":283,"unpackedSize":4686132,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9V++QL/4yJsx9HjjEFxRl4rRAtiWR5jr8X6B2cmnMRAIhANoykprgttWo+XJFJKBZ6EBvh8kWmyQvj5D2BHsa2lTX"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-76a1abd-202310251328.0_1698240573498_0.4879155469922538"},"_hasShrinkwrap":false},"1.12.6-76a1abd-202310251346.0":{"name":"@flowforge/flowforge","version":"1.12.6-76a1abd-202310251346.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"76a1abd73b03839552cc37f759ea230e22f1a68b","_id":"@flowforge/flowforge@1.12.6-76a1abd-202310251346.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-KAFJdAey4N1gaHySR08yBtP9b8jrFJGxrPXLp4GMLHNe5FpRYJC0BmJmVkrr3KryVOyeVJl0VvMk2+FXA3DSqw==","shasum":"b4b0a8915066c2ea9d0959c79581f1855d3f1498","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-76a1abd-202310251346.0.tgz","fileCount":283,"unpackedSize":4686132,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsMppZY3w1lXboyYFD7uZE0axp3tB3THLdPbGB8vGdzAIhAP/6Xs9o+f1rPokhEQuNb8W9tGIASac0TYRgKuV0mEDw"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-76a1abd-202310251346.0_1698241688929_0.21808135850884702"},"_hasShrinkwrap":false},"1.12.6-e4c789b-202310252227.0":{"name":"@flowforge/flowforge","version":"1.12.6-e4c789b-202310252227.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"e4c789bb25f0ce984b02859185e5b4c0a4801013","_id":"@flowforge/flowforge@1.12.6-e4c789b-202310252227.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-NTe27KAHl5oz9TUoA9G5u60OG15RDmf8DOfDzZz9NLnzIjcTnpWqsBKbMifurqFD7fgMdZDuGOm2ncSZ1bR+Xw==","shasum":"241f34f70fd625de3c2341f14253e67579169236","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-e4c789b-202310252227.0.tgz","fileCount":283,"unpackedSize":4686229,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYooaJtW00KY1VTExRlEss6t2aMxgS9KtXPsXByHk3xQIgEYEPv4+DmBV/pLWiEUuApxUg/4GQgLbeZd3WTyVCtQk="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-e4c789b-202310252227.0_1698272909925_0.9502765597051295"},"_hasShrinkwrap":false},"1.12.6-e4c789b-202310252231.0":{"name":"@flowforge/flowforge","version":"1.12.6-e4c789b-202310252231.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"e4c789bb25f0ce984b02859185e5b4c0a4801013","_id":"@flowforge/flowforge@1.12.6-e4c789b-202310252231.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-UvUtLHJYbZNuvws+XKDYfDC1+SNluzTMmz+FHuSBz/Vq77kTX91VZVxiSVYHDzJ5H8ciwxj7mnK8x+kJ92Gsmg==","shasum":"0f52dc88af1cce559e56633438a674ad704d918e","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-e4c789b-202310252231.0.tgz","fileCount":283,"unpackedSize":4686229,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIATZPfQdPGsFHfDbvv8ZJnKiGz+GSvLSewnDsqQEVhvDAiEAmdcXc2derUZOQZKjIFOqwE3tDcg2CpEX9KUi68xZilI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-e4c789b-202310252231.0_1698273183124_0.8217542036552481"},"_hasShrinkwrap":false},"1.12.6-e4c789b-202310252240.0":{"name":"@flowforge/flowforge","version":"1.12.6-e4c789b-202310252240.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"e4c789bb25f0ce984b02859185e5b4c0a4801013","_id":"@flowforge/flowforge@1.12.6-e4c789b-202310252240.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-eLzxZtzaYcJsxjcqC/C7jY8SvinYHXizdrFUWOOYWYUn3Hd+4qAGY6FolnevUQ89cYA0PsntKqvGHQnqFAdj1Q==","shasum":"71c9c978875e64d30d8844b2de149cbf1d192490","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-e4c789b-202310252240.0.tgz","fileCount":283,"unpackedSize":4686229,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEYO7/WR9cYfWk4NqDq/LQX3wqAINp+CGyQNaEb9tnp7AiEAuwB82On7+YOVakXCAZGQfLlweiTwBWiFvC2UaSzVrc0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-e4c789b-202310252240.0_1698273702320_0.7229575005423927"},"_hasShrinkwrap":false},"1.12.6-ed8dcc4-202310260933.0":{"name":"@flowforge/flowforge","version":"1.12.6-ed8dcc4-202310260933.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"ed8dcc433152926e66169b35b20af4eb6c0e1bab","_id":"@flowforge/flowforge@1.12.6-ed8dcc4-202310260933.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-yBuq7/LBcAzk6RZHHK7JMXZMXZ1ibedBLNVrhNZUr5RgAbrgv/ILOwsOavvb3Qg9YsJAKHNkiiHbYJO4VfwttQ==","shasum":"da29d9136e868f6869702d7dc0b51dff2d1ab07b","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-ed8dcc4-202310260933.0.tgz","fileCount":283,"unpackedSize":4686229,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqdhb2fsMk6tw5Fm5X9PtV5dWb+uDe4UpeJct3MdC/WQIgSVIRDN7qV6Nj1NSRFPESaIULgaBnrXJsiziR+sKD2oE="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-ed8dcc4-202310260933.0_1698312910800_0.9980504381339232"},"_hasShrinkwrap":false},"1.12.6-ed8dcc4-202310260936.0":{"name":"@flowforge/flowforge","version":"1.12.6-ed8dcc4-202310260936.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"ed8dcc433152926e66169b35b20af4eb6c0e1bab","_id":"@flowforge/flowforge@1.12.6-ed8dcc4-202310260936.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-u/xPWibhEr7w3TpEPXLNHf0MPoW6YicsXbXe0Csgpa4QEqN29dC7cmou5+j/I2fKROL+VifPJZAAjKnCmxUCwQ==","shasum":"a7c1403465a8a12779e627c9fc464ae584e7a5cb","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-ed8dcc4-202310260936.0.tgz","fileCount":283,"unpackedSize":4686229,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqnBnE82zWzl4Q2u5yaqyTtZ2k9M01MrJINGZOCmW+bQIgC2UMp7n1/WLnBdd8jXq2GZBLlgRpjjRCzwOMNdeAyCA="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-ed8dcc4-202310260936.0_1698313114013_0.18936808715075393"},"_hasShrinkwrap":false},"1.12.6-8b3d7d1-202310260958.0":{"name":"@flowforge/flowforge","version":"1.12.6-8b3d7d1-202310260958.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"8b3d7d1d32b7010b5a878dc48db0acd0f12c7157","_id":"@flowforge/flowforge@1.12.6-8b3d7d1-202310260958.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-LF9QrD1Zss3rdacquGrrX0GMxxVTIo6BOm6g6xW1ov0XU+yfhbdGdprzMvTi1HN+4K1QRMj6bZ6wHQNuoVxCig==","shasum":"fbf1761067510b585dd7f2cbb3217ae124289e55","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.12.6-8b3d7d1-202310260958.0.tgz","fileCount":284,"unpackedSize":4686529,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCK/jcloI72hb+Ho/2U2P9C7afpecZ+Kg0472V3MBindwIgG2lbJouyCLcFMoKEfgg96fqEe0fpULTuVhtvYa6DFB8="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.12.6-8b3d7d1-202310260958.0_1698314387839_0.6145431267445505"},"_hasShrinkwrap":false},"1.13.0":{"name":"@flowforge/flowforge","version":"1.13.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.13.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"gitHead":"53144322be6401082b5a88737394be36cdcc7bde","_id":"@flowforge/flowforge@1.13.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-UY00msF13T1o03LOxE6v4WUiqGX9AD0dkGG8fivL0MpML9XnvgTJfcaRBM4nM+7Mu60Qq+lrvVFfruUUHyXIfg==","shasum":"62bd8972ae5c6bcd6199531e71de3abdf428c855","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.0.tgz","fileCount":284,"unpackedSize":4686174,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAkkP70mVyV6FCsX1FSFgyboyRNM9ATOeXv+FmXwaKCgIgNH0abBLOAmp2tOULrWhw7FqJvutNqLPkcC7Tau82kpo="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.0_1698314831867_0.1784963800980719"},"_hasShrinkwrap":false},"1.13.1-5314432-202310261007.0":{"name":"@flowforge/flowforge","version":"1.13.1-5314432-202310261007.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"53144322be6401082b5a88737394be36cdcc7bde","_id":"@flowforge/flowforge@1.13.1-5314432-202310261007.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-EX7SpsIoQpeRWfsiiIaC/TkCReCbSCaVFsqlQ/axPSdEzmk4UDDfIihKxO1oLlbJi1yH6fprvjpA2wmwDN+Wrg==","shasum":"773d461350cd041aa40712d59c08197042e19298","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.1-5314432-202310261007.0.tgz","fileCount":284,"unpackedSize":4687694,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbOsVT+Xg4Re+CyDT4R9IsnHriulWOVJGIBzQCIFKKmQIhAMKxGGjTqYSPZ2VPzGxuVwxG3YpYKQnkC9Qs0B0GFCar"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.1-5314432-202310261007.0_1698314974101_0.38889846127476635"},"_hasShrinkwrap":false},"1.13.1-5314432-202310261015.0":{"name":"@flowforge/flowforge","version":"1.13.1-5314432-202310261015.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"53144322be6401082b5a88737394be36cdcc7bde","_id":"@flowforge/flowforge@1.13.1-5314432-202310261015.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-0ny7QLRwt55aPbXBQfuWX8UWMBj9A/heSppISpTMaFWwj79lMJKtEzIDNir2FDW5RKblgek84wTKaRD5YU5HJg==","shasum":"f7f543a70121779e0fb8bfd6906e98a911069011","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.1-5314432-202310261015.0.tgz","fileCount":284,"unpackedSize":4687694,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClKSJJRfp2QufFnlyh6jVfV38Ic83++Yy3rE3OD/70cgIgLKUqF69TOelg1zJ96eFpQVWBo2You6cmOGpSkGUkt9Y="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.1-5314432-202310261015.0_1698315464844_0.5212725227258963"},"_hasShrinkwrap":false},"1.13.1-5314432-202310261018.0":{"name":"@flowforge/flowforge","version":"1.13.1-5314432-202310261018.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"53144322be6401082b5a88737394be36cdcc7bde","_id":"@flowforge/flowforge@1.13.1-5314432-202310261018.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-3uzWR2owbEp2/5bTachBICgbv+3NNAAQ2IUE8b4+xKEw8rfNsyiKTYP+r1gNpRk/ohFKw4EK/PQvvcFIfaDEsQ==","shasum":"9372a7809978297d131777baaa15fcbd05de90cb","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.1-5314432-202310261018.0.tgz","fileCount":284,"unpackedSize":4687694,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH2NgFAWy2ysFubC3U017BhIMObrVaxc7Thd0Gp8Ut6qAiEAvhJLC+EMfNR5OYpIFgZReO5SuddyUn4CrN7+0TZ/Oc0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.1-5314432-202310261018.0_1698315631033_0.00693578233682568"},"_hasShrinkwrap":false},"1.13.1-347b69f-202310261203.0":{"name":"@flowforge/flowforge","version":"1.13.1-347b69f-202310261203.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"347b69f0dd15d98c502442969b054ba146999d5a","_id":"@flowforge/flowforge@1.13.1-347b69f-202310261203.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-VWWYLaVe+qYGtc/GtzbQpZjf2+ohx1IVoVYtAa6dQCRcOYsFcUJq4Lkmz96d11YwKcYXxxO6j0b2TMTrGlPHFg==","shasum":"eebb8487ad94bb5d3106dcd238f4d1c45bc7ab34","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.1-347b69f-202310261203.0.tgz","fileCount":284,"unpackedSize":4687159,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGPZnBzqk4yEzJsGAV877jZO9zxbfjmFPG+AsQ331mdYAiEA5MQHYeMeBK/Rp+nJtTR9ff4KVfJjUa5uqFbYEHifZ5U="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.1-347b69f-202310261203.0_1698321880165_0.25167712874882353"},"_hasShrinkwrap":false},"1.13.2-8a690a6-202310261249.0":{"name":"@flowforge/flowforge","version":"1.13.2-8a690a6-202310261249.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"8a690a6e73aa721bf5a7023be8f4280b043279ab","_id":"@flowforge/flowforge@1.13.2-8a690a6-202310261249.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-QMx25hsrMSRbMWIZdOZNbgENK+PmXQ3xEsj4N7v9t3C2sLzkm+BlOMaJ2Rtez4U5/Os6H6YIc95dv1fB7+IecQ==","shasum":"27f5be6c153235f93e17fd98fc9c1d193a376540","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.2-8a690a6-202310261249.0.tgz","fileCount":284,"unpackedSize":4687258,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCp+xmv3wAM8MATiSvMU1eqngvBOxxr+7wiDhfVyKCDxgIhAODyFl7LdxbEQ/p+eQRpzU+TIPH0w9rr/k7iPJ54OTQv"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.2-8a690a6-202310261249.0_1698324623353_0.9521169375709038"},"_hasShrinkwrap":false},"1.13.2-8a690a6-202310261252.0":{"name":"@flowforge/flowforge","version":"1.13.2-8a690a6-202310261252.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"8a690a6e73aa721bf5a7023be8f4280b043279ab","_id":"@flowforge/flowforge@1.13.2-8a690a6-202310261252.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-cWjfAgqtDo26zbD9K2JyyWublO7Zo/CZRrPOxoNvAgZ1gfMtpoLU4Fw3WOpz9HW0VxaT7q12Qr9NDIQ06K6fzA==","shasum":"0c08613f1b0ef87c04b108a850b0effa49791aee","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.2-8a690a6-202310261252.0.tgz","fileCount":284,"unpackedSize":4687258,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfzjWShJj/2onlg/gr674wJC5UV9MMIP0zO7gHWSHsewIhALnUHlUatPlOHoRZnUmtx5Yj0YWurdf95zpdFpC8feU2"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.2-8a690a6-202310261252.0_1698324844462_0.33329239685876355"},"_hasShrinkwrap":false},"1.13.2-8a690a6-202310261301.0":{"name":"@flowforge/flowforge","version":"1.13.2-8a690a6-202310261301.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"8a690a6e73aa721bf5a7023be8f4280b043279ab","_id":"@flowforge/flowforge@1.13.2-8a690a6-202310261301.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-e4cSMpznyIomE5G2gOVhhP/9IpeSexWx1uyWpSr21ec0Yp9/3zNgvt6CNJB/1I93fnwTe/HhY38IBg0zgCxCrQ==","shasum":"5f274a00a7bf5a8ecb7ea14cd27f6803c9021754","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.2-8a690a6-202310261301.0.tgz","fileCount":284,"unpackedSize":4687258,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEm9XFGPkie+R9yjQic9A1BnJVvz+m3sXk2Hfa1LZkmyAiEAhMqCRcaujFpp+SsJDoI/AqUvoWXQzdr33HAiQeNewxQ="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.2-8a690a6-202310261301.0_1698325369830_0.9602613530772406"},"_hasShrinkwrap":false},"1.13.1":{"name":"@flowforge/flowforge","version":"1.13.1","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.13.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"gitHead":"8a690a6e73aa721bf5a7023be8f4280b043279ab","_id":"@flowforge/flowforge@1.13.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-mNSN+NQVEbHBNTXzWy2SkVoOVN7Y0ibG6nHl3jIHJQFtv/M0juuAStVGrAH75BKQB0A2SSL9+PYcz2LpFncRmg==","shasum":"5d9f75cece78aa345f66fe025369f4ed555f4a8b","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.1.tgz","fileCount":284,"unpackedSize":4685738,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWGqAp4NpRlLOcJRpArCk8bLfuxLDHu3jJNpDIrq7MfgIgOahCIVVdUtI0EDY+yIMd53CIFUt9AMhQAeiJD3aT3Jg="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.1_1698325472939_0.4596601152347053"},"_hasShrinkwrap":false},"1.13.2-1a159ba-202310271511.0":{"name":"@flowforge/flowforge","version":"1.13.2-1a159ba-202310271511.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"1a159ba2bbf6cba732267c68a61f7a61867aca89","_id":"@flowforge/flowforge@1.13.2-1a159ba-202310271511.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ZzBmBL2se/4aGRTy4SoD1eMn/aOYNGDQzciAVaf6u9k3IYPoslgYIVV640NWO9lxvEGOD87pH9IfyRgv7J47YQ==","shasum":"d66a12ed1b9aedcee27b5082e9a69451f8eb002a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.2-1a159ba-202310271511.0.tgz","fileCount":284,"unpackedSize":4687694,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFcwaX2gieofsnoDRfNBmEnrt9h2saLMfxGgC+kZImZNAiBr0Jb7UEdU8vn1Nro0Lt4oUSxkG8jyRFaYKm3j1uLl1Q=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.2-1a159ba-202310271511.0_1698419571398_0.06905186255834983"},"_hasShrinkwrap":false},"1.13.2-1a159ba-202310271514.0":{"name":"@flowforge/flowforge","version":"1.13.2-1a159ba-202310271514.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"1a159ba2bbf6cba732267c68a61f7a61867aca89","_id":"@flowforge/flowforge@1.13.2-1a159ba-202310271514.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-paqRGTAeUH21HGsGVMezhwhuSeipHsrPgrdm+mijNmKwXhaOqnwn5AT7wp8leutrSr9Tb8GFfLypppGvj/5brQ==","shasum":"55e18a2cd38c62904da1dae170e5f9dbd071cf2c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.2-1a159ba-202310271514.0.tgz","fileCount":284,"unpackedSize":4687694,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfrkJeY1G6AJYyDV9H2oDSBzuhf8bla2RDxSCNNuClOgIgOYq5/Tp7MKmnyVohZLoxQO3Xu7GuXmd8UIlE7TmYb08="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.2-1a159ba-202310271514.0_1698419736175_0.8954309997248899"},"_hasShrinkwrap":false},"1.13.2-1a159ba-202310271516.0":{"name":"@flowforge/flowforge","version":"1.13.2-1a159ba-202310271516.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"1a159ba2bbf6cba732267c68a61f7a61867aca89","_id":"@flowforge/flowforge@1.13.2-1a159ba-202310271516.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-j0/M4JJQ+Rc2F1uq/Rvklt2sAYjzLJY7G2JbeInxSzqMS29sFlXaRF/PZIV6JhY3c/2KOHI0bHuP+amIdOPFgA==","shasum":"23118e753cc41ef453eea265f35ebfa499922bbb","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.2-1a159ba-202310271516.0.tgz","fileCount":284,"unpackedSize":4687694,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5bBY5xeabmRGdrUsR0tD+g5c7tBppmT8eIfZXIls+PAIgYCoo9QgzCihwWDCitBsYEnMwK7W25Ko3Uz6QScWc65Q="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.2-1a159ba-202310271516.0_1698419919041_0.7373875616388894"},"_hasShrinkwrap":false},"1.13.2-1fb4c15-202311010659.0":{"name":"@flowforge/flowforge","version":"1.13.2-1fb4c15-202311010659.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"1fb4c157242c151655b2b0f2fe31481cafb5ff91","_id":"@flowforge/flowforge@1.13.2-1fb4c15-202311010659.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-aA7G2l2frIeSe0T7ctn1Zh3m+LMoKT6wo4KA9dEdKaCrKJGdF8cQdycBhHrHMcZHvhMayVDNSRGZ/knDkzuQKA==","shasum":"35379d90b148ce211ae76407df3ce6417cf94436","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.2-1fb4c15-202311010659.0.tgz","fileCount":284,"unpackedSize":4688647,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGU6ErFI5BBWvbnMPIKkK0IpQUBnua/HIxU64yvq+DNwIhAJ38E7hnGPBIxfUuIb/DXGhqXM+Nxfgyr5O9KJ8psfXJ"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.2-1fb4c15-202311010659.0_1698822021966_0.3851401754133361"},"_hasShrinkwrap":false},"1.13.2-1fb4c15-202311010700.0":{"name":"@flowforge/flowforge","version":"1.13.2-1fb4c15-202311010700.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"1fb4c157242c151655b2b0f2fe31481cafb5ff91","_id":"@flowforge/flowforge@1.13.2-1fb4c15-202311010700.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-TLY/qbaOfhh3Veyq3W0nSL6YfQJ7Uhht1JpuYrCP3XT3TVYity3Z5RjJ2I2YYSkxslEg9QUv9N7aI1YOfdcGMw==","shasum":"ef8b9815475cdcbb7de324be1e935a278022f290","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.2-1fb4c15-202311010700.0.tgz","fileCount":284,"unpackedSize":4688647,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHd1j7tnrRf4sjl0iCLgwc8Py7fK11+NeXJE5K5C3P6xAiEAnnyjCwH4QGemOasZGW0QDrcbU59hUO40OyX3pcfCwrc="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.2-1fb4c15-202311010700.0_1698822126553_0.041372545136686645"},"_hasShrinkwrap":false},"1.13.2-1fb4c15-202311010703.0":{"name":"@flowforge/flowforge","version":"1.13.2-1fb4c15-202311010703.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"1fb4c157242c151655b2b0f2fe31481cafb5ff91","_id":"@flowforge/flowforge@1.13.2-1fb4c15-202311010703.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-RlVnDzEDn3OQcBByg61wQR4iy5rZzhfLko77i75mRZIK7DhMGiLAyYZcFulJ9EOSZ7MBLjklhK36lkfwkU9vrg==","shasum":"05c182d11081b5c30fbc4c11cb44ee8db1401613","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.2-1fb4c15-202311010703.0.tgz","fileCount":284,"unpackedSize":4688647,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHnS1QAAKug5hzQmSTOZIWC2i0JhBFEU/0O9uRJG0vwLAiEA4Tsa/RxQvzq3IKsXXEJny4OGOcMohZBP5taRgDKJ9tM="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.2-1fb4c15-202311010703.0_1698822276828_0.6052800865578547"},"_hasShrinkwrap":false},"1.13.2-48218ff-202311011203.0":{"name":"@flowforge/flowforge","version":"1.13.2-48218ff-202311011203.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"48218ff6420a851e1ad735c0d0df89415e411cdd","_id":"@flowforge/flowforge@1.13.2-48218ff-202311011203.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Gv6bDOc0BIVLfwliH/VXEPaaHvJhXI4BbRZ14ilGdZD9CyQU3f2+h8EwbgxMqjD8Pm3tAqxmKngaJUV8mK4B7A==","shasum":"cbe0c556bd794629e573fe37394a4f23477ee967","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.2-48218ff-202311011203.0.tgz","fileCount":284,"unpackedSize":4688676,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDgExPq1vW08aJyKh58SKnnt+3SfdDfz7BGxgjIj88tNAiBO22YM7rNcLuqMz8hcNyLel2V16Pqvhm5dt6PbilxbCA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.2-48218ff-202311011203.0_1698840311281_0.3018783371196363"},"_hasShrinkwrap":false},"1.13.2":{"name":"@flowforge/flowforge","version":"1.13.2","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.13.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"gitHead":"a54bae5e28a1d05299e33fc5628da102dc728037","_id":"@flowforge/flowforge@1.13.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-rz+yVzXqID1NSZjHJF89n7I7L84LYF6xsZs8CAdqMwawF+uZ+I7I8sQWZyc/KmegXf12Qe67J8o0SUShPb7UVQ==","shasum":"db4616c6dd71d61859e141b70f081e651d53d773","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.2.tgz","fileCount":284,"unpackedSize":4687702,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2G8Azst5m0iRzFEDgNLECBYnRovD8LrmsTDYSkmROywIgSJ+KXbZwfC9Peyi6RvjcCnU5Phx0l8IvyxjNpKF65P8="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.2_1698930009721_0.23544646296816119"},"_hasShrinkwrap":false},"1.13.3-a54bae5-202311021307.0":{"name":"@flowforge/flowforge","version":"1.13.3-a54bae5-202311021307.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a54bae5e28a1d05299e33fc5628da102dc728037","_id":"@flowforge/flowforge@1.13.3-a54bae5-202311021307.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-o5VweufZvEE3cxzQ0mNE8WmY0INmelTGPJG0a4Eghu3kYwAcy1jT3rESv4IlXwnyIyZLUIfl5h8S7J7CuvKCew==","shasum":"d2254ecfa26e260b021af2558a964c4f490535df","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-a54bae5-202311021307.0.tgz","fileCount":284,"unpackedSize":4689222,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCE1SwJyN43pbQzKgvy01LgmADlF5vUhAPYLaJcbgrFlAIhAJbk02eWppOlkl0G+q+rpT7PkAy9F8vaSQWFyGcnuGxT"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-a54bae5-202311021307.0_1698930579018_0.2638305913111916"},"_hasShrinkwrap":false},"1.13.3-e9c7bdb-202311030625.0":{"name":"@flowforge/flowforge","version":"1.13.3-e9c7bdb-202311030625.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"e9c7bdbe95e885e80585d4b29747b60836cffabc","_id":"@flowforge/flowforge@1.13.3-e9c7bdb-202311030625.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-7qmLq5P+PL+8Id6A9D4T3HTcWzFlqR2Sbmr5h0EMSv4FHGb70uszDgaBuRmRB9nZC7I1QPnL8eAGWtrT7sTjIA==","shasum":"745c6af2248172c2187ba18799999769fdac0f3f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-e9c7bdb-202311030625.0.tgz","fileCount":284,"unpackedSize":4689328,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgD9TzhVR99DF4rvfe9xaW1LhqDWL+MmvjO+U0hZopsgIhAJ4Qlb1JSop/+S/+/C10r0JUmzhvRrU8bLMsADColyue"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-e9c7bdb-202311030625.0_1698992828505_0.7878038031143761"},"_hasShrinkwrap":false},"1.13.3-e9c7bdb-202311030629.0":{"name":"@flowforge/flowforge","version":"1.13.3-e9c7bdb-202311030629.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"e9c7bdbe95e885e80585d4b29747b60836cffabc","_id":"@flowforge/flowforge@1.13.3-e9c7bdb-202311030629.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-bwG2pAH6MVN99fVLB67QnitTaahNeUInOPAPey+FFpjUfpdPjOmk+t60Mj/+rglYScEwGNTsjhvcJQOuhTRjbA==","shasum":"bad99bdc76daf739846b80ba4f4d35b9d3eaa9f0","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-e9c7bdb-202311030629.0.tgz","fileCount":284,"unpackedSize":4689328,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9h8HpdXDulEeiBfRwShVDhwjj2L2ITGQj8b0WqEn5JgIgCwIohk75ToRgcWT2oG5Xd1XH3TyisxCYXAJNH6dvEX4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-e9c7bdb-202311030629.0_1698993076163_0.6209684972820249"},"_hasShrinkwrap":false},"1.13.3-e9c7bdb-202311061002.0":{"name":"@flowforge/flowforge","version":"1.13.3-e9c7bdb-202311061002.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"e9c7bdbe95e885e80585d4b29747b60836cffabc","_id":"@flowforge/flowforge@1.13.3-e9c7bdb-202311061002.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-TYmxqA6rb6os0B7xgXUYvUC1CAvxb5JUEJ6YIYa2vaHILa3C2IdN/Bg/VCv2jt5z/kfe3dKVwN19V6/dQ51+Xg==","shasum":"f665c4dc6f9be3902346ea0384b23bfe5cf523cf","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-e9c7bdb-202311061002.0.tgz","fileCount":284,"unpackedSize":4689328,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHzjEkhSLnXfkcPjlDdteO/hKRsIal899Kl+OjivAuKsAiEAth/lbWtsTmbBDJxOMcwj6Qj72nmviDia11dBr5HSq4Q="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-e9c7bdb-202311061002.0_1699265044113_0.8870670698748422"},"_hasShrinkwrap":false},"1.13.3-ac1bbd6-202311061115.0":{"name":"@flowforge/flowforge","version":"1.13.3-ac1bbd6-202311061115.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"ac1bbd6cd503f27312f4458db19a3f2af4fec6e7","_id":"@flowforge/flowforge@1.13.3-ac1bbd6-202311061115.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-4g1apmcYxdv5Hwhve4yIwiBi5v4Ld9CBLGu/jLv1ePM6Xuykgmm0cKuQi//EIu8HlAF3uG6n6Dy9BJcvQS3I0w==","shasum":"6985ee3ba80d15b37fa5cf1ceb00a134ffde34ad","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-ac1bbd6-202311061115.0.tgz","fileCount":284,"unpackedSize":4689861,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBDIdsI8fo6wytoMOiG1caRsAdDaoIFrWdAUWoCC4wSRAiBh5Y8VlnXWM9CvBiWtxk0Qv2arHNbosDggyix15eKEwQ=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-ac1bbd6-202311061115.0_1699269377781_0.8785946308737689"},"_hasShrinkwrap":false},"1.13.3-ac1bbd6-202311061117.0":{"name":"@flowforge/flowforge","version":"1.13.3-ac1bbd6-202311061117.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"ac1bbd6cd503f27312f4458db19a3f2af4fec6e7","_id":"@flowforge/flowforge@1.13.3-ac1bbd6-202311061117.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-jzCwdsAZtYRJ8bX4viCjq88FirEn9FN4PHUUydMUGF8VKBrmIP5908MOSzgM922160eNmW3JiOSpEracYKaSLQ==","shasum":"ceb77f3b5d723892cb882088f62c49697b0cd30a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-ac1bbd6-202311061117.0.tgz","fileCount":284,"unpackedSize":4689861,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEw+Q0U3o/sBt/Bdp290biiYTmM7/sAm8nD+TqW2CSW4AiBETnNiiLNwU5E9Dm88u9+7LbSumtPIthB77ImQjFwjIw=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-ac1bbd6-202311061117.0_1699269548941_0.9498607168095006"},"_hasShrinkwrap":false},"1.13.3-ac1bbd6-202311061120.0":{"name":"@flowforge/flowforge","version":"1.13.3-ac1bbd6-202311061120.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"ac1bbd6cd503f27312f4458db19a3f2af4fec6e7","_id":"@flowforge/flowforge@1.13.3-ac1bbd6-202311061120.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-5xpdeRjb3yDSh7JS03ig7CF75c0DmDxs07/u/78htP1gROk1+DzDcLYrLX2Hx6wBQK7CzPSfWX1D02j4RU7yqw==","shasum":"f1f9a42afaa94d565bb706371084c47eaeb73451","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-ac1bbd6-202311061120.0.tgz","fileCount":284,"unpackedSize":4689861,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqTgwGj61TwddTGam1PYjND+5hiDKsJmGYA3AdMOALwgIhAPyZ6uDh6gF+lHvvPTKpLStx673Ne6/75dGbPwg8ouy5"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-ac1bbd6-202311061120.0_1699269671282_0.1396998627918986"},"_hasShrinkwrap":false},"1.13.3-ac1bbd6-202311061122.0":{"name":"@flowforge/flowforge","version":"1.13.3-ac1bbd6-202311061122.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"ac1bbd6cd503f27312f4458db19a3f2af4fec6e7","_id":"@flowforge/flowforge@1.13.3-ac1bbd6-202311061122.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-0vV0qdyBxuVCXzhlF/5nE7fVSiJLOF9Ik456wsgFGO6QJffmIiyNZ9/FAHyOql6PftsKV47Bn+X/P658c1xBrQ==","shasum":"ec42d8b4b5c0c264f1604ea84ad9267fa69b1d6d","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-ac1bbd6-202311061122.0.tgz","fileCount":284,"unpackedSize":4689861,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBUDEuUrWhbDv26ZzzJ01NJYIXvzNhuPd8S8oqmVYvViAiAIAAJeUQ+CRasy1vmuVQsbACzIoCS8j5ZKO0kgqpqQyg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-ac1bbd6-202311061122.0_1699269821815_0.1226880539541062"},"_hasShrinkwrap":false},"1.13.3-8254112-202311061134.0":{"name":"@flowforge/flowforge","version":"1.13.3-8254112-202311061134.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"825411242c2678f4973757cc31efd757ebc5fb61","_id":"@flowforge/flowforge@1.13.3-8254112-202311061134.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-71o9IbBhV32AC5pqTxGpFb0Vr+NB802W/w+KCWjaqjW5/Zl2hxN+S6yU7tgggDlXxcQs5VQdMpSEbZEhHHktyw==","shasum":"426bca0397a5e70ab04f113aa3d0316ea8b03993","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-8254112-202311061134.0.tgz","fileCount":284,"unpackedSize":4691286,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWcMrGa1bQIMOW6AN+ykIChv3RZkD2EoaAadZ5N0yRUAIgIAYQuhlvSVZiSjnjyCmuqA8w14g9Uf612cjNTUP9gAs="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-8254112-202311061134.0_1699270519290_0.015430710918055368"},"_hasShrinkwrap":false},"1.13.3-8254112-202311061145.0":{"name":"@flowforge/flowforge","version":"1.13.3-8254112-202311061145.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"825411242c2678f4973757cc31efd757ebc5fb61","_id":"@flowforge/flowforge@1.13.3-8254112-202311061145.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-NIxJhnYFmM9jey5z1wmCr0OYNS5lZWyQBunigIzHSQGjDNLy4HesAbWAEb0h0bP7wQpBKP0wzIXnLgSzvaDQGw==","shasum":"70aefac1336b1328e9d9c8e8726565b774e89065","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-8254112-202311061145.0.tgz","fileCount":284,"unpackedSize":4691286,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbCkccqD6DTpOOAlAQr2WFTFHgsHH9rKZRwh9vuoh5MgIhAKKig+zmI3z24SVvCFRvQSIoGc4vVxO/zD/hznJyvBTH"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-8254112-202311061145.0_1699271227761_0.5408407396090802"},"_hasShrinkwrap":false},"1.13.3-558216d-202311071126.0":{"name":"@flowforge/flowforge","version":"1.13.3-558216d-202311071126.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"558216d6164d58f5e8367703af68d1e544043078","_id":"@flowforge/flowforge@1.13.3-558216d-202311071126.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-chQbpk/hWe+6nYof9nOnv2YZMIiBzB3YsAXJAbgTVW8bMNM4ajUE4w2Dt+TOwsW71xWzmKO+5RXDFwNgb8k10g==","shasum":"61782cd137c96ae7f3fe543e00ca3965ec4d9605","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-558216d-202311071126.0.tgz","fileCount":284,"unpackedSize":4691286,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBETh6pLJTjs1YdjoW7zPsc6MAJkcdO+31iFzmktty1+AiEAuDOqYrKWgEwipQhROrIZCzm4Jq1HV7qcj8YnIj1aqec="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-558216d-202311071126.0_1699356468997_0.377095416683628"},"_hasShrinkwrap":false},"1.13.3-bb7a69c-202311071131.0":{"name":"@flowforge/flowforge","version":"1.13.3-bb7a69c-202311071131.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"bb7a69c9e345e072781a5c5ddc34b69ad549654b","_id":"@flowforge/flowforge@1.13.3-bb7a69c-202311071131.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-irOHI9vg1wYtBTThjNKgM6933I9aUz/kk8UuchHATX0QokJ+mALaK58FhWYX5lan9YIzNCkubPbpCmL0ujXffA==","shasum":"c5dc4b62bdb7a2cb85c80254564809a5e030a0a7","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-bb7a69c-202311071131.0.tgz","fileCount":284,"unpackedSize":4691342,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGEg/ux3gfKyHi5WXrfvo8tkE19LHERX9vQ7PJsgJ2PTAiEAlfJu3j9ykzB14d9VLtnLzMv4ysPbX8GKw6NciROvtuQ="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-bb7a69c-202311071131.0_1699356740242_0.9580576287727358"},"_hasShrinkwrap":false},"1.13.3-bb7a69c-202311071138.0":{"name":"@flowforge/flowforge","version":"1.13.3-bb7a69c-202311071138.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"bb7a69c9e345e072781a5c5ddc34b69ad549654b","_id":"@flowforge/flowforge@1.13.3-bb7a69c-202311071138.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-9YyryKKkiGogOuWzXhkOkucNvt0FhvOy3cnzQy/zIQHQRMjJ2YSAztngXpeVEGQLWRChI6dFjawEUHZnzwDlSg==","shasum":"2429a7a00af115792f8c9facf9f4347a68e2a26f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-bb7a69c-202311071138.0.tgz","fileCount":284,"unpackedSize":4691342,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCH7RLFpFX0WgHjE0drPayfsku/3hWULRgFM7uZn90FigIgccTaJHzdpbXnTBBkwfv70qEgK5UmN5Ss7nHdarxzXII="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-bb7a69c-202311071138.0_1699357190049_0.2952696200897682"},"_hasShrinkwrap":false},"1.13.3-d108191-202311071436.0":{"name":"@flowforge/flowforge","version":"1.13.3-d108191-202311071436.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d108191d5d097723eca4fb2bb447f078c2cb85df","_id":"@flowforge/flowforge@1.13.3-d108191-202311071436.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-qRqEarvHFK6LsxY/9Mhu+H0hfZOKiW84sCtHiSf+y4BldBkLi3Kz2XFIXzMUhzqLUjqO4lY0EGne7SM2alX3CQ==","shasum":"62c2b53a9067f9b8db9fa9d3b750580fce2a0dce","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-d108191-202311071436.0.tgz","fileCount":284,"unpackedSize":4690905,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNkLUVmILGI8hVHDz3MLgQlIOEz8+dGBJi5SKPaUimYgIhAPA7Bl4nM6gqAJ1UcnWz+3SyUUF3BYsWcXo2v1dA7nJ5"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-d108191-202311071436.0_1699367818894_0.6359142548780989"},"_hasShrinkwrap":false},"1.13.3-cb87873-202311071737.0":{"name":"@flowforge/flowforge","version":"1.13.3-cb87873-202311071737.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"cb8787369aaa71c9fc26bed0e89976a38f252774","_id":"@flowforge/flowforge@1.13.3-cb87873-202311071737.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ekvBts6uq0wG+ANUfTrOIKMEAIc+oaP2lo51ce1ZNpxfk+5saECt/6CKb/qjdCUxZJYK/Fb8SXx6vB7Sey9v+w==","shasum":"1bec8d79f95d53e0e7a85d50d03445a5ab5856e4","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-cb87873-202311071737.0.tgz","fileCount":284,"unpackedSize":4690905,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGbTu7By7/Zmi5z0zGVTZUH0EiXhxVVvEvPRmFDCfGnlAiAYX/u5GoWkROSaNVHmGd9p7qSSCwwwgaF56kKYBGCIhg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-cb87873-202311071737.0_1699378737436_0.6155928390945542"},"_hasShrinkwrap":false},"1.13.3-cb87873-202311081411.0":{"name":"@flowforge/flowforge","version":"1.13.3-cb87873-202311081411.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"cb8787369aaa71c9fc26bed0e89976a38f252774","_id":"@flowforge/flowforge@1.13.3-cb87873-202311081411.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-iNYPM8xU5oLt/pyTkTq6GWAPmB5pCCBY6lQav3Ouen7QyNlaxmhEsvHZDAVQtLEuLrf6FMkf+tPZCjzSI1TL/g==","shasum":"fa41ac1169c4974e0c12558761115d3431c03c83","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-cb87873-202311081411.0.tgz","fileCount":284,"unpackedSize":4690905,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGVYlH0vcE9My6h4NkwwYr3o6zBzqkqCIRLOdJ/tlUUwIhANHlzt3T3ngXFu+lvlNx9tXKbX1JaklflDQPdNhXI5L6"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-cb87873-202311081411.0_1699452784580_0.9918661446476895"},"_hasShrinkwrap":false},"1.13.3-05c6979-202311091558.0":{"name":"@flowforge/flowforge","version":"1.13.3-05c6979-202311091558.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"05c6979f8496c0d28d30e5bded7ee1d2d74dbb25","_id":"@flowforge/flowforge@1.13.3-05c6979-202311091558.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-nRYSZ1bit5WDji3TDlXc8sgnEiUzDqFboceEOblJR9SfgpBdg8c3MRteZswEj2Jk6UPZuyB5+BvtRsBhPot0Xg==","shasum":"7ba71cc5170cd1569b1ccc75d2e6540c79eb2286","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-05c6979-202311091558.0.tgz","fileCount":284,"unpackedSize":4690905,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFpYGystwevnMCSfWV1WoOKJQ+SqjBxzmfRA27ZJGTdLAiAv55ddVLc0090IjlRqeVUlw7L1u4aX75lkuT5gpZu6xg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-05c6979-202311091558.0_1699545623195_0.47703749713500154"},"_hasShrinkwrap":false},"1.13.3-09c34db-202311131117.0":{"name":"@flowforge/flowforge","version":"1.13.3-09c34db-202311131117.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"09c34db07c86c8ad1634132894a45b89b66ecad7","_id":"@flowforge/flowforge@1.13.3-09c34db-202311131117.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ZIKKZCEOssc1TEM/R6T1l8/AOq4jwURxTu5lCVRdoriqXApiJWle9jfd0obFIqZuW/uT5w7Z5Xsty2AiGeLcvQ==","shasum":"515a95f5f02f8d87272fffc614839527819d9cf0","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-09c34db-202311131117.0.tgz","fileCount":284,"unpackedSize":4691225,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/BlCMPLAbFGoxd8ckGGnMDtfqkwNJTQbFJv5RjCsaFAIhAII8vj0jgRoeEq8HAyanYS3+IftL6xP26GK0h5d/CjHh"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-09c34db-202311131117.0_1699874324280_0.3860088843560472"},"_hasShrinkwrap":false},"1.13.3-09c34db-202311131317.0":{"name":"@flowforge/flowforge","version":"1.13.3-09c34db-202311131317.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"09c34db07c86c8ad1634132894a45b89b66ecad7","_id":"@flowforge/flowforge@1.13.3-09c34db-202311131317.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-YEsFTS9cPvSxo8htbNLkY/ZDxgJxDzogvSUsYOG1pPwGMzGuoZi63n4GxnKxu+2a1GWGBEcbTZBuoa+bSrVmvQ==","shasum":"dc682be99dcd16f3891ff6f916523c7498f0c0e1","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-09c34db-202311131317.0.tgz","fileCount":284,"unpackedSize":4691225,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDq0W279KCsmRBj1uLnuBgRqZlhdO4e/JDz5OkAFYtLfQIgJE/paU8jmb/hlrbWoqSLJgvIRm7L2jRSditAtSn3xnY="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-09c34db-202311131317.0_1699881538183_0.366714719855161"},"_hasShrinkwrap":false},"1.13.3-16d760c-202311131415.0":{"name":"@flowforge/flowforge","version":"1.13.3-16d760c-202311131415.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"16d760cad9166b7127b65253f9fb209eae24fdde","_id":"@flowforge/flowforge@1.13.3-16d760c-202311131415.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-zlAz0IJ21v/KQ3tI9VUQzTULwoxsKxSZu1yK7TWpIDHSOLEXQcHs2gK1BkfGAhTxwSlk/TgXkfqz5rHilm/32w==","shasum":"c1c49965aeddd4b4a81e39367f79854ae107312f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-16d760c-202311131415.0.tgz","fileCount":284,"unpackedSize":4694576,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFuu4iJMfUFQaFAKWk1tRyCesgsOPGXE7gKG8sb3z9Q2AiEAz1zS8yoDn7ub6jRDaxa8H0RM5Uo3R3Frl6XcR2IDZsQ="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-16d760c-202311131415.0_1699884957454_0.0942513506164806"},"_hasShrinkwrap":false},"1.13.3-0d5d904-202311131706.0":{"name":"@flowforge/flowforge","version":"1.13.3-0d5d904-202311131706.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"0d5d9047496a15385b7c79888e748984f510f244","_id":"@flowforge/flowforge@1.13.3-0d5d904-202311131706.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-iW2G8ed0xNqdbLs3HFP4KnzqI3jem2ffI9kogFm6QmOHC1DSHEJUcykvtIXd+auYxlQIsOvXDcsQ+0IDCmEFJg==","shasum":"7596db387359246c172af20870a7d94bf99cfa9a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-0d5d904-202311131706.0.tgz","fileCount":284,"unpackedSize":4694576,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzPwOQSItw6L83dCwMfb73hxQ394JBZS0EPq35lMRUOgIhAPV6Yt1q/fFWFUo/QMUDz/v8scBqvErF8x8YNGaXkyx9"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-0d5d904-202311131706.0_1699895275363_0.47744389842586177"},"_hasShrinkwrap":false},"1.13.3-20c42c6-202311140736.0":{"name":"@flowforge/flowforge","version":"1.13.3-20c42c6-202311140736.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"20c42c60cd037a017d31f792a853a96ae8129ba2","_id":"@flowforge/flowforge@1.13.3-20c42c6-202311140736.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-owgusTthtjj3IFw5Boq2uCreL0NdMiiD5bq6AQYICxWfH4AjhWHGCvXusG3Pm//lX76jqmWFGhBXEzwHdgz7AA==","shasum":"d8cdb3235dfd6660c4317dddc1e0dd1d0fb4494f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-20c42c6-202311140736.0.tgz","fileCount":284,"unpackedSize":4694576,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbgz8kFmU7V0TokijwwSe5QqFhiIhS27C03cqeNF+FOgIgXuHt49Wxks9rRdv2jqZAapr0swer4nnkrDIfvRpplFM="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-20c42c6-202311140736.0_1699947438755_0.19876357003182799"},"_hasShrinkwrap":false},"1.13.3-0f4c512-202311140855.0":{"name":"@flowforge/flowforge","version":"1.13.3-0f4c512-202311140855.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"0f4c51254eb7882bd904efe9ef2ddfbb95986aba","_id":"@flowforge/flowforge@1.13.3-0f4c512-202311140855.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-39Y6I5p5Ohi//OWJbn/h7HUNMbkLEBOLtVsk0eBBoVbAjF5zSHtYKoj9PnGWBXuJ7WHa0cTNk/WwUrDNapxTqA==","shasum":"d0a5efc5a9e140bb42e477d630d5b555467e6151","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-0f4c512-202311140855.0.tgz","fileCount":284,"unpackedSize":4694576,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHnNm04GY+dgxCmOB65ivkXJwhPpo//5JrZdu1PZcDQ+AiEAy2XeW4i7ppo9OU3jYwkr/ekp323KB9lDkFcz0ixK+u0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-0f4c512-202311140855.0_1699952186531_0.092557959346528"},"_hasShrinkwrap":false},"1.13.3-0f4c512-202311151433.0":{"name":"@flowforge/flowforge","version":"1.13.3-0f4c512-202311151433.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"0f4c51254eb7882bd904efe9ef2ddfbb95986aba","_id":"@flowforge/flowforge@1.13.3-0f4c512-202311151433.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ffKslEw8lrpnDzFW7PPuPginXhJxpDTWCGNyFkOKdSQ9X2HiEz2d3Z/XDH8FmdOyxPECW8hsxSPtFQJWsER12w==","shasum":"8c0b10c6affed5d13676322347f9989a4480d8a8","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-0f4c512-202311151433.0.tgz","fileCount":284,"unpackedSize":4694576,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEvUDrygwzjHq6q96ShWXbRVl1UP2fL5Md+C91xKzcfgAiAhmqJd9TN9alUBEQqX8GzgqyRE5/vf1akbMquA11tlAg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-0f4c512-202311151433.0_1700058885156_0.43635940088549985"},"_hasShrinkwrap":false},"1.13.3-97dc22d-202311151552.0":{"name":"@flowforge/flowforge","version":"1.13.3-97dc22d-202311151552.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"97dc22d023fd571d73e8327153406cf0887c49ea","_id":"@flowforge/flowforge@1.13.3-97dc22d-202311151552.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-QU0vtNd8+EqXeMxdW+jxwkF5xLfniN7FT7lKsyqvMcI5XaBs+CFHBTpOfA+ODkV0GqIkicWZLjLUu4/Ucy837A==","shasum":"23456f5e1a4ed4da62332f385fb2c076735fa45b","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-97dc22d-202311151552.0.tgz","fileCount":284,"unpackedSize":4694789,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDS2jImjb8STt3srMtrBb5kvs0qqrDiYNamckVr+IWP9gIgQqJsOiDYyG29Ep/Jk8uQLSgPuiuXXmSibo3iEi/jbsA="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-97dc22d-202311151552.0_1700063620879_0.8201601920447594"},"_hasShrinkwrap":false},"1.13.3-9a26477-202311151710.0":{"name":"@flowforge/flowforge","version":"1.13.3-9a26477-202311151710.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"9a2647739ea91d8502ab745317a0c83d9f518d92","_id":"@flowforge/flowforge@1.13.3-9a26477-202311151710.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Vsm8rQoGYSsX40zAVzHyTyXAPLlSJmLlSARq2GmKFRQK2o+S+olK4P/3cbDkiem5AdtzvdZvnnKI8n28bSpQrA==","shasum":"04cefefbdcb69a2e153b57b1087e3d6e2ef1dd9c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-9a26477-202311151710.0.tgz","fileCount":284,"unpackedSize":4694965,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGXKe4nFlKMRNMWJUU2Sel/40HNQrwScuIqdd0x+OgD5AiB/W4rV+Lo9JpAQy5PPBz8aEQ/BQ6oHNxVlELOxUxodvg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-9a26477-202311151710.0_1700068265180_0.8765635761728816"},"_hasShrinkwrap":false},"1.13.3-9a26477-202311151713.0":{"name":"@flowforge/flowforge","version":"1.13.3-9a26477-202311151713.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"9a2647739ea91d8502ab745317a0c83d9f518d92","_id":"@flowforge/flowforge@1.13.3-9a26477-202311151713.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-3fJ+S/hTHG7AKu1DAzClmcuvtOKGAWqmC6z1C8CWEwxWyqbppabotk1yayhCLgN37KVVTCq+BlhuLhtcWKRU5g==","shasum":"b296fcde241b60590abdf804851ffe7e6a8f7914","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-9a26477-202311151713.0.tgz","fileCount":284,"unpackedSize":4694965,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJPWTJG8KjpC6Yw0vUYlxL2jRBK23pkto+PVpA2eirygIhAK1TYkOa5LN1+9jPWOTLQPxjYoAsogpTxYFhKJMMmp5P"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-9a26477-202311151713.0_1700068451996_0.7299068762927834"},"_hasShrinkwrap":false},"1.13.3-80bc763-202311152146.0":{"name":"@flowforge/flowforge","version":"1.13.3-80bc763-202311152146.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"80bc763b7619ddd1c078eed70066c1c7c0d616f9","_id":"@flowforge/flowforge@1.13.3-80bc763-202311152146.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-J5+uR5OuJ+kpUiF13gZlEbUu2BcULtMnVoAr/DlaQD1SiRWv+JTnyXqwfiyrIyc5cjUTq7Do1m4YevFztKvkJQ==","shasum":"9bbd091827ea1f3a742ba225ae0605d08fdb4855","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-80bc763-202311152146.0.tgz","fileCount":284,"unpackedSize":4694965,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/Ajtdr43gxllaBF7JMyxxwn72UejTrcln/r6pE6dwwAIgHZBof4A6qiUObm5tMkIXjxFt/2L4VgCyxoJJMuOihes="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-80bc763-202311152146.0_1700084828372_0.17140267167594514"},"_hasShrinkwrap":false},"1.13.3-674d6ec-202311152205.0":{"name":"@flowforge/flowforge","version":"1.13.3-674d6ec-202311152205.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"674d6ec78107dfd6632fdbbcb5e167e338b1366f","_id":"@flowforge/flowforge@1.13.3-674d6ec-202311152205.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-QSxE8dBp0AsKjm3s4q0IXhNfSEeVoYa4+Zp63LBe0gPb4hSPIyTwnz+SGedRuhgl+G2kpuahUjzBkJAiZF54qg==","shasum":"ba35a885980ef50539e65c23f81a70c7a699cca6","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-674d6ec-202311152205.0.tgz","fileCount":284,"unpackedSize":4697107,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6oXdlZVfjmYZkV2CWTg/WE5j5x04ntwCQHOpeR75BDgIhAK7Jnkmid7gH2B92jHM4SDB5uwKjzNNjyPqYzH0iiTe6"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-674d6ec-202311152205.0_1700085973988_0.9751758302783851"},"_hasShrinkwrap":false},"1.13.3-5579db8-202311161125.0":{"name":"@flowforge/flowforge","version":"1.13.3-5579db8-202311161125.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"5579db88aeb1c380047fbd339f9ea8c5cdd4f9c0","_id":"@flowforge/flowforge@1.13.3-5579db8-202311161125.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-KHpDlbnB77Dzwl/5DhIMtqCfPON117LxOe8dIw5goNSSJFNOuKac9pTsoUa20gP9vO862/Pl1n/6oj11dAMlTQ==","shasum":"b0ef7a89fa3d1879c49de643645b2926dc3cf9a3","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-5579db8-202311161125.0.tgz","fileCount":284,"unpackedSize":4697107,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUDhIww4g6u7f6FFpjaSJo4XJBiyoUNfinu7YsbPKVtgIgVSB6SxGku4pcJCzYSRvLTNLS6IyM1F/rYOwr4bisX/0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-5579db8-202311161125.0_1700133980734_0.5294185040060442"},"_hasShrinkwrap":false},"1.13.3-4bc5e06-202311161148.0":{"name":"@flowforge/flowforge","version":"1.13.3-4bc5e06-202311161148.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"4bc5e064ed10123c29024f84b137382c63af2d66","_id":"@flowforge/flowforge@1.13.3-4bc5e06-202311161148.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Z0mHPM/V44DsKxRBzL2zc0Zia/LM0/50uSKcu2xRN+kM8bmaOYepKXUSGJ2YeMi3jsxOoEbbQe2Bttk+q6aCdw==","shasum":"aceefabe64a68748ce7b7c491a51f4a2abdf9f27","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-4bc5e06-202311161148.0.tgz","fileCount":284,"unpackedSize":4697241,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0T1scUoDfzM128rq6KXZWUG4PrgLlH828C4IyL4/qSwIhAI0XwWTV1f/HnQvPD/Re+sv0/0ntEtul742uNiiYiNwU"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-4bc5e06-202311161148.0_1700135393665_0.22701320392975588"},"_hasShrinkwrap":false},"1.13.3-4bc5e06-202311161525.0":{"name":"@flowforge/flowforge","version":"1.13.3-4bc5e06-202311161525.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"4bc5e064ed10123c29024f84b137382c63af2d66","_id":"@flowforge/flowforge@1.13.3-4bc5e06-202311161525.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-tZ2NNVLm/togj7X82yXdKjmp8Zfc39u4VZZ7ZWJjOkTzYjJtUb9pqk+WI7W2v6FPNhOtYsqgkEnYzhzWVZKxMw==","shasum":"58da0d2681d817018d900b00bd7525ecf71153dc","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-4bc5e06-202311161525.0.tgz","fileCount":284,"unpackedSize":4697241,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDB7CekoMDDy9lRTvE/R6p0cNWqtVzYANg0ppnw8J4WgIhALVT5qU+MVs2/tztWiv/omdt8KWfa0Z+3V2xi5GXmQbZ"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-4bc5e06-202311161525.0_1700148413367_0.6762112414126913"},"_hasShrinkwrap":false},"1.13.3-4bc5e06-202311161538.0":{"name":"@flowforge/flowforge","version":"1.13.3-4bc5e06-202311161538.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"4bc5e064ed10123c29024f84b137382c63af2d66","_id":"@flowforge/flowforge@1.13.3-4bc5e06-202311161538.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-TEhEQlkxUf+d4ruaVxuwMX+A/7p7GoMVFhFtMKjaTymEr+6gGCdIR15KmmW8q8O6X5taszT47Uyt2ryHFz7IDA==","shasum":"4a10b37fb81582ed31c13446c6247d7eb9b4dacb","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3-4bc5e06-202311161538.0.tgz","fileCount":284,"unpackedSize":4697241,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8oN25DoxnPHnFWOUxHGa7YUdV8jtRu36ToqOFp9CunwIgCIZuPc0BDZZ18zQowrsAjDJ/QLuy7BwP82dlw4hXECo="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3-4bc5e06-202311161538.0_1700149163938_0.43376901935456047"},"_hasShrinkwrap":false},"1.13.3":{"name":"@flowforge/flowforge","version":"1.13.3","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.13.3","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"gitHead":"dbd1b1a308832df961b7f18165585cd3c809b2b8","_id":"@flowforge/flowforge@1.13.3","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ycHZMaqJWIhCsm+g/hs+lPQR0jpBQ3+vQiZVtK6oHLnSruAW9pUS+wINGHFgBj9U6K2FvMML96EsqVpKI5kXTQ==","shasum":"fe21a0cf114780a8c3a631379b89d79dafedfed5","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.3.tgz","fileCount":284,"unpackedSize":4697522,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUBZHWin1tr1QHvaDvycv74lw9Tav8TUZrl6xdNhlajQIgZVIISDFVhnI+mP4w5jO/s5KhaITmsjv8vE6cLCcjqI4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.3_1700152438060_0.8887764412250398"},"_hasShrinkwrap":false},"1.13.4-dbd1b1a-202311161641.0":{"name":"@flowforge/flowforge","version":"1.13.4-dbd1b1a-202311161641.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"dbd1b1a308832df961b7f18165585cd3c809b2b8","_id":"@flowforge/flowforge@1.13.4-dbd1b1a-202311161641.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-OvBlR/dF/oq0F69guJ2OZZ5txqumcjWFBZUj9a5dVe3HZyMWjsFBsUtGiAkuvV4f85+SXe8udb3N4wKi1dhy+w==","shasum":"25d428cee4c5104147e3f32e2f229432939c87f3","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-dbd1b1a-202311161641.0.tgz","fileCount":284,"unpackedSize":4699006,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZE2eIZ+p1IcS9J7N3vCy9hg9EUPJXm2Xx5nXyCDXCOAIhANBC4muuU5dAWKaY5m5FC8VmMeXy1xrl7qtj00ELJCbl"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-dbd1b1a-202311161641.0_1700152947082_0.848461104826788"},"_hasShrinkwrap":false},"1.13.4-fb14d65-202311161819.0":{"name":"@flowforge/flowforge","version":"1.13.4-fb14d65-202311161819.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fb14d659d7a9b5295acebd5d9725e05ba382e4b2","_id":"@flowforge/flowforge@1.13.4-fb14d65-202311161819.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-FFNBF2O42NSM7KITKtoI+552tgPpmejGFU+1pl88hdngZOepdiO1qGF7d7mBYyx+Jcn27tY+lM5XgLz+3kHeBg==","shasum":"63e0b4998c69410c774a6d8e2ce6fd1062761c83","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-fb14d65-202311161819.0.tgz","fileCount":284,"unpackedSize":4699096,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHygTTreydA+tFbPCvvAgJKM4OtDnktgvYTA9f6tyntoAiEAtyc03xJwoNEDxuVJYJPxSWfnglj6V4D0b6k50bm69SY="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-fb14d65-202311161819.0_1700158826650_0.9432518834894159"},"_hasShrinkwrap":false},"1.13.4-13a7e55-202311161825.0":{"name":"@flowforge/flowforge","version":"1.13.4-13a7e55-202311161825.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"13a7e55072df1359d949109cea5ee3c5e7651709","_id":"@flowforge/flowforge@1.13.4-13a7e55-202311161825.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-6fqPR6hc+YCCon4kGq345v3GDBNG8/3A3dlN8ctZT9APFUp0Z3jVHEJTCdChx8HMQ75Zg2jDG6P5FHCT3xosdQ==","shasum":"e016be7beb7a7fbe7652dc4393859a67dc075472","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-13a7e55-202311161825.0.tgz","fileCount":288,"unpackedSize":4724410,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvlkN044yWe5arwZUfwTdVFKkSzVxMeiPyp6sXL8GbGQIgNQeHF41xLL16HArLWUMmu19zXbCq2pDd26vzy4N6XH0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-13a7e55-202311161825.0_1700159192879_0.11474257759945683"},"_hasShrinkwrap":false},"1.13.4-13a7e55-202311161836.0":{"name":"@flowforge/flowforge","version":"1.13.4-13a7e55-202311161836.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"13a7e55072df1359d949109cea5ee3c5e7651709","_id":"@flowforge/flowforge@1.13.4-13a7e55-202311161836.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-LODb3ceyTcZOXET3SyXPbmYcZIZQXbR/0qF1wn1XBtYmy+4gvHURHHKVskYl0ixPxZ4MMW1sWLqtLsZBiyM9Ew==","shasum":"43ceb93920fab0d8a3f2d1b9def7929d9f6d59b5","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-13a7e55-202311161836.0.tgz","fileCount":288,"unpackedSize":4724410,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE+0qel2uKoI9qDb1GhPdfBRBKXf4OsRShaujwUfHVZMAiEA9aolGGyhIBCdzNvRiHROwDpQU1PjW+Xmglca2fdPKTs="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-13a7e55-202311161836.0_1700159855070_0.8581203740913592"},"_hasShrinkwrap":false},"1.13.4-086d457-202311201031.0":{"name":"@flowforge/flowforge","version":"1.13.4-086d457-202311201031.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"086d457a9dc3e382e58e7829a486fbba6209eafd","_id":"@flowforge/flowforge@1.13.4-086d457-202311201031.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-wwgVOh/6kkFFhNVZUoKkLKyFn2rfbUlIPQvePz5nbL1kYbwNTHl/aSjNbtLL2dOFfX3fkZUEHq/myw5Dubk7dQ==","shasum":"21772bd095f73a1ef320035450d939bee6a24ce2","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-086d457-202311201031.0.tgz","fileCount":288,"unpackedSize":4725314,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEfEXj5oxdr0fMLO6UlRuNn4P1lrF1gqddPzye29YXwlAiEA7gqLH0mP/uRRAh0lnrnfn6vsTPW0iBklSR07KmDtSic="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-086d457-202311201031.0_1700476358182_0.40161701952582685"},"_hasShrinkwrap":false},"1.13.4-79cb728-202311201444.0":{"name":"@flowforge/flowforge","version":"1.13.4-79cb728-202311201444.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"79cb728e123d7441544d68c76c48345b8a699e71","_id":"@flowforge/flowforge@1.13.4-79cb728-202311201444.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-KnUQniw34u0he8L048LzPBJonZ1m9FIr6oLv/mF/n7wt7B8SkEx+l+P8jNRYaaAOOEp/6a3JvTlBhHs8Tw3FCA==","shasum":"abba920208b37c105508d32a7bee25582748d129","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-79cb728-202311201444.0.tgz","fileCount":289,"unpackedSize":4760356,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDiEqtEwqS4w/h7Y81BTxIw61b2K+5rw+cYTVfEHsVgIAiEAzr+sadCpcdW18TeZ2vGDKFYxp96Ht7ZPlNOQFQHdsdw="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-79cb728-202311201444.0_1700491499399_0.635284655219239"},"_hasShrinkwrap":false},"1.13.4-434e016-202311211612.0":{"name":"@flowforge/flowforge","version":"1.13.4-434e016-202311211612.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"434e0168154ea7e1cc9fda15fb339ac967baaa27","_id":"@flowforge/flowforge@1.13.4-434e016-202311211612.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-2ae23DEDLHdJ6prxp0LtrTywA/i+gK0O2P4M6Sr4iNo08kYDIP2yv6GX36fNZJGbPCN+4cgkKhGqUL/y1AK4FA==","shasum":"aff836cfef4f26c3fb0b0b22b8d20b60c50ef764","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-434e016-202311211612.0.tgz","fileCount":289,"unpackedSize":4760356,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDARqNHqRL7fcXlo+jkk3FK6lVRli2Y7EwKDrWuGkhqagIgTWAvzLe/Le7wpn7qPEt1fY/XI/QuyceKZSAYtvJpX9I="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-434e016-202311211612.0_1700583202316_0.010509803976509469"},"_hasShrinkwrap":false},"1.13.4-0500dc6-202311221018.0":{"name":"@flowforge/flowforge","version":"1.13.4-0500dc6-202311221018.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"0500dc63c7d745dbfc508d84a76dea2cdb1fb83b","_id":"@flowforge/flowforge@1.13.4-0500dc6-202311221018.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-1GeldEwWp2i7ut79PeY+iUSuw2U/E0W7hnLVVuDEAHvxZoJBTO+qQqn6W+84kvWsfmn2C3APALGlceFL43corg==","shasum":"3d0def5345c9137f200c1698bd3a33ca21222e76","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-0500dc6-202311221018.0.tgz","fileCount":292,"unpackedSize":4803558,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFGbijEVORQ1TeDb+XXP7l75myA+G58IMIbiK415rvI4AiEA4cYxwBpSWxXStkSL0s2n5XH8G/CW3xx8ekyyE7PGGAo="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-0500dc6-202311221018.0_1700648384502_0.0871479752673312"},"_hasShrinkwrap":false},"1.13.4-0500dc6-202311221352.0":{"name":"@flowforge/flowforge","version":"1.13.4-0500dc6-202311221352.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"0500dc63c7d745dbfc508d84a76dea2cdb1fb83b","_id":"@flowforge/flowforge@1.13.4-0500dc6-202311221352.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-53aLmySYq5w7adc8t5JKWpqBzlrtzyFnpcMrIuUDmcQmhYgme1+CX46vMCaCJ5Q5YFpkouuY9QkkotEFVIa8KQ==","shasum":"d943d9bf2b9269a945fa8bff9a4e424df9725f2c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-0500dc6-202311221352.0.tgz","fileCount":292,"unpackedSize":4803558,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIERwc9E+y4MxdWLQDaZ+yzuOJr7EeQd/5vIxV6Qx+/UrAiEAzg6cJEXxUKl6q8dNKkgan3HONIsTtMAzLfi1jmn3oO0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-0500dc6-202311221352.0_1700661231870_0.2832814188128814"},"_hasShrinkwrap":false},"1.13.4-0500dc6-202311221359.0":{"name":"@flowforge/flowforge","version":"1.13.4-0500dc6-202311221359.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"0500dc63c7d745dbfc508d84a76dea2cdb1fb83b","_id":"@flowforge/flowforge@1.13.4-0500dc6-202311221359.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-BD6VvTQ+x8kdTwyD6tFxSO66+FCbzk5ETstynv28ZTbK4z1wgLyzPCFyZiEaqV/x6A1UBAvIregg90ZQyCrsug==","shasum":"f41588ab8ba23c23aa76a07255ba53b565b93b53","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-0500dc6-202311221359.0.tgz","fileCount":292,"unpackedSize":4803558,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDO2F3YolAxQQd/YBAE22wo+JWUubLFVAacHGbQNebLnQIhAP3nxQylHsJVH7uUndQPo8Y+oy2/VZXrJd7AUSXgfNQx"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-0500dc6-202311221359.0_1700661647215_0.307481987349034"},"_hasShrinkwrap":false},"1.13.4-a8273f1-202311221556.0":{"name":"@flowforge/flowforge","version":"1.13.4-a8273f1-202311221556.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:unit:frontend-watch":"vitest --config ./config/vitest.config.ts test/unit/frontend/**/*.spec.js","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a8273f1a634b915b0493896e8568fde69ffd8df0","_id":"@flowforge/flowforge@1.13.4-a8273f1-202311221556.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-xkJch7qRvMY4Nol93nMAo3Lr8TdA9DMlgWeivjH3Qq/nCtUGMuORiWpmr+Qz8KcFvUKxfWO5js6zoYED94lOqg==","shasum":"9241c437b2a87c15043a4b55196cadcf6c85b9c3","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-a8273f1-202311221556.0.tgz","fileCount":292,"unpackedSize":4803554,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRO5h1P9hYcpZ+2PLxKImzzp+CJET0WseZWDlgbcQC2wIgeZrq5cYpdIpyvmmoDGqroqz6mhWO4kjhvpaS0fxdlqw="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-a8273f1-202311221556.0_1700668670521_0.4323980971622674"},"_hasShrinkwrap":false},"1.13.4-3e06ee3-202311221604.0":{"name":"@flowforge/flowforge","version":"1.13.4-3e06ee3-202311221604.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"3e06ee3178e2a55e3c031a0ef7ace37d99204d6e","_id":"@flowforge/flowforge@1.13.4-3e06ee3-202311221604.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-VtvGYwb+AkV+FfUpUunY9M1FudUHoOAuJVNPC2d0zCkJryn8zAYYan8U+94gjkQxegEaI9ismyRjlpyc8FedGA==","shasum":"0994b31d7d8e52828451b2c410be70b017a49f6b","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-3e06ee3-202311221604.0.tgz","fileCount":292,"unpackedSize":4810251,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAzCAp6kYWwSlivlwcQwJ45nQ8ztZ4UeZNXWFWJvOrtIAiEA6F8+wGmu/dB4vdRZ0APN165iwabubFzhEEub4lIdzPQ="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-3e06ee3-202311221604.0_1700669109781_0.26128164999947767"},"_hasShrinkwrap":false},"1.13.4-3e06ee3-202311221616.0":{"name":"@flowforge/flowforge","version":"1.13.4-3e06ee3-202311221616.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"3e06ee3178e2a55e3c031a0ef7ace37d99204d6e","_id":"@flowforge/flowforge@1.13.4-3e06ee3-202311221616.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-CaI4e+OV1j7/GHPoZpcVyAD0MVx0hesgNx76JynkdbYGkWFM4gyaVT5uEp7wJYW5zPTnEX2jQ1Bmg5GhtWnN0w==","shasum":"649ab8afd3db4c4cffd0667e05f059997b25ad80","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-3e06ee3-202311221616.0.tgz","fileCount":292,"unpackedSize":4810251,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBfCeQo93VqxzskLafdB5w9ovwFz6MbqgnbPu+rZ+oGAIhAJqT+gXrwkMo0P68j7KCoD1eH1kACkzaagHJn+kBSl2/"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-3e06ee3-202311221616.0_1700669863946_0.7840716876870364"},"_hasShrinkwrap":false},"1.13.4-df3aaa5-202311221649.0":{"name":"@flowforge/flowforge","version":"1.13.4-df3aaa5-202311221649.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"df3aaa5a1d4f004c98a658dc6bc6ef8c64b1af5e","_id":"@flowforge/flowforge@1.13.4-df3aaa5-202311221649.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-tEH4/qzhPR9I4Ppacm3s20j/Q9rK6Dwt1MTi+GKRNIEqXKq567xANO7LjrHcRR+vnhgapYuNoCwoNFhbKVplaA==","shasum":"64de34aefad68fcd378f7baa26a6f68b9fdb76cd","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-df3aaa5-202311221649.0.tgz","fileCount":292,"unpackedSize":4810251,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCd6n8yOAXzEnqAxxYLvitrSB/ve56n4fe40AvEQ1S29AIhANY2DHT/p17Zw9zVhhy61/bHiaStSxZtHQ0wIwrJUlBr"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-df3aaa5-202311221649.0_1700671818763_0.8392546667637284"},"_hasShrinkwrap":false},"1.13.4-7a76e42-202311221824.0":{"name":"@flowforge/flowforge","version":"1.13.4-7a76e42-202311221824.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"7a76e422d451ede19b11c29a24f359ca180ff2f7","_id":"@flowforge/flowforge@1.13.4-7a76e42-202311221824.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-IaXm7O11fALhYOnvT0BPM7G6KSCGjXsmZ48CCQ1TSgAgnQQkVFsvXTqYlikXGTK+utDXVDT3yTBMEBRkAXLspQ==","shasum":"a2121f27d367a0e0359cdbb2f3c8bc7272583069","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-7a76e42-202311221824.0.tgz","fileCount":292,"unpackedSize":4815575,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFtfR/tuS1B2Qu6mlRP4Sv39qHIKT8J/LXVzt7qIo7rAAiBd2x3mJQI9MYa1tZR6ir3cZSfko+/f+ZpiNxc4ZYW9QQ=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-7a76e42-202311221824.0_1700677546644_0.8507621488455406"},"_hasShrinkwrap":false},"1.13.4-a5535e5-202311230955.0":{"name":"@flowforge/flowforge","version":"1.13.4-a5535e5-202311230955.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a5535e5f7cf9421722fd56e56d0496655c275ae2","_id":"@flowforge/flowforge@1.13.4-a5535e5-202311230955.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-yHz4Zpo14rCTeS7ylnTt54zUzWIJUd3na+2o80Ht9H9uz8IiQrMpLF0KTvBl4y49eMatJRHwubjQL0c0OIZdzQ==","shasum":"e9cb273dca8154818681ba7e07d60a007afc28e2","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-a5535e5-202311230955.0.tgz","fileCount":292,"unpackedSize":4815953,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyyqe7ngCLwIniqTQ5Cv9uPTrbTYvH77U2nLcOTmiKZAIgL2C6cldPMVst+feD8BQj1F6IrADZuhx5ksKwjfTG+6I="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-a5535e5-202311230955.0_1700733417989_0.256715012146735"},"_hasShrinkwrap":false},"1.13.4-a0a6a7c-202311231011.0":{"name":"@flowforge/flowforge","version":"1.13.4-a0a6a7c-202311231011.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a0a6a7c45109e2d0cae9f0fc7fe2dbe4a0de1b3c","_id":"@flowforge/flowforge@1.13.4-a0a6a7c-202311231011.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-m3gIVTD1YA+Xa+qEEY+9fv/w5thn2boW7puKpcSHlp/aKbRqY+Igdg4hKkDgbN/EbqEv0YNswM77qJa9h3UK4A==","shasum":"4ccfdfead6a081083ae6ab69e55865a7b5bd11b2","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-a0a6a7c-202311231011.0.tgz","fileCount":292,"unpackedSize":4817374,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaXF1TcIygrk5nEjG88QHWtsDsyJ6JdQybKWpJj8ES+wIhALxfanKgUGgTkB9NxRINWnfiMyjqXCWaJI3wtDiVbh2d"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-a0a6a7c-202311231011.0_1700734331826_0.2594697392335501"},"_hasShrinkwrap":false},"1.13.4-a0a6a7c-202311231021.0":{"name":"@flowforge/flowforge","version":"1.13.4-a0a6a7c-202311231021.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a0a6a7c45109e2d0cae9f0fc7fe2dbe4a0de1b3c","_id":"@flowforge/flowforge@1.13.4-a0a6a7c-202311231021.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-VARW6j/2KCPPNmdKZ+IhCV/lUFYNXleTNowlIzVQfTYnxOyC2smue76p649mkkmOc3puO0Apy/HoZu1yiIeuYQ==","shasum":"90f0bd56262ff59d0d5f0e60157b88a3b3434301","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-a0a6a7c-202311231021.0.tgz","fileCount":292,"unpackedSize":4817374,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICTrPav8K2LJ8/AnbhMFRmMvi1j6FRlkQH+eL+LUrjPEAiEA7bj4gpqtXVc9j34RYaZFqo1LUyrHJp1PBP4RChIybOY="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-a0a6a7c-202311231021.0_1700734926605_0.7574413444651218"},"_hasShrinkwrap":false},"1.13.4-def8c3e-202311231106.0":{"name":"@flowforge/flowforge","version":"1.13.4-def8c3e-202311231106.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"def8c3ef3229236de02beaaa025f98d64b097e76","_id":"@flowforge/flowforge@1.13.4-def8c3e-202311231106.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-D6Hnq9UbAzOma73/MZzSeRhEe0q/YscoCwxAN6Ikk+pHdxPPNPVkHUZgiX0gGAAwhVOnXLj6b8UXZ83ttbxBuw==","shasum":"630e5cd9e4b17b73131f8551e3c8539cd1a3aeb7","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-def8c3e-202311231106.0.tgz","fileCount":292,"unpackedSize":4817394,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDF/Hc874ONTiBqrJM6TRNyP6zw8qhzwfBt5MbH7Gql8AiEAnVmNwbY0c8cwmb9MF3soREypIDsypD0m4zgxTB/yfpI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-def8c3e-202311231106.0_1700737625242_0.20861672059718117"},"_hasShrinkwrap":false},"1.13.4-8ba4ff8-202311231146.0":{"name":"@flowforge/flowforge","version":"1.13.4-8ba4ff8-202311231146.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"8ba4ff8afa26d70fb68be713664c7f65232bc787","_id":"@flowforge/flowforge@1.13.4-8ba4ff8-202311231146.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-6EQpbZoWSWqz9C7ej/QhRbUQ9i6pYIwNRJrNDf1F6IoJdheTVleRNSCFWjq4IDiZPBoP0xyXYLe436gOjSBwuw==","shasum":"1e2fd3de3ea7366997b8934184a20e2a8b911615","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-8ba4ff8-202311231146.0.tgz","fileCount":293,"unpackedSize":4822149,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwzS2OIU5RqcB6RkvCFDhMXa+LZBx2MJy46rGbbiZTJgIhAMDe+7MEi8r4lCcJdb3TTz4vV2kubWNlk3X0WlyBZL5d"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-8ba4ff8-202311231146.0_1700740057403_0.6431210969445593"},"_hasShrinkwrap":false},"1.13.4-8ba4ff8-202311231147.0":{"name":"@flowforge/flowforge","version":"1.13.4-8ba4ff8-202311231147.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"8ba4ff8afa26d70fb68be713664c7f65232bc787","_id":"@flowforge/flowforge@1.13.4-8ba4ff8-202311231147.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-e53QuAyoRcfjdLbisslLO6nW8MnIV/nySqX4mqHBYZvFtQGr2hl/rAq7f3ItZFF49B910D+O9fUMvoxgymX3wg==","shasum":"0dc84d233c339ffac3891cf6f5f08da519b62cba","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-8ba4ff8-202311231147.0.tgz","fileCount":293,"unpackedSize":4822149,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCzvF1X+0R2N6H3FUQuX4vdH19VM53TmApQJAb+sfleAIhAPRj4kKZtDY0To1Apub5862MV8EfkRzJQ6isUdLytU6P"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-8ba4ff8-202311231147.0_1700740128532_0.5953697104856834"},"_hasShrinkwrap":false},"1.13.4-6ef912a-202311231206.0":{"name":"@flowforge/flowforge","version":"1.13.4-6ef912a-202311231206.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"6ef912a41228c842867147db5d3439782d73db65","_id":"@flowforge/flowforge@1.13.4-6ef912a-202311231206.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-zalEQaXTZbySf5GRqvbcmC8+dBai3b7mXfI6vLoVQyQ4nsH8z+wxPFmUx2Ii0QVT57AhTWcuTC3e0a/EOvhj2Q==","shasum":"6e434c6f44cb0fdc462eefdb296a3feb70f11a89","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-6ef912a-202311231206.0.tgz","fileCount":293,"unpackedSize":4822149,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICmvytBTLZZt5NYkbtpieNWLXbqG7gMzmCfnPtiqnDu3AiEAuJamWLCh0bwoqpnxp30jjM4eGJyc02aeVbhbzjMJAJs="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-6ef912a-202311231206.0_1700741257388_0.2207080226163174"},"_hasShrinkwrap":false},"1.13.4-6ef912a-202311231212.0":{"name":"@flowforge/flowforge","version":"1.13.4-6ef912a-202311231212.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"6ef912a41228c842867147db5d3439782d73db65","_id":"@flowforge/flowforge@1.13.4-6ef912a-202311231212.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-zUaw15p3qGpgML6t0ZWwjNNmSmgj5CxvpZDjwGeP2RjzzUrABi73bikArIlCznwkUSLh/iWxKK8eAvlT9irV6Q==","shasum":"39d82584cd86220798b0f6ba769e2cbf72390d6c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.13.4-6ef912a-202311231212.0.tgz","fileCount":293,"unpackedSize":4822149,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQE9MKo+AGHKybzw1a8e/d1+Q9CEDl3udiK/TZgbdxdAiEA5qwwMvgMa9G8rD3r/9Nql5eiclFDo1/vt0WEpaNUX5s="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.13.4-6ef912a-202311231212.0_1700741588352_0.12821467662481"},"_hasShrinkwrap":false},"1.14.0":{"name":"@flowforge/flowforge","version":"1.14.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"gitHead":"523916e0440ccb9bf53557456b45d9a4e6fab652","_id":"@flowforge/flowforge@1.14.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-0VdLsTen+woxJXRUNz0ujPQqdW2ufBvtaO2+VoskQhHnndWudG58z3fxsXQuu4FlFhvuDWDeMLna+TQDIUPIrw==","shasum":"67d1d393b6d576809d919c1903dd313c7f989f4f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.0.tgz","fileCount":293,"unpackedSize":4822000,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFqMRcqyfNrgRZ1/DRwkn+CVvHaru2jgleq76k5g68wPAiEAuXMlf9A9f/T6VMJHb7UXOtuTi82GkASPJFceXESZnhY="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.0_1700741939860_0.9994643485725399"},"_hasShrinkwrap":false},"1.14.1-523916e-202311231226.0":{"name":"@flowforge/flowforge","version":"1.14.1-523916e-202311231226.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"523916e0440ccb9bf53557456b45d9a4e6fab652","_id":"@flowforge/flowforge@1.14.1-523916e-202311231226.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-mfTNDGjV2B+Udx/1//lmtpP/oejoQtDWQsSswnaXcx1bkYlmvtVQR2ehgtloICBAjhD1VDVgOOK0uFG1PpxKvA==","shasum":"242db71fd39d742c9ae53e4b7d0c3d9e3c041656","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-523916e-202311231226.0.tgz","fileCount":293,"unpackedSize":4823480,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmE8UT2Y8wOpOZFvtr2v4IirNbOz+wPhFtvT47e954bAIgLxOv3F5pBgP2JDPe6FAbPdcbwbSjgCvjhQedGIjiLSw="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-523916e-202311231226.0_1700742473351_0.027915638248457553"},"_hasShrinkwrap":false},"1.14.1-f68d9bd-202311271319.0":{"name":"@flowforge/flowforge","version":"1.14.1-f68d9bd-202311271319.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"f68d9bd39571dec72bf040442f048876e131b233","_id":"@flowforge/flowforge@1.14.1-f68d9bd-202311271319.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-4SUxjQWeSLHqGH346md6yNiPRu+qRRv/bh7KybNvfNdzJI1gmqokNdeZZeLsKSBgj2thGGgM5nAPmk10gUYcvQ==","shasum":"a966805497c6b529e4067861fad17292ea610924","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-f68d9bd-202311271319.0.tgz","fileCount":293,"unpackedSize":4823480,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7gv711a/hQYp+ugEAO1rge+el81Ts5dBaXA/X6U0hxAIhAN4RxemiErMqX5J8iG3Oef4d8IvVES/XBficdXs+6oX+"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-f68d9bd-202311271319.0_1701091226396_0.8641763403956833"},"_hasShrinkwrap":false},"1.14.1-f68d9bd-202311281727.0":{"name":"@flowforge/flowforge","version":"1.14.1-f68d9bd-202311281727.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"f68d9bd39571dec72bf040442f048876e131b233","_id":"@flowforge/flowforge@1.14.1-f68d9bd-202311281727.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-agdoDGZIcwcBRZH4/6ZQK49iwPkrx2amDnPCqMIGsu3rw+RCTxOkHH/jieTa0oIfIIuNW2h+CU5nC0a0o8nHTA==","shasum":"9b213bb19ee17a6f06d85b70fdf7dc78bfa5324e","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-f68d9bd-202311281727.0.tgz","fileCount":293,"unpackedSize":4823480,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBB1oJ1RF7qmoD7eG8vhQMYgJv+95xJcqwVGRDZMbmk/AiA7+L0XBlfSJ8ZyXHCDpgwtbGylxWOquurhqhp/oFvipQ=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-f68d9bd-202311281727.0_1701192534412_0.9629582731293049"},"_hasShrinkwrap":false},"1.14.1-c3d94bc-202311282023.0":{"name":"@flowforge/flowforge","version":"1.14.1-c3d94bc-202311282023.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c3d94bcea139c38c63b38688f956e277c7d15be2","_id":"@flowforge/flowforge@1.14.1-c3d94bc-202311282023.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-SS1RYxhz0BGiIAnt3qUqDvpa60N+1kB5q5762MVI9HxioGKQmWxo6f/hRRK2FvmJdsrDpMcU3JfUy0ybq1c3rg==","shasum":"251961dd363006262ff489598c73742819169307","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-c3d94bc-202311282023.0.tgz","fileCount":293,"unpackedSize":4823480,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHqKcB9XnPj0h/4zlq+OOWyE3fMZDkm9z1QhvGKoJrT2AiEAyn+81FmX6G1gjDQ7DSdM94wkVL4WoJJxDV0cmr502vs="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-c3d94bc-202311282023.0_1701203035946_0.5974784075245694"},"_hasShrinkwrap":false},"1.14.1-579f14a-202311291333.0":{"name":"@flowforge/flowforge","version":"1.14.1-579f14a-202311291333.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"579f14a6b5e413febc32b79faee7f70c89c6b67a","_id":"@flowforge/flowforge@1.14.1-579f14a-202311291333.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-1Gxzdca/ogm7SVhx297+pwgJComiFkXmDpey+6b/fP0ELf8TLUiqXi0ElJnQFBY/F6Uo/+zw+AHwJN5f8b3UEQ==","shasum":"8ea4cf2954260ecd672e282af8360dda8770a1a7","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-579f14a-202311291333.0.tgz","fileCount":293,"unpackedSize":4825116,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBoUpOIIyohy+RLAWinFpJoBpDXeAMpsuJphc3ARrELsAiAhR4WQxLyRZocL3KQagNyq89jT8a5iQdIEQITvyv01uQ=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-579f14a-202311291333.0_1701264887283_0.2778133951926325"},"_hasShrinkwrap":false},"1.14.1-579f14a-202311291338.0":{"name":"@flowforge/flowforge","version":"1.14.1-579f14a-202311291338.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowforge/localfs":"nightly","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"579f14a6b5e413febc32b79faee7f70c89c6b67a","_id":"@flowforge/flowforge@1.14.1-579f14a-202311291338.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-B39jlhzQ54idQqzmlh+yl362NKTirX4MolmJ7jfEj8jFiYS7c+shZ3SZ4Oq4j9SsE4bPsjQiRw9xrkaK2+RYkQ==","shasum":"ef3e2bb90e012659a905d867cb55bc036d4fbce7","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-579f14a-202311291338.0.tgz","fileCount":293,"unpackedSize":4825116,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFvuGwcQ/4xbOJ1fcKgn5vFIVyMPu8vuJOpyjfQQhPSUAiBWMDSl273v3TGqRZrEILitPJaHYr/ePgV9tUq0iYQIqA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-579f14a-202311291338.0_1701265165302_0.7938420070423762"},"_hasShrinkwrap":false},"1.14.1-2004f93-202311291454.0":{"name":"@flowforge/flowforge","version":"1.14.1-2004f93-202311291454.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"2004f93287e69712235317225d00cbcd8bd88de1","_id":"@flowforge/flowforge@1.14.1-2004f93-202311291454.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-d6fQai67KRgPH9Qk4c0ww1PgpBem3wdFoWIF4S+tZyRRRWvOrPENdTP+a6tHC+ob9o4OlzIGcgPM4OatMcWe2w==","shasum":"f3f18969b4b89056f2c73a6283a9136588bdbaee","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-2004f93-202311291454.0.tgz","fileCount":293,"unpackedSize":4825296,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAtap+PZbjE+arrrKWqy3ayG9C2X3LXJlXnHRstz1JXjAiEA3VTA8c4kZsZvA0r1TzH7KKXrbXEji2WcbpCcC3bXSJU="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-2004f93-202311291454.0_1701269746805_0.06670366480262668"},"_hasShrinkwrap":false},"1.14.1-957c175-202311301517.0":{"name":"@flowforge/flowforge","version":"1.14.1-957c175-202311301517.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^9.0.3","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"957c175e6042293e42ddcd6abb81e9ee1ff575f1","_id":"@flowforge/flowforge@1.14.1-957c175-202311301517.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-H6H4aOF+mgb3YSEIlZOIP72FEJIbU5GYxyjm+4W8T+CuvkCsLgjZnQy/WvWKKeMsXaYu7UEUCCD8h46jZM2ICw==","shasum":"0aef8d3ef702fee1e90827f3ffe060fe68e8cbd9","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-957c175-202311301517.0.tgz","fileCount":294,"unpackedSize":4839819,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBIApQQ06HOrboYHnCzIMe7qXjrsbNhvJ6yQMVpVSPjZAiEAmr7shLC7RgkwyJOR+ZXQT/+7K1irvoNbDAssFrPeHV4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-957c175-202311301517.0_1701357483144_0.0754726735974598"},"_hasShrinkwrap":false},"1.14.1-1f10793-202312010915.0":{"name":"@flowforge/flowforge","version":"1.14.1-1f10793-202312010915.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"1f10793d5e654601e0e782fc6751109b999a7b8f","_id":"@flowforge/flowforge@1.14.1-1f10793-202312010915.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-omBTETNWUGTytY1qp0ZG0Me/JsMi0MUPLQ+XIDXDhATZ0+x0hp4TAHILqjtT/WucPYNE9UUW3YBXVKS4KF0neg==","shasum":"6fd74744b898de6ff94d20687341f7d06199e031","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-1f10793-202312010915.0.tgz","fileCount":294,"unpackedSize":4839962,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6Xh0Ynly2puoQOTy2kVs+gPEr2P69Nrjlm9MFNBcQAgIhALcaFzpuWMPhnf4hLBCYSvHWLN6aXsSqWduDzckAroxj"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-1f10793-202312010915.0_1701422189825_0.7484596783383755"},"_hasShrinkwrap":false},"1.14.1-1f10793-202312010919.0":{"name":"@flowforge/flowforge","version":"1.14.1-1f10793-202312010919.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"1f10793d5e654601e0e782fc6751109b999a7b8f","_id":"@flowforge/flowforge@1.14.1-1f10793-202312010919.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-h8xuVO3gPuoRRGMrZqwX7RogNdFworRcRw0E0ePFtvptwhG3YH3emrZcDfp8Rn7ZELmWcEJ9NGEZaAoHR7aEwA==","shasum":"4c7431afa0e97bbffff9a0e6466f64bd10663635","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-1f10793-202312010919.0.tgz","fileCount":294,"unpackedSize":4839962,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAkw5/Iwwj6JgoEOxDtiod4nCc+tXXoSQBERU836cZVaAiEApg3CLbTbDJJZ34ybeygg/NgX0EKWf3kCqKx5LHqW/44="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-1f10793-202312010919.0_1701422406577_0.636422328501598"},"_hasShrinkwrap":false},"1.14.1-1f10793-202312010922.0":{"name":"@flowforge/flowforge","version":"1.14.1-1f10793-202312010922.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"1f10793d5e654601e0e782fc6751109b999a7b8f","_id":"@flowforge/flowforge@1.14.1-1f10793-202312010922.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-vSFF54odGYQ7K6AwdHKIeRuPpGqk2HL2oNkj04zYdjhj4C1qe4UyzBdENTFI+ssT7l6lhJaFu0P5eFOvi8uLWQ==","shasum":"4b54e7d3742ad7a914ec484ff840a3b21ad38713","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-1f10793-202312010922.0.tgz","fileCount":294,"unpackedSize":4839962,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH6DA8+y90B6Aoj36pd4kYf+YEnQkNscLiLkqZS5EnZDAiEA37GQ793YioFGr6fJSw1qzWb65w16kw5FEKdAyMTgtJU="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-1f10793-202312010922.0_1701422626541_0.8423432195736693"},"_hasShrinkwrap":false},"1.14.1-1f10793-202312010926.0":{"name":"@flowforge/flowforge","version":"1.14.1-1f10793-202312010926.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"1f10793d5e654601e0e782fc6751109b999a7b8f","_id":"@flowforge/flowforge@1.14.1-1f10793-202312010926.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-putOw0FrZnqSsBj863STMILnkSclPSGqkRugEXX11qBXNcJyxd4uC7KZe7qKs8mC03laWd/rYIgdSbyfScHz9w==","shasum":"bef442031d348d8b1789039056c8afbacd293461","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-1f10793-202312010926.0.tgz","fileCount":294,"unpackedSize":4839962,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDAW8vC3OXRj/pBs48zwGrS8sBgaikfeweBNFlijJRSfAIhAPm1y04dq+jJmr/xRkJ2Ev5VV+oFlnNlApORLjwV0/A5"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-1f10793-202312010926.0_1701422824960_0.8651541643199876"},"_hasShrinkwrap":false},"1.14.1-c4796c6-202312011138.0":{"name":"@flowforge/flowforge","version":"1.14.1-c4796c6-202312011138.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c4796c62200c478b86de009a4589876896f7bb29","_id":"@flowforge/flowforge@1.14.1-c4796c6-202312011138.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-KE3/jSZnYJ4stYhMMYFSlHGoTvVPyyrBk3YFlIPciR+4gD5CdL+mHl4dSWmW95inHo5rGbhYJTEM524mJwsMmg==","shasum":"8ff2b418b523d016ea56232e769ecc057e797afc","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-c4796c6-202312011138.0.tgz","fileCount":294,"unpackedSize":4839962,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICtvZbjgQatIDRnmawB55mEfcWQ3/u8/tzSbMp2oqpN9AiB7V62RSq9YJ7MHAbSdJkZYr+WbVBuZbhqkwiRkLn9gMA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-c4796c6-202312011138.0_1701430754702_0.8806052620767488"},"_hasShrinkwrap":false},"1.14.1-c4796c6-202312011416.0":{"name":"@flowforge/flowforge","version":"1.14.1-c4796c6-202312011416.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c4796c62200c478b86de009a4589876896f7bb29","_id":"@flowforge/flowforge@1.14.1-c4796c6-202312011416.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-rQ2bQCa/xWiqpkcuOHITM2bvVwxcJYyNxoKJN+mDqrk6Wrl4q/r7QTAsCmzvtRwWrzzMCSJkDhS8eKyuIYNO+Q==","shasum":"2a7cb8761e12d97df6d33f10aa581a071c4bf6f5","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-c4796c6-202312011416.0.tgz","fileCount":294,"unpackedSize":4839962,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+VNdtx768mGLCrxitaRlcUx638io4GE/899jZ6VMS6wIgD1jmESeAHjxX8MrtD6dHO+H+GpYQXU3oOVUevXRNj94="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-c4796c6-202312011416.0_1701440280110_0.7101993669574924"},"_hasShrinkwrap":false},"1.14.1-58430be-202312011430.0":{"name":"@flowforge/flowforge","version":"1.14.1-58430be-202312011430.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"58430be56b87b1519c7e09c524f56443617b1e55","_id":"@flowforge/flowforge@1.14.1-58430be-202312011430.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-JnPy0aHNuh2RWu23gc8Vkl/ff+S0ss8mcNz6hfj/HK3ELrCP3vmBuHJExXkGMdHEKPuU7GqLX23qA8qebDzfUw==","shasum":"49514bdec8bef5340719006b2d6520c93f626daf","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-58430be-202312011430.0.tgz","fileCount":294,"unpackedSize":4842972,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGrV1srVYovBNItf+Y6pQDRr3XjIMK4wY1AwZ6uXRnlNAiEA8dy5FpLU+0I1/iourZGomwIrQ0oFBteH14q4pECboDE="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-58430be-202312011430.0_1701441071978_0.08677265095190378"},"_hasShrinkwrap":false},"1.14.1-58430be-202312011437.0":{"name":"@flowforge/flowforge","version":"1.14.1-58430be-202312011437.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"58430be56b87b1519c7e09c524f56443617b1e55","_id":"@flowforge/flowforge@1.14.1-58430be-202312011437.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-X+T1koUZ9Z/P3lNsMMc0qL35z1b0Diut2tnpnEKazjStlbJpBwaiFUGuU0+OhGbKqUPhXxbwjwbPFuxMZArJYA==","shasum":"e7b36d5a717dce4451fce1603d266c659cc9c1ce","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-58430be-202312011437.0.tgz","fileCount":294,"unpackedSize":4842972,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAWeYoA9Jf05FIiV8IXLUhV3DyshDs+KwhOBTRwmEKIgIgW+R2JMMw16+2L3uSSXkHwThpFB2rtqB/cdctgtmG8gI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-58430be-202312011437.0_1701441489001_0.7048159630011677"},"_hasShrinkwrap":false},"1.14.1-58430be-202312011444.0":{"name":"@flowforge/flowforge","version":"1.14.1-58430be-202312011444.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"58430be56b87b1519c7e09c524f56443617b1e55","_id":"@flowforge/flowforge@1.14.1-58430be-202312011444.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Du2LJv8D4yvO8Bb54Vltbqe0bbK/iyjLDHIrbXWl/ZsKlafmrBkorFLrs8UeL2wGJyXTW+naa7VwRB+dj082Eg==","shasum":"49b538aedb4dc1e7451b7f6816acedb5298fd4b5","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-58430be-202312011444.0.tgz","fileCount":294,"unpackedSize":4842972,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICwoWGUrjRnYxV74D6u+yg3BoBcqqv+zuXszbxj3XyKOAiEAmTGg3QZaKfpBgdUEb6ugCvby94xGmF6rR9BSsljLlBI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-58430be-202312011444.0_1701441957803_0.8180844292923266"},"_hasShrinkwrap":false},"1.14.1-244ffc2-202312011541.0":{"name":"@flowforge/flowforge","version":"1.14.1-244ffc2-202312011541.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"244ffc2ee66c582ba37eb396400a857ee55cab70","_id":"@flowforge/flowforge@1.14.1-244ffc2-202312011541.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-STflGUyQ7GPWrwzhzCPEArIStrV6jmfrzgAofghO/e0adqt7fSuTuxW6YfWcHxM7GQVNhMnG48CV66YMzCpcEg==","shasum":"b21ce0ad7d3a84c57b70b5c508c00f7f1907f366","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-244ffc2-202312011541.0.tgz","fileCount":294,"unpackedSize":4846696,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGwhV1+U7K/NOfwhlGUvt0VZ0Ys9NMYkSAeKNLwzGT1YAiBHNvp6uGx0KLBv1VPFP55McnzBPo0aO6VCa+jbQqWO2w=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-244ffc2-202312011541.0_1701445348805_0.7840131975755635"},"_hasShrinkwrap":false},"1.14.1-71360b4-202312011554.0":{"name":"@flowforge/flowforge","version":"1.14.1-71360b4-202312011554.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"71360b49b3e059ae24cae9b9c291b9ffedf1a5b1","_id":"@flowforge/flowforge@1.14.1-71360b4-202312011554.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-5SYnEpawqW273xHV7IbGyLCuCDkpvKklehao6ersU8e9q65lRRiztAc4X6LB6JFXBVNAxqVID1qd98JksY+32Q==","shasum":"9a1fc5bea199cdf9789ad64eb248ba28aaec697f","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-71360b4-202312011554.0.tgz","fileCount":294,"unpackedSize":4846811,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCV36QTcEmTZnv7hygyqighQOYn8ZxA09CU3LgBKfp2KQIgLteDJAPnJ0HHxMvElPWOPqBY/YO3zX0SwZSCbu2Sp/M="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-71360b4-202312011554.0_1701446119487_0.027055743323825876"},"_hasShrinkwrap":false},"1.14.1-9591df1-202312011612.0":{"name":"@flowforge/flowforge","version":"1.14.1-9591df1-202312011612.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"9591df1d1590190b583cd84841cdac6d493c5509","_id":"@flowforge/flowforge@1.14.1-9591df1-202312011612.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-oajFPrWSmG80IxY6Fwtwx6v4QWRorx6VovKns8su7D+fWgKXJIKGVwDGW2AEolgw2jBuDk8C31QJiYZtKhj5jw==","shasum":"56746437a8117f68685857ad260faa41b3bb34f8","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1-9591df1-202312011612.0.tgz","fileCount":294,"unpackedSize":4846922,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCF0Y0xLJWE+hjK/oZ9jXJ3lcsa78qreZMpVKLaW8QeZwIgZgm5jpM/0J2ce1XysU+693d6YiGweXehWp6SZP7zEws="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1-9591df1-202312011612.0_1701447207266_0.43750651728367695"},"_hasShrinkwrap":false},"1.14.2-b38e134-202312011751.0":{"name":"@flowforge/flowforge","version":"1.14.2-b38e134-202312011751.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b38e13477e9b9c8d9805e2c52e5466e02857976b","_id":"@flowforge/flowforge@1.14.2-b38e134-202312011751.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-gpl9zYDRFcFTPYvU3AidrXnKq9U28McVPw/KnLYGWs5u4ynV2bkOdJCIB/fyabyd4ahlRR5NmtJya67AYgRm+g==","shasum":"80fb60daef81ffc0f02cd78d6f5a8ce957a2924b","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-b38e134-202312011751.0.tgz","fileCount":294,"unpackedSize":4848134,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtx8FLDmEEYqJDXRnDQJDdL/4U55MXUStZCr00B/jnQgIhAJQ2UKh8de6wk0IXQ+kTFifdrDCx/+BaKbndqZfp3KSA"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-b38e134-202312011751.0_1701453127226_0.09247132268066993"},"_hasShrinkwrap":false},"1.14.1":{"name":"@flowforge/flowforge","version":"1.14.1","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"gitHead":"b38e13477e9b9c8d9805e2c52e5466e02857976b","_id":"@flowforge/flowforge@1.14.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Q0gQetiOxKdBE7oUHruXVXmnAVEUI1UnItnIFTN85Q3bZR6RMnAj+5HxkBbeHMQoC6d27wNUSWJM+ODOmkIDvw==","shasum":"5fe0dff8e885818b7375626c6a95b580aa46e20a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.1.tgz","fileCount":294,"unpackedSize":4846617,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICNLC2FbJ1NJW38ErAjK/AG4yEO4tt41QcOh4w+GqbdjAiEAh7HWa64XRDbDRV3gVFR/2bk3k8jIs6wHP/Sl7Sb8WQw="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.1_1701454348210_0.49618850974261886"},"_hasShrinkwrap":false},"1.14.2-b38e134-202312011833.0":{"name":"@flowforge/flowforge","version":"1.14.2-b38e134-202312011833.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"b38e13477e9b9c8d9805e2c52e5466e02857976b","_id":"@flowforge/flowforge@1.14.2-b38e134-202312011833.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-12w2un3xjkn9OFtJc6Lh/7kYSR0BAOvYbVNIXau5u7GzgeNl7YTUSVeE9l2hCmk37e0gL0mnIJwrY+qW1yYMzw==","shasum":"07196ec69b71725e4a098d83f521edee7bcc3831","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-b38e134-202312011833.0.tgz","fileCount":294,"unpackedSize":4848134,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJ7P+pHTcC1yYqg8RSUuLVvGG9oHVocXAoxD+CyB+aWAIgEGtMJER3MLyUcE4EeBaxQ5C8uQWmQ4jlsQYqbpuR0t4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-b38e134-202312011833.0_1701455659842_0.7478360459231126"},"_hasShrinkwrap":false},"1.14.2-127faad-202312012115.0":{"name":"@flowforge/flowforge","version":"1.14.2-127faad-202312012115.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"127faad263b6b86e38e9b17d1c7056d93384be00","_id":"@flowforge/flowforge@1.14.2-127faad-202312012115.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-gFuHwPGOsylYnXP8oHvwljACaEp7oXSdf9c7xETCUocNd2DsbiBp1ZLPBJ7KZe7K+GEx0TQgrLDo7pJK5xuqgQ==","shasum":"af1e267714be0db47201bfa177d5ea07048d81f7","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-127faad-202312012115.0.tgz","fileCount":294,"unpackedSize":4848134,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFIiBPWHor4CDTBZKFqn8/l5Wj3BZTaYj4MLIXZ8DOjVAiEAmJl/JWFdvbJwfxIFnkSGdaALVG0u4mgTBtSBlmslFIc="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-127faad-202312012115.0_1701465399638_0.7476805260922903"},"_hasShrinkwrap":false},"1.14.2-127faad-202312012120.0":{"name":"@flowforge/flowforge","version":"1.14.2-127faad-202312012120.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"127faad263b6b86e38e9b17d1c7056d93384be00","_id":"@flowforge/flowforge@1.14.2-127faad-202312012120.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-xAzRPXf+sFwtC6NR8tZKc5XS/ZD9EL4g67XCSOTkgVYi/0G4iv8OZOFTHLA0J3MzxVv610jjjHd4cEqDFEA82Q==","shasum":"cad0fefb7885791d57b6459f947980f7b5f5114d","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-127faad-202312012120.0.tgz","fileCount":294,"unpackedSize":4848134,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/Fs2EYgBS9LTnjbqbv0iC2/IriYb4M2m/TxAfgOYSbgIgaeL8dbIuW9wgcxtyLcqgV0NkKgVPx1DD1D7l5Fsokf0="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-127faad-202312012120.0_1701465681092_0.7266625087445273"},"_hasShrinkwrap":false},"1.14.2-21e0a7a-202312042053.0":{"name":"@flowforge/flowforge","version":"1.14.2-21e0a7a-202312042053.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"21e0a7adf6c443e0fb01d2624cc09b8c59c743f7","_id":"@flowforge/flowforge@1.14.2-21e0a7a-202312042053.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-SDX1cmnbM29CvDi1jyVT2cee086JCPOthbGmts9QirLZhAuEyC40anpLvOnC+5IVu7FksMVlCQxfnGInSqjsKw==","shasum":"e5a9c4edbae0a81bcca0f88716013699b74bdc94","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-21e0a7a-202312042053.0.tgz","fileCount":294,"unpackedSize":4848134,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuSjiZ/zaoAhUO6CjSIz6To1nQrFcn6pcMU6sAvHZXwQIgE0iyqLLTpqjj8DhzXZzntFPbnqKoDeEt9N8gXl0/Oqs="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-21e0a7a-202312042053.0_1701723263726_0.49440220550604064"},"_hasShrinkwrap":false},"1.14.2-21e0a7a-202312042058.0":{"name":"@flowforge/flowforge","version":"1.14.2-21e0a7a-202312042058.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"21e0a7adf6c443e0fb01d2624cc09b8c59c743f7","_id":"@flowforge/flowforge@1.14.2-21e0a7a-202312042058.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-6LP0T7frEfdWHoTshnzwHb+klxgHPjcuePl2XGFXcZ5Yn9NuwykTbycqxm57Mqk423q5+2DQ2JVaUIQZaULFGA==","shasum":"8e17c5310dde39dd8fe065ee994a51b3065cb96c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-21e0a7a-202312042058.0.tgz","fileCount":294,"unpackedSize":4848134,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF4FuknuGRyLT+/MNGVPVN7rMIlKRU1aE5nUQwRcqISZAiAzd6sxpn1lJ92Yx1LCAYM5UAEU++t1NZrb6xNHX92d8w=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-21e0a7a-202312042058.0_1701723554069_0.24878576083871162"},"_hasShrinkwrap":false},"1.14.2-d9f6d6c-202312050916.0":{"name":"@flowforge/flowforge","version":"1.14.2-d9f6d6c-202312050916.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d9f6d6c50e1e46d29659bd76a0b5dad1d7750256","_id":"@flowforge/flowforge@1.14.2-d9f6d6c-202312050916.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-HRk8Sd93B5qkrTyfO9kmzIdm4bnr9Y+g4VvwHsKvYJ4YQ9S9/oP71nYMsBLXkGVBGjsO3pXKjSa3mzMrtZm/dA==","shasum":"ae8b166fd8e851b51a013abd96ef75ba03bd1055","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-d9f6d6c-202312050916.0.tgz","fileCount":294,"unpackedSize":4849762,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMqVrkgIrSztRTVRAqtKs6MukJndK6qk69NubbYM92agIhAKBfSUDVxJoLpi9WFOzNCDzZ7QGF/qxzaf1D4CsaRT7x"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-d9f6d6c-202312050916.0_1701767874792_0.9854851535289388"},"_hasShrinkwrap":false},"1.14.2-25f2cbc-202312051758.0":{"name":"@flowforge/flowforge","version":"1.14.2-25f2cbc-202312051758.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"25f2cbc367e60189ce83185cf6c8bc6429165f92","_id":"@flowforge/flowforge@1.14.2-25f2cbc-202312051758.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ho2P3wGDu8PI/U+qUqTiDvcTmDt4tT3wt02jpDj2O0zR/Elip4H80oYXOS63/qoyET6fLGmjZWDu/aMQ3cxM3Q==","shasum":"12da683cf3a69162eef48e366b7ceeb6dac00e99","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-25f2cbc-202312051758.0.tgz","fileCount":294,"unpackedSize":4853749,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+65FpuW3HIHFvctmcrrutuw39qcOcwHn1CcHUfYcFzwIhAIjWdMzc8+x+IEhOdv23N0+JuRvKTMfAHDzc4oyDeKRY"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-25f2cbc-202312051758.0_1701799166242_0.052077547945414304"},"_hasShrinkwrap":false},"1.14.2-2d4f3b7-202312060938.0":{"name":"@flowforge/flowforge","version":"1.14.2-2d4f3b7-202312060938.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"2d4f3b76e1e7e2e7add51cccc09894165e9032c9","_id":"@flowforge/flowforge@1.14.2-2d4f3b7-202312060938.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-QvXGVsvryLuaDNd+n8/CbzTNqWOjlUy2XODirux1AaP/QFZGbRxp9GQY3CzsKq6nstkufidPpsx1rrAJ03KlWg==","shasum":"ccd96369b2dd732a2444817447d293fd7d53f98e","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-2d4f3b7-202312060938.0.tgz","fileCount":294,"unpackedSize":4852938,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG3D9XHmBugBO64kWzFk7Gqa+VtBf2lVc2VoMvlRYEwLAiAozZrUldFdPL6tdZRXX7LTPsff0hf4Ntu4WQHMg07jbA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-2d4f3b7-202312060938.0_1701855564469_0.9167667850945214"},"_hasShrinkwrap":false},"1.14.2-3fb00a3-202312061239.0":{"name":"@flowforge/flowforge","version":"1.14.2-3fb00a3-202312061239.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"3fb00a3945311599762ef63eafea2d00dda337dd","_id":"@flowforge/flowforge@1.14.2-3fb00a3-202312061239.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-vPZwama9cDQlwWtrhUOBTf7RqFHEpQbp8VYg93HOw8rvpyxPVNi8ijWVj2PjX/JelYTPmFLTVeMR3FsevGakoA==","shasum":"cc08fb25acc186c6233e741db47179ab0b5d2967","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-3fb00a3-202312061239.0.tgz","fileCount":294,"unpackedSize":4852996,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDqAjXJvvJ0jw6PVNjPgl7sAta1jIA479nmmt5SdvQ9LAiEAurFUlXFqJueEFpgnh7H7jM9Op8QKAouNPxp140pox3A="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-3fb00a3-202312061239.0_1701866435888_0.8557807254652199"},"_hasShrinkwrap":false},"1.14.2-c7b9f95-202312061509.0":{"name":"@flowforge/flowforge","version":"1.14.2-c7b9f95-202312061509.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c7b9f952a23671939bde870f51a15aba7bbf7394","_id":"@flowforge/flowforge@1.14.2-c7b9f95-202312061509.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-QrkYJ/bgJm3hs1pQhAvTzJoVIdlTLVtgWMcG5yTmquNg/CaO5BFCthyH3aRU0fcdxtZPMOJ5hsHhHU+xJq4NpA==","shasum":"d2cfbbebeb90e139621d0fc5d91abdacf25e50e7","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-c7b9f95-202312061509.0.tgz","fileCount":294,"unpackedSize":4859452,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbGWYj5OsmnfZqP2YWbcMuNJ6n12pnkIAKdMPDMgsXVAIgZ4K7ROCqJap4Soci/cUZDGtYcFMl5WYtDEH1/8HDer4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-c7b9f95-202312061509.0_1701875406486_0.7789546802258311"},"_hasShrinkwrap":false},"1.14.2-a9b1fee-202312071143.0":{"name":"@flowforge/flowforge","version":"1.14.2-a9b1fee-202312071143.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a9b1feec55eb118fb20f3d26f83e540bfef3a4e5","_id":"@flowforge/flowforge@1.14.2-a9b1fee-202312071143.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-dMCgoy79408EKNZClV12dOHEewDOniu+/0M/07XYgRrJ5nqjAk6m/vRLFjwso/kUwA9WksY87JsWrpqK35Qw3Q==","shasum":"9a271800dba4a33eb1d1d944ee14f0bf38af08d6","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-a9b1fee-202312071143.0.tgz","fileCount":294,"unpackedSize":4859854,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDw/he2STLt2/SARR56GMXulSea2iD6i9a0vQi6eYpGIAIgLNM5iLImoEnje4j/ybkHPpIhiI3Ej+7cmMvREvGhxxI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-a9b1fee-202312071143.0_1701949459689_0.15973298876785003"},"_hasShrinkwrap":false},"1.14.2-9419eb8-202312071704.0":{"name":"@flowforge/flowforge","version":"1.14.2-9419eb8-202312071704.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"9419eb834e3efa4b61bdc8bc31bcbc37f948ae13","_id":"@flowforge/flowforge@1.14.2-9419eb8-202312071704.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-nmbdF9XOSi8yBX0M3r9/gZX9lX8yX6fssrE7kFt763MyWo3zJ1VTzgjR/bNG8isYZD3op0pGixDJZXa1cEasfQ==","shasum":"6c65a79137fc82eaebf55057bdfe677e0a02b187","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-9419eb8-202312071704.0.tgz","fileCount":294,"unpackedSize":4860884,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhTUCL9BiCVkeS5eG0KyhBL2FUZq/QkHhkg98/MQRRAgIhAKk7z+Q4L1ID1WpytxHvFp1cAThOjcebdq+yYuQxuhsu"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-9419eb8-202312071704.0_1701968759434_0.030378572543752203"},"_hasShrinkwrap":false},"1.14.2-fa00a30-202312072117.0":{"name":"@flowforge/flowforge","version":"1.14.2-fa00a30-202312072117.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fa00a306d5c28d59c800b647fe4d289b5d318e0b","_id":"@flowforge/flowforge@1.14.2-fa00a30-202312072117.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-RVBNvdt55HxIdtTKAP0RCN/WSIcUN161ztWar9TCnB7zryr7DHV7HdvdXA9XQrqF5TYPO812J/FUckHN7thW5Q==","shasum":"35af4a520c34d3e29962a8974656dfc0b019f975","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-fa00a30-202312072117.0.tgz","fileCount":294,"unpackedSize":4862126,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGIMAgubWsUehwKtSj4ibWfU/I9GtQQTqqoAotz5TL+9AiEAtZMGcwAdznd7tnBHxRPOhhhbuJqm+Ml2++grNQRIA2M="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-fa00a30-202312072117.0_1701983878269_0.9285682955034522"},"_hasShrinkwrap":false},"1.14.2-fa00a30-202312081033.0":{"name":"@flowforge/flowforge","version":"1.14.2-fa00a30-202312081033.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fa00a306d5c28d59c800b647fe4d289b5d318e0b","_id":"@flowforge/flowforge@1.14.2-fa00a30-202312081033.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-vpLJUyQTHl8erRBzV94v++nUckUmHNaUnJHTR3ztHMQ7U+lgQ1mYx+zJakoxQSMw3meIfKuiXt6MnWHpCzK7Ug==","shasum":"f25ec926c78f90b7d69bca256a97c94a10ae66d2","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-fa00a30-202312081033.0.tgz","fileCount":294,"unpackedSize":4862126,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAV39z5eOGgKGTiElS5s8+sNROGxJn2z84Io/PcTSi2wAiEAyWEfp83y4XkkKbBY8vA2lFBJHbkf1p0QBZpR0SKeLqE="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-fa00a30-202312081033.0_1702031662520_0.061805025615423226"},"_hasShrinkwrap":false},"1.14.2-6d9725f-202312081210.0":{"name":"@flowforge/flowforge","version":"1.14.2-6d9725f-202312081210.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"6d9725f9fc00f94c31e50ce7e385444c481daa0c","_id":"@flowforge/flowforge@1.14.2-6d9725f-202312081210.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-GQw8uqRDxJPZjbB3PtKpAYGc/OZtNiZDrJ4OBsvtEVQGbX4xPSBxPIRet4PPNNW41GLcWXmURtW+xTlb6KKC+g==","shasum":"55955437ceb16b4bf657ee0b697ee4fff452b11a","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-6d9725f-202312081210.0.tgz","fileCount":294,"unpackedSize":4862116,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICGFJLaLGfsvE1Rjytgzmjpv+kku/fytvt0nFwa3/3W/AiBgi1W18pjp9TFPVaiYMSyGPe0ukb4MLVnJEkphqRra/g=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-6d9725f-202312081210.0_1702037484888_0.32329989327158026"},"_hasShrinkwrap":false},"1.14.2-8b21f64-202312081628.0":{"name":"@flowforge/flowforge","version":"1.14.2-8b21f64-202312081628.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"8b21f64e4d32ee712ffcce07fe495aeac93e1ad9","_id":"@flowforge/flowforge@1.14.2-8b21f64-202312081628.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-BAYDobocFcRuwTUdAh1ym8NHyxHHy6ZugMiBuTznUNOGVGvBA9q4wbzPiMIrL1lWGxr+6TbzHcyYnEZyqMMqXQ==","shasum":"71ef1ad29cef13653d328f229f905b3f497e29de","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-8b21f64-202312081628.0.tgz","fileCount":294,"unpackedSize":4862147,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+RW2tBu7B58p9rdYFCmy0OIU2125zigA/BasM9ccDVAiEA2hRjnSMf8kJY8g904pYAOqjbAPPuwz3XhwX8VcUnOL4="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-8b21f64-202312081628.0_1702052994166_0.3233185126668767"},"_hasShrinkwrap":false},"1.14.2-fbca845-202312111307.0":{"name":"@flowforge/flowforge","version":"1.14.2-fbca845-202312111307.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fbca84576fb2bd27e07d626a94d993b148b67d95","_id":"@flowforge/flowforge@1.14.2-fbca845-202312111307.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-AKdJufRKts03xLkaK+5OFm1/jTxUztpQZl4NsFMt8yMrFz8hXQc3awozxGiv5WrlwSypO7RdYEhiaCVAOVR98w==","shasum":"a57b4a28cf40f82e97d08557728b251e86de4312","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-fbca845-202312111307.0.tgz","fileCount":294,"unpackedSize":4863664,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDPCYqkKQzVIFyM9D8Pvrrjpju6+eyB2HEDgE0nnnxsCAiEAzeIs4wiEddaFoCWRttXifB2evuZI5Em8gDjFATyCaJs="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-fbca845-202312111307.0_1702300132907_0.8024668506356716"},"_hasShrinkwrap":false},"1.14.2-fbca845-202312111311.0":{"name":"@flowforge/flowforge","version":"1.14.2-fbca845-202312111311.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fbca84576fb2bd27e07d626a94d993b148b67d95","_id":"@flowforge/flowforge@1.14.2-fbca845-202312111311.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-6E8vAjVwSymlZU5LjyyomLcO094vGK+qIYx40Atd5zsX1y5kegD7xUjVdxuCDpYn480tsT6bR32QAGQfm1T7fQ==","shasum":"6077c499e36ff8a7a60756104df1a8ee5bc85124","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-fbca845-202312111311.0.tgz","fileCount":294,"unpackedSize":4863664,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICFXlOVwrGkz9yEO4apLICfByyEhBhWVRYTlutWIT97rAiBTy6+jfA+KClyt7an2Th19WVawFHVqc+ug4MPF7VAl5Q=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-fbca845-202312111311.0_1702300340423_0.02181653571929254"},"_hasShrinkwrap":false},"1.14.2-c4d783e-202312111644.0":{"name":"@flowforge/flowforge","version":"1.14.2-c4d783e-202312111644.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c4d783eb21858d893c4435c176657b3ee280526a","_id":"@flowforge/flowforge@1.14.2-c4d783e-202312111644.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-L3HVcYXSKrA+YrSwZFrRjrWAWtcMh8PYPh6j9+VqrY6oYc/1P6R8hgjYc1wkRIfjjaePt2x+Yn5cesc162kszA==","shasum":"28ab8381979f26bbe75f891359fc0f8c49f686d9","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-c4d783e-202312111644.0.tgz","fileCount":294,"unpackedSize":4864769,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD24t+tqSTux4F/v6Yb6cPFIMFcW9B1GdO7BKe+ILcZ+gIgfzawxwM+xrz5himVkGxaOxL9X6rJ2yekckQXAaI3HVI="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-c4d783e-202312111644.0_1702313158932_0.9975226837354452"},"_hasShrinkwrap":false},"1.14.2-782eaad-202312120927.0":{"name":"@flowforge/flowforge","version":"1.14.2-782eaad-202312120927.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"782eaadfbe3c2c2ce79964eb62d2d563eea0e5d4","_id":"@flowforge/flowforge@1.14.2-782eaad-202312120927.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-NNMhq4l3Cqad5G1MmBoAC9GpUSIUHCg8Ap5JAF9pAkCJvFBMwBiSEpuJRKB6IWgX61iFHoKg9pW4tyQuipHqCQ==","shasum":"42388fcfe21f9048424c938b19e7fb26c35ad307","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-782eaad-202312120927.0.tgz","fileCount":296,"unpackedSize":4865756,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEiYKBT2pSnWsHUhZUM76xw5/uJYiavNPeVebk1WdA+vAiEAofk2hVsx/j8pq0rgSihlNT4Bw2UEGpH7B8lqPSFGV7g="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-782eaad-202312120927.0_1702373285819_0.19155413931779108"},"_hasShrinkwrap":false},"1.14.2-372bdd9-202312121359.0":{"name":"@flowforge/flowforge","version":"1.14.2-372bdd9-202312121359.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"372bdd989d668abedce11f534cfc4c420cbb6cbb","_id":"@flowforge/flowforge@1.14.2-372bdd9-202312121359.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Ef1Wp+JTCCLHKnWr9s2+Wfvym8VSi/rVPe+4mQ3rB5hs8y92ib40V9auQHDK5Q/FIAsyp2N7Wt+Ip57FXHnpJQ==","shasum":"349a1df352c922f1be8e08bba4b3302bdd00e509","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-372bdd9-202312121359.0.tgz","fileCount":296,"unpackedSize":4865756,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFpRjDDTpyZ5GpkG0J70DDVVsYdPxky4tgm++Jd3Bk1AIgX79meoBTMOlOTv8MCHOVZudbam0UAKAgmnGYbfsnc24="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-372bdd9-202312121359.0_1702389612702_0.25174970768109106"},"_hasShrinkwrap":false},"1.14.2-a20066a-202312131227.0":{"name":"@flowforge/flowforge","version":"1.14.2-a20066a-202312131227.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a20066a3a8b9b3652f6c9cf7cdc188f3050e6896","_id":"@flowforge/flowforge@1.14.2-a20066a-202312131227.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-jNWy83KLrzn8PY/ShULPaj1+z6CwycZj5yqODwkHUzPmLiWBDxB+hvufcoclZZVHp9oPCl72Y8N3/pPEz30e3g==","shasum":"c5fb5687a3ee37c2e91f464c93f4849d7e3a83d7","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-a20066a-202312131227.0.tgz","fileCount":296,"unpackedSize":4865756,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjVwz4mdViFmW47behWHD1koHqc3QPNbxhGP1vlVtbOwIhAJluoQ6p9GuL5gShCmjQB0+NcTJYCzaS6W4M3UfGDgH9"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-a20066a-202312131227.0_1702470490598_0.7600308836290974"},"_hasShrinkwrap":false},"1.14.2-2a5679b-202312131342.0":{"name":"@flowforge/flowforge","version":"1.14.2-2a5679b-202312131342.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"2a5679b89dbd17a4350f7bf00b0fa93ce6f413b4","_id":"@flowforge/flowforge@1.14.2-2a5679b-202312131342.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-xvjzDIZSoCYsO6w6C7/NRXlNHoFPJYcGu1C72nRAJwgd6W96FQzhYV++5mguxfX85u/MIPSjA7Bt6TO7rSHqwA==","shasum":"8eb69eb9e6e4438b3c20a71512483d862a03d4db","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-2a5679b-202312131342.0.tgz","fileCount":296,"unpackedSize":4865826,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDss2hRanpRej+ThnawgcS3m19o0fmc0HA/6VLflNsMMwIhAKqvOzFAmX4Pe2MXIF9xgvxkB3lGbi10WqTyAnfYBRUL"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-2a5679b-202312131342.0_1702475037578_0.25637659523925627"},"_hasShrinkwrap":false},"1.14.2-d5dbe41-202312141105.0":{"name":"@flowforge/flowforge","version":"1.14.2-d5dbe41-202312141105.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d5dbe411421bbd76a59aa7279a63bb8b33f27b9f","_id":"@flowforge/flowforge@1.14.2-d5dbe41-202312141105.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-8Yqr0dg+uA2ZLNlBTYlj+p7GtZsKlftEidIO2OYbo6KPY8rogknPXIgOXio64zlGQJnuWw1hV8GF3dWPkiLJxw==","shasum":"21280f9dd3f671510b1cad6689a15aa9649b7029","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-d5dbe41-202312141105.0.tgz","fileCount":297,"unpackedSize":4866015,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICHFWOjxW+202I8ahUbvVMM2sS+DG+lD/FCEosI9f4WgAiAf1lc6ZB9I+uqoYEj7F1uBOieV7rVdgqzPmBrjRqP14Q=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-d5dbe41-202312141105.0_1702551991860_0.3277694268329283"},"_hasShrinkwrap":false},"1.14.2-a9f8a6a-202312141132.0":{"name":"@flowforge/flowforge","version":"1.14.2-a9f8a6a-202312141132.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a9f8a6abc79d116097320993428e1442ad0e6f8b","_id":"@flowforge/flowforge@1.14.2-a9f8a6a-202312141132.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-AIS3XKVJpZkKnBbWLoOxLDRl5DZtFlo3C18ab7cAunIsLrkOMyduizUrf6dUnbTKEhpEWAFJ+9UHRl5u0Upqjg==","shasum":"d4f601703fc1245249fe50399f63479fc3e107ee","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-a9f8a6a-202312141132.0.tgz","fileCount":297,"unpackedSize":4866918,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHXUSVFmZGVR1gKrQJfKpEzVj4gbT42VNIpJ1PbNfbq5AiBKJ0BepNlmFNenr+MzVMbCNWF9ztUt1uC0LF3zC6yiHg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-a9f8a6a-202312141132.0_1702553636072_0.11040430218585873"},"_hasShrinkwrap":false},"1.14.2-9d5475b-202312141304.0":{"name":"@flowforge/flowforge","version":"1.14.2-9d5475b-202312141304.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"9d5475b3e349276b5ea6541c2ff241cd6a219774","_id":"@flowforge/flowforge@1.14.2-9d5475b-202312141304.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-TaGdvNWx7bFVnOMyXGyt7Ik6KgVom8RILDoKchtJ5hlcRnEvYsXifFwdg3dFDBkYeHgLjI+1gq9K/hcyv9tVnw==","shasum":"482009cc15c4128c6db477747104c9c91b827381","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-9d5475b-202312141304.0.tgz","fileCount":298,"unpackedSize":5690422,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICU6a2Fy5BVD5195U1367QSQLKaIiHs3evv11Ra+wUnBAiA/UDEZQFg0PhdP/AdCGqxm9Tmq5qUsgvyZ5Vux5Gg4IA=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-9d5475b-202312141304.0_1702559141489_0.2026540882595087"},"_hasShrinkwrap":false},"1.14.2-61934f7-202312190835.0":{"name":"@flowforge/flowforge","version":"1.14.2-61934f7-202312190835.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"61934f7e0489571e20ebe31ca2b6038664675482","_id":"@flowforge/flowforge@1.14.2-61934f7-202312190835.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-tH6SemEcN0DaQdnlbHkwmwv/vjeWEle+gpBP+dugJwDt0Tps8BfwD5ZpLNaGcNbo8R9u70N/7h9VX/K0d9/ZZA==","shasum":"29b89ba2c13c898e2dcb8508bcca9828366dab86","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-61934f7-202312190835.0.tgz","fileCount":298,"unpackedSize":5690422,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2IV7vV2hbDD25qxWcqNswCkOG9tOTh6NxNTcQ7lt3IwIhAK+nw7dX4Ug6ezde5p5jHI3ZMMeWbCMzzyXB4eTNk9p0"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-61934f7-202312190835.0_1702974993435_0.503768864901438"},"_hasShrinkwrap":false},"1.14.2-c1c6b50-202312190917.0":{"name":"@flowforge/flowforge","version":"1.14.2-c1c6b50-202312190917.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"c1c6b5008d2ae5d19dda2d378a8c9aeb323b8907","_id":"@flowforge/flowforge@1.14.2-c1c6b50-202312190917.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-yxGFT0wyi/YoZaf/eMiO1pOZUP/UVS9MlbmkzpRrkGNJj9+V5yEp0Y/QcBwbFwW4x+t1dVFfr1ZSp6ioGufg7Q==","shasum":"70ad5fc7a506bd22694352132d605b93c4dd8f80","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-c1c6b50-202312190917.0.tgz","fileCount":298,"unpackedSize":5690422,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICmx9M+SIEECNaGY4mwX+qYomUNgGMHAnsgQNTCw++AGAiAOUqUJdlwOmuBnc2iVHqdNQT6vn6BZAP6efP98BDnwdg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-c1c6b50-202312190917.0_1702977537035_0.32715170743593114"},"_hasShrinkwrap":false},"1.14.2-fdb2ec7-202312190950.0":{"name":"@flowforge/flowforge","version":"1.14.2-fdb2ec7-202312190950.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"fdb2ec71f0e2b09edc637141a01527c1a294c6d3","_id":"@flowforge/flowforge@1.14.2-fdb2ec7-202312190950.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-frUr7AAGByRUPrH+aUi5/RAxVPpKCrzlXQANcnALyOQPFwg0+RK9jCvwwFhJb9IwKxWjIyN2dt8sncKxaWm5sw==","shasum":"de4160f0534fcb3f4d6d2df45b53f135a79c4f2d","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-fdb2ec7-202312190950.0.tgz","fileCount":299,"unpackedSize":5954999,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbxlgw7il0wXwhNonSxhA2i/4Spppu65vld4Nc0qFgJQIhAOyc8UFcSSJk2xmJOiM7eF1vbwGU9t+MP6M5cFvT0gkG"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-fdb2ec7-202312190950.0_1702979462816_0.7133746845943811"},"_hasShrinkwrap":false},"1.14.2-32c7c86-202312191116.0":{"name":"@flowforge/flowforge","version":"1.14.2-32c7c86-202312191116.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"32c7c865a5e0f66503cee64cfa4e852278d75be0","_id":"@flowforge/flowforge@1.14.2-32c7c86-202312191116.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-DHpUCGPC5AXF0IPCaHJ7fZgRfGcm3iT6Jrk251/xcyBSRUMlfS5i9ysOYSxQvvN1x24kUoIF+fDdFxq8tsnXPg==","shasum":"6d99ff3f5eb7c2f6fcd9f7908f0233b4211734fc","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-32c7c86-202312191116.0.tgz","fileCount":297,"unpackedSize":5954012,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDFpI1eWvs/EBYNrYKgjgyLJpiIo++gBmuHwnm8/4OcmAiBDNgYRhLfBqMSvfC6WDwScThwkhhAk/mm2VcW5Kh455A=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-32c7c86-202312191116.0_1702984640787_0.6965046105455825"},"_hasShrinkwrap":false},"1.14.2-32c7c86-202312191125.0":{"name":"@flowforge/flowforge","version":"1.14.2-32c7c86-202312191125.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"32c7c865a5e0f66503cee64cfa4e852278d75be0","_id":"@flowforge/flowforge@1.14.2-32c7c86-202312191125.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-f4Tb7jw5ZPnjcfAhFFPFkLpySUyZLxJVWveJ8R6ZNNrXpbUvuEkK5aXhdxacHgm7Jgwzelm79TUrC5YiqtWp+g==","shasum":"9e7811b1c5d1dd998648bfa226441e5cb1259e99","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-32c7c86-202312191125.0.tgz","fileCount":297,"unpackedSize":5954012,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDjAul+y/xGlxGvakPm8A1cmCiSNbGpigeZUAoQgdyslAiEAhDOtO+46mXrofq/qPumtCd8kOSn90qDFx64Wm7WbJ3o="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-32c7c86-202312191125.0_1702985183299_0.36461660502654936"},"_hasShrinkwrap":false},"1.14.2-32c7c86-202312191130.0":{"name":"@flowforge/flowforge","version":"1.14.2-32c7c86-202312191130.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"32c7c865a5e0f66503cee64cfa4e852278d75be0","_id":"@flowforge/flowforge@1.14.2-32c7c86-202312191130.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-jM25vOrO43dKH8QTsuboSpHDHj2WQLJw/07bp7bJf8xRGBQdfJAQjiEUi8Px63gzrXyEW4BKOsGxsyePci1IZw==","shasum":"fa0014e67af4493f543d93d909b24d419aba1968","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-32c7c86-202312191130.0.tgz","fileCount":297,"unpackedSize":5954012,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdNnvKILvPoOvpVBu8mvMzS30R4WcRm/fhdW12J+yRDgIgWeXUYmQ0FYJW23pvUo4YWrri8CYQrK4UB7AFRGLnq8U="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-32c7c86-202312191130.0_1702985497155_0.17118690385312285"},"_hasShrinkwrap":false},"1.14.2-d9ce170-202312191645.0":{"name":"@flowforge/flowforge","version":"1.14.2-d9ce170-202312191645.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d9ce170c3921a8195a63f894ec55978760cc2e15","_id":"@flowforge/flowforge@1.14.2-d9ce170-202312191645.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-8AK6rZK8d6YK7MtFRsOT/g7Li5VGWDEPjONaDYvuy2u4IIsPS83fwt/XIJd7vZjaem2HVMDBbnoPjZu+pDsQHQ==","shasum":"7c3792be15df751a35ebde25ff600b5f7d697785","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-d9ce170-202312191645.0.tgz","fileCount":297,"unpackedSize":5954274,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnn0BDEhyk4a3xS5XEkSlARm58pW0OaRRXf/FV/iWeKwIhAIAkTsdXpjg36XC54uFveRu34mop+hjMg2WL3XmJrCbD"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-d9ce170-202312191645.0_1703004391948_0.44505362617072697"},"_hasShrinkwrap":false},"1.14.2-d9ce170-202312191655.0":{"name":"@flowforge/flowforge","version":"1.14.2-d9ce170-202312191655.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d9ce170c3921a8195a63f894ec55978760cc2e15","_id":"@flowforge/flowforge@1.14.2-d9ce170-202312191655.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-HdM/YkWT+zXjTlExxghcJhYbYdAQEqaRpIKaub4GV9BZ+58rq/DeIYjQvTSJAyls5CS4co6Uyj15gnoz3Uz5sA==","shasum":"74296d85c06bd511e4ca723195da7ae45a1d2e0c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-d9ce170-202312191655.0.tgz","fileCount":297,"unpackedSize":5954274,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID5sIqBYdlvIIQMXrdyz1m5W/6/dHP3i4Qw/IXlJsq6wAiBkGnh8EDPI67mOM2Tk5bPh+j1VNShjBIH9DiIyQl0Nkg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-d9ce170-202312191655.0_1703004988534_0.8110056151480116"},"_hasShrinkwrap":false},"1.14.2-7175f06-202312201220.0":{"name":"@flowforge/flowforge","version":"1.14.2-7175f06-202312201220.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"7175f06c20c8674c04bd1c581783dff357a8461d","_id":"@flowforge/flowforge@1.14.2-7175f06-202312201220.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-7Z7SJplyGRqFTIOXQbGkriG9SY5F+oiD/qPaB84tSwy3YMALdSAmRs5nHb9aU0TNsIzquVv4bniLxw0re6zl+g==","shasum":"26d5b203a77a91d0edc62f6fe021f794048cb8b3","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-7175f06-202312201220.0.tgz","fileCount":300,"unpackedSize":5973384,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJzUvlrwNXbieBRAF8E3E5r9dq4TppR/hA/B2OeVNm9AIhAIGo9/s6VNnYr//J8Ao99utexaY51+aV+i4epptmahxe"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-7175f06-202312201220.0_1703074897727_0.026293859051107704"},"_hasShrinkwrap":false},"1.14.2-7175f06-202312201223.0":{"name":"@flowforge/flowforge","version":"1.14.2-7175f06-202312201223.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"7175f06c20c8674c04bd1c581783dff357a8461d","_id":"@flowforge/flowforge@1.14.2-7175f06-202312201223.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-2qvcbZ6ASey38A13lj2lZZpa0KfgpP/wmdspR2RtvLKnaEIkjYSW3Fc1fnxEHFneJThK5sjDSnTsc0tsgb7fnA==","shasum":"97f196997443697add1ed87c602d3aa8fc701bff","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-7175f06-202312201223.0.tgz","fileCount":300,"unpackedSize":5973384,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+nC9uo6fuVdLRcOhYf2v0b5ivOY8X8NRbsuDUjx4vSwIgHHbxLnBEM11fypfyaDsHDhf9LTh/O8iCTZfBtrwjESA="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-7175f06-202312201223.0_1703075076597_0.2573703739580253"},"_hasShrinkwrap":false},"1.14.2-8bf84f7-202312201356.0":{"name":"@flowforge/flowforge","version":"1.14.2-8bf84f7-202312201356.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"8bf84f744cd111c9b35db21711947a7b5b8b7790","_id":"@flowforge/flowforge@1.14.2-8bf84f7-202312201356.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ql8/k7x7kA3Nwi4fLkImcM7m1bWajB8hoE5szuPXlbyUVeaV7GXtRHl6LCrs0VI7mcRPE2Qy/STXmX0qEcDlTQ==","shasum":"790c4f4a464da1c7988e48008155779bb47de2cb","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-8bf84f7-202312201356.0.tgz","fileCount":300,"unpackedSize":5973384,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEOAf/vqAC/i/Q64mw75n767t7ZzIcQRgLTPNCjai5FlAiEA4WkIILi4hmPdpo9+eKbM4RK/eLSdgQ/jUBZDyR1JSTo="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-8bf84f7-202312201356.0_1703080649122_0.9640644813518"},"_hasShrinkwrap":false},"1.14.2-d01964b-202312201423.0":{"name":"@flowforge/flowforge","version":"1.14.2-d01964b-202312201423.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d01964bff935a5681b15839b70c17dd1e0a99c68","_id":"@flowforge/flowforge@1.14.2-d01964b-202312201423.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-olTOUkfAIVwFG2DG4ubHZXOtRzPBf2hSLudu685u8uJ3nZ3kdn2PZnAk1ORfAJLpzCKGLfbPoDHHKhuPScWCrQ==","shasum":"eaf31f18856cc53c734da75e7784b77b991d4395","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-d01964b-202312201423.0.tgz","fileCount":300,"unpackedSize":5973896,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBBS03klSgso6nFJJils84wfZk3Bihs8q2L4rGPBz4YaAiEAjUdCwWO5IcgXDKcSUqroDKxJPBOxMMQaZRcw7/faUAo="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-d01964b-202312201423.0_1703082304565_0.05539017986399242"},"_hasShrinkwrap":false},"1.14.2-d01964b-202312201427.0":{"name":"@flowforge/flowforge","version":"1.14.2-d01964b-202312201427.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"d01964bff935a5681b15839b70c17dd1e0a99c68","_id":"@flowforge/flowforge@1.14.2-d01964b-202312201427.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-AeiBuhzJUujdJsajDr2B8ddR5mBzqkKNfhdg6qspUe/8vIvH3lpz0+o1CtIJWwl093tFacbvv78BPYxRHLOH/Q==","shasum":"df98f972da02fe35c0345a7e077629efc105e323","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-d01964b-202312201427.0.tgz","fileCount":300,"unpackedSize":5973896,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC6/a1S1iRxSbiC4spvih1pwX7W6gZpglTjrWcx+ioNWAiBzngNUonfvbuDsvgP9jTxrHOMFH6gQRCoH8/Nor+zpBg=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-d01964b-202312201427.0_1703082497346_0.495397106668765"},"_hasShrinkwrap":false},"1.14.2-cf07c7a-202312201436.0":{"name":"@flowforge/flowforge","version":"1.14.2-cf07c7a-202312201436.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"cf07c7af796a04a999d6e3da1dd7ef519d8b02ea","_id":"@flowforge/flowforge@1.14.2-cf07c7a-202312201436.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-0wxYg6H1rnYxRQ5/hl52l8UYemjrz6+AmIn/csSdpcRJxzr8dIFJG1C7duaLXPe8heJz72s5LaVG7930bhXeDQ==","shasum":"9cd1a663f917dc8865513ccb24f39aab4da1732c","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-cf07c7a-202312201436.0.tgz","fileCount":300,"unpackedSize":5973910,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICYrwc4a2g/cASzr72A2TJ0lENe5yliD6nPApQjA91ELAiBVHSBWbI6l3G+8CAhHFCtkRm3BlnRtqAahV0+BdhW06w=="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-cf07c7a-202312201436.0_1703083039052_0.6204806916383556"},"_hasShrinkwrap":false},"1.14.2-53c5d8d-202312201633.0":{"name":"@flowforge/flowforge","version":"1.14.2-53c5d8d-202312201633.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"53c5d8d32fd8b53d51a241674bbcdcc820977538","_id":"@flowforge/flowforge@1.14.2-53c5d8d-202312201633.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-x47dhuM4LKsreWimdNXfzBKCGFOIDlJLomJxzjpQYb3BVfBRKPlFFeMKXLvNUp7OPhDXSRtKu82/NhdiWBaVpA==","shasum":"fdce200a0f8ecec273cddaca3e17055439b0cb81","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-53c5d8d-202312201633.0.tgz","fileCount":308,"unpackedSize":6167721,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgjqa9mh3oSX9P1g28Hpsss1MTqrnQqkd3k7p9AOx5mAIhANMvN4GtHplcrJXlJQxFnt49hDTC5Al1MB8yKOSv/FZ1"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-53c5d8d-202312201633.0_1703090090151_0.0477234836528182"},"_hasShrinkwrap":false},"1.14.2-53c5d8d-202312201635.0":{"name":"@flowforge/flowforge","version":"1.14.2-53c5d8d-202312201635.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"53c5d8d32fd8b53d51a241674bbcdcc820977538","_id":"@flowforge/flowforge@1.14.2-53c5d8d-202312201635.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-NiFyWFD5N6hp1lzuEdVPYH79C4lFqztP1nGu1fxF3K330/V1Two6jPHv0oD5N71SV/YvrhoDPE5Shy+U53JyUw==","shasum":"069becaa5ecbd56203d499c2f20e158c65d73ebb","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-53c5d8d-202312201635.0.tgz","fileCount":308,"unpackedSize":6167721,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDE8dcGTXn7BF6hB1f7UgULvt1zXODw+RZTrxs/oxDGIwIgGrI+a59ZB236EdcjjXjAHEYEv67MJH2HS5AlI61opPA="}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-53c5d8d-202312201635.0_1703090208104_0.8957287920599277"},"_hasShrinkwrap":false},"1.14.2-a0f6152-202312210845.0":{"name":"@flowforge/flowforge","version":"1.14.2-a0f6152-202312210845.0","description":"An open source low-code development platform","homepage":"https://flowfuse.com","bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"license":"SEE LICENSE IN ./LICENSE","author":{"name":"FlowFuse Inc."},"bin":{"ff-install-stack":"scripts/install-stack.js","flowforge":"forge/app.js"},"scripts":{"start":"node forge/app.js","repl":"node forge/app.js --repl","build":"webpack -c ./config/webpack.config.js","serve":"npm-run-all --parallel build-watch start-watch","serve-repl":"npm-run-all --parallel build-watch start-watch-repl","start-watch":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js","start-watch-repl":"cross-env NODE_ENV=development nodemon -w forge -w ee/forge -i forge/containers/localfs_root forge/app.js --repl","build-watch":"webpack --mode=development -c ./config/webpack.config.js --watch","lint":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\"","lint:fix":"eslint -c .eslintrc \"forge/**/*.js\" \"frontend/**/*.js\" \"frontend/**/*.vue\" \"test/**/*.js\" --ignore-pattern \"frontend/dist/**\" --fix","test":"npm-run-all --sequential lint test:unit test:system","test:unit":"npm-run-all --sequential test:unit:forge test:unit:frontend","test:unit:forge":"mocha 'test/unit/forge/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","test:unit:frontend":"vitest run --config ./config/vitest.config.ts","test:docs":"node test/e2e/docs/valid-links.js ./docs","test:system":"mocha 'test/system/**/*_spec.js' --timeout 10000 --node-option=unhandled-rejections=strict","cy:web-server":"npm-run-all --parallel cy:web-server:os cy:web-server:ee","cy:web-server:os":"node ./test/e2e/frontend/test_environment_os","cy:web-server:ee":"node ./test/e2e/frontend/test_environment_ee","cy:run":"npm-run-all --parallel cy:run:os cy:run:ee","cy:run:os":"cypress run --config-file ./config/cypress-os.config.js","cy:run:ee":"cypress run --config-file ./config/cypress-ee.config.js","cy:open:os":"cypress open --config-file ./config/cypress-os.config.js","cy:open:ee":"cypress open --config-file ./config/cypress-ee.config.js","cover":"npm-run-all --sequential cover:unit cover:system cover:report","cover:unit":"npm-run-all --sequential cover:unit:forge cover:unit:frontend","cover:unit:forge":"nyc --silent npm run test:unit:forge && nyc report --reporter=json --report-dir ./coverage/reports/forge/ && mv ./coverage/reports/forge/coverage-final.json ./coverage/reports/forge-coverage.json","cover:unit:frontend":"vitest --config ./config/vitest.config.ts run --coverage && mv ./coverage/reports/frontend/coverage-final.json ./coverage/reports/frontend-coverage.json","cover:system":"nyc --silent npm run test:system && nyc report --reporter=json --report-dir ./coverage/reports/system/  && mv ./coverage/reports/system/coverage-final.json ./coverage/reports/system-coverage.json","cover:report":"nyc report --reporter=html --reporter=json -t './coverage/reports'","install-stack":"node scripts/install-stack.js --"},"dependencies":{"@aws-sdk/client-ses":"^3.352.0","@aws-sdk/credential-provider-node":"^3.352.0","@fastify/cookie":"^9.1.0","@fastify/csrf-protection":"^6.3.0","@fastify/formbody":"^7.4.0","@fastify/helmet":"^11.1.1","@fastify/passport":"^2.3.0","@fastify/rate-limit":"^8.0.3","@fastify/routes":"^5.1.0","@fastify/static":"^6.10.2","@fastify/swagger":"^8.10.1","@fastify/swagger-ui":"^1.9.0","@fastify/websocket":"^8.1.0","@flowfuse/driver-localfs":"^1.14.0","@headlessui/vue":"1.7.16","@heroicons/vue":"1.0.6","@immobiliarelabs/fastify-sentry":"^7.1.1","@levminer/speakeasy":"^1.4.2","@node-saml/passport-saml":"^4.0.4","@sentry/node":"^7.73.0","@sentry/profiling-node":"^1.2.1","@sentry/vue":"^7.72.0","@sentry/webpack-plugin":"^2.7.1","axios":"^1.4.0","bcrypt":"^5.1.0","cronosjs":"^1.7.1","dotenv":"^16.3.1","fastify":"^4.24.0","fastify-metrics":"^10.3.2","fastify-plugin":"^4.5.0","handlebars":"^4.7.7","hashids":"^2.3.0","jsonwebtoken":"^9.0.0","lottie-web-vue":"^2.0.7","lru-cache":"^10.0.0","marked":"^10.0.0","mqtt":"^5.1.1","nodemailer":"^6.9.3","pg":"^8.11.3","pino":"^8.15.1","pino-pretty":"^10.0.0","qrcode":"^1.5.3","semver":"~7.5.4","sequelize":"^6.33.0","sqlite3":"^5.1.6","stripe":"^8.222.0","uuid":"^9.0.0","vue":"^3.3.4","vue-router":"^4.2.2","vuex":"^4.1.0","yaml":"^2.3.1","zxcvbn":"^4.4.2","@flowforge/localfs":"nightly"},"devDependencies":{"@babel/core":"^7.22.15","@babel/preset-env":"^7.22.15","@vitejs/plugin-vue":"^4.3.4","@vitest/coverage-istanbul":"^0.34.4","@vue/test-utils":"^2.4.1","autoprefixer":"^10.4.15","babel-loader":"^9.1.3","c8":"^8.0.1","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","cross-env":"^7.0.3","css-loader":"^6.8.1","cypress":"^13.2.0","dotenv-webpack":"^8.0.1","eslint":"^8.48.0","eslint-config-standard":"^17.1.0","eslint-plugin-cypress":"2.15.1","eslint-plugin-import":"^2.28.1","eslint-plugin-n":"^16.0.2","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-vue":"^9.17.0","file-loader":"^6.2.0","html-link-extractor":"^1.0.5","html-webpack-plugin":"^5.5.3","jsdom":"^22.1.0","mini-css-extract-plugin":"^2.7.6","mocha":"^10.2.0","mocha-cli":"^1.0.1","mockdate":"^3.0.5","node-sass":"^9.0.0","nodemon":"^3.0.1","npm-run-all":"^4.1.5","nyc":"^15.1.0","postcss":"^8.4.29","postcss-loader":"^7.3.3","postcss-preset-env":"^9.1.3","promptly":"^3.2.0","sass-loader":"^13.3.2","should":"^13.2.3","should-sinon":"^0.0.6","sinon":"^16.0.0","style-loader":"^3.3.3","tailwindcss":"^2.2.19","vitest":"^0.34.4","vue-loader":"^17.2.2","vue-template-compiler":"^2.7.14","webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-dev-server":"^4.15.1","ws":"^8.14.0"},"engines":{"node":">=16.x"},"keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"],"readme":"<div align=\"center\"> <a href=\"https://flowfuse.com/\">\n    <img\n      src=\"https://github.com/flowforge/website/blob/main/src/handbook/images/logos/ff-logo--wordmark--light.png\"\n      width=\"300\"\n      height=\"auto\"\n    />\n  </a>\n</div>\n\nFlowFuse helps Node-RED developers deliver applications in a more reliable, collaborative and secure manner. Node-RED’s intuitive, low-code development environment is great for connecting together hardware devices, APIs and online services. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps deliver pipelines, and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the devops platform for Node-RED application development and delivery.\n\n\n## Key Features\n\n* FlowFuse adds team collaboration to Node-RED, allowing multiple developers to work together on a single instance.\n* Many organizations deploy Node-RED instances to remote servers or edge devices. FlowFuse automates this process by creating snapshots on Node-RED instances that can be deployed to multiple remote targets. \n* FlowFuse simplifies the software development lifecycle of Node-RED applications. You can now set up DevOps delivery pipelines to support development, test and production environments for Node-RED application delivery.\n* FlowFuse is available from [FlowFuse Cloud](https://app.flowforge.com/account/create), a managed cloud service, or a self-hosted solution. \n* FlowFuse offers professional technical support for FlowFuse and Node-RED.\n\n## Links\n\n- [Home Page](https://flowfuse.com/)\n- [Documentation](https://github.com/flowforge/flowforge/blob/main/docs/README.md)\n- [Contributing](https://github.com/flowforge/flowforge/blob/main/CONTRIBUTING.md)\n- [Code of Conduct](https://github.com/flowforge/flowforge/blob/main/CODE_OF_CONDUCT.md)\n- [Security](https://github.com/flowforge/flowforge/blob/main/SECURITY.md)\n- [License](https://github.com/flowforge/flowforge/blob/main/LICENSE)\n","readmeFilename":"README.md","gitHead":"a0f61521b5a614743800fa2e4f2c85a1ed56d0a8","_id":"@flowforge/flowforge@1.14.2-a0f6152-202312210845.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-1bVqpFLYfQcwST89Lkvo9b4D5Wj3bjHY0OsukhiOKZYp3GhFtjRWfdscvcjkzJpYK6VIfy1Mulx9NzooEPj+1Q==","shasum":"8957995e4f7ce15ae18c50476c7b1261fb3826f8","tarball":"https://registry.npmjs.org/@flowforge/flowforge/-/flowforge-1.14.2-a0f6152-202312210845.0.tgz","fileCount":308,"unpackedSize":6169309,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClyAtaJhAwISZmghTg1sXAKJZBVWYUM3mqODN8yVh+iAIhALJ8WMnn04/AAgoAo8F2IW6esYa2TKXAuroBYPxzHuqq"}]},"_npmUser":{"name":"flowforge","email":"ben@flowforge.com"},"directories":{},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/flowforge_1.14.2-a0f6152-202312210845.0_1703148374934_0.24685236896055018"},"_hasShrinkwrap":false}},"maintainers":[{"name":"flowforge","email":"ben@flowforge.com"}],"description":"An open source low-code development platform","homepage":"https://flowfuse.com","repository":{"type":"git","url":"git+https://github.com/FlowFuse/flowfuse.git"},"author":{"name":"FlowFuse Inc."},"bugs":{"url":"https://github.com/FlowFuse/flowfuse/issues"},"license":"SEE LICENSE IN ./LICENSE","readme":"","readmeFilename":"","keywords":["low-code-platform","low-code-development","low-code-development-platform","visual-programming","flow-based-programming","no-code","low-code","node-red"]}