{"_id":"@scalecube/scalecube-microservice","_rev":"465-5be5281ebe7b96e6253a17455f53c36e","time":{"0.1.0-remove-deprecated-packages-1551693759":"2019-03-04T13:02:33.949Z","created":"2019-03-04T14:33:52.602Z","0.1.1":"2019-03-04T14:33:52.971Z","modified":"2022-04-06T21:58:42.914Z","0.1.2-alpha.0":"2019-03-04T14:35:15.564Z","0.1.2-alpha.1":"2019-03-04T14:38:26.696Z","0.1.2-alpha.92":"2019-03-05T10:31:12.240Z","0.1.2-snapshot.1551863611.91":"2019-03-06T09:13:33.851Z","0.1.2-snapshot.1551871375.89":"2019-03-06T11:22:57.804Z","0.1.2-snapshot.1551951247.106":"2019-03-07T09:34:10.623Z","0.1.2-snapshot.1552202974.106":"2019-03-10T07:29:36.799Z","0.1.2-snapshot.1552206128.0":"2019-03-10T08:22:10.720Z","0.1.2-snapshot.1552228735.1":"2019-03-10T14:39:00.589Z","0.1.2-snapshot.1552228830.2":"2019-03-10T14:40:34.642Z","0.1.2-snapshot.1552294126.5":"2019-03-11T08:48:49.326Z","0.1.2-snapshot.1552294629.6":"2019-03-11T08:57:12.495Z","0.1.2-snapshot.1552295050.7":"2019-03-11T09:04:13.718Z","0.1.2-snapshot.1552295543.8":"2019-03-11T09:12:26.819Z","0.1.2-snapshot.1552316079.11":"2019-03-11T14:54:42.432Z","0.1.2-snapshot.1552318261.12":"2019-03-11T15:31:04.268Z","0.1.2-snapshot.1552378847.16":"2019-03-12T08:20:50.393Z","0.1.2-snapshot.1552391486.17":"2019-03-12T11:51:29.402Z","0.1.2-snapshot.1552397514.23":"2019-03-12T13:31:57.650Z","0.1.2-snapshot.1552465034.25":"2019-03-13T08:17:17.795Z","0.1.2-snapshot.1552466950.26":"2019-03-13T08:49:12.695Z","0.1.2-snapshot.1552467539.27":"2019-03-13T08:59:02.362Z","0.1.2-snapshot.1552468902.29":"2019-03-13T09:21:45.478Z","0.1.2-snapshot.1552474483.30":"2019-03-13T10:54:46.371Z","0.1.2-snapshot.1552495800.32":"2019-03-13T16:50:04.832Z","0.1.2-snapshot.1552551957.33":"2019-03-14T08:26:00.718Z","0.1.2-snapshot.1552557462.34":"2019-03-14T09:57:44.971Z","0.1.2-snapshot.1552558445.35":"2019-03-14T10:14:08.603Z","0.1.2-snapshot.1552570051.1":"2019-03-14T13:27:34.718Z","0.1.2-snapshot.1552570350.2":"2019-03-14T13:32:33.068Z","0.1.2-alpha.2":"2019-03-14T13:39:02.496Z","0.1.2-snapshot.1552579971.38":"2019-03-14T16:12:53.821Z","0.1.2":"2019-03-14T16:15:10.956Z","0.1.3-alpha.0":"2019-03-14T16:19:46.813Z","0.1.2-snapshot.1552662786.39":"2019-03-15T15:13:16.653Z","0.1.2-snapshot.1552664497.40":"2019-03-15T15:41:40.154Z","0.1.2-snapshot.1552665291.41":"2019-03-15T15:54:58.121Z","0.1.2-snapshot.1552668881.42":"2019-03-15T16:54:47.152Z","0.1.2-snapshot.1552901234.46":"2019-03-18T09:27:17.313Z","0.1.2-snapshot.1552902219.47":"2019-03-18T09:43:41.808Z","0.1.2-snapshot.1552979161.36":"2019-03-19T07:06:04.487Z","0.1.3-snapshot.1552980910.6":"2019-03-19T07:35:13.694Z","0.1.3-snapshot.1552982221.7":"2019-03-19T07:57:04.535Z","0.1.3-alpha.1":"2019-03-19T08:29:03.181Z","0.1.3-snapshot.1552985295.0":"2019-03-19T08:48:17.752Z","0.1.3-snapshot.1552986169.1":"2019-03-19T09:02:52.266Z","0.1.3-snapshot.1552993153.2":"2019-03-19T10:59:16.475Z","0.1.2-snapshot.1552996180.47":"2019-03-19T11:49:47.336Z","0.1.3-snapshot.1552997980.3":"2019-03-19T12:19:43.528Z","0.1.2-snapshot.1553001984.48":"2019-03-19T13:26:31.509Z","0.1.3-snapshot.1553063995.4":"2019-03-20T06:39:57.566Z","0.1.2-snapshot.1553068407.49":"2019-03-20T07:53:33.591Z","0.1.3-snapshot.1553068510.5":"2019-03-20T07:55:12.917Z","0.1.3-snapshot.1553070921.113":"2019-03-20T08:35:27.173Z","0.1.3-snapshot.1553076451.112":"2019-03-20T10:07:38.832Z","0.1.3-alpha.2":"2019-03-20T10:09:29.652Z","0.1.3-snapshot.1553077397.160":"2019-03-20T10:23:20.441Z","0.1.3-snapshot.1553079708.133":"2019-03-20T11:01:50.842Z","0.1.3-snapshot.1553162954.128":"2019-03-21T10:09:22.615Z","0.1.3-snapshot.1553172558.124":"2019-03-21T12:49:25.234Z","0.1.3-snapshot.1553185548.121":"2019-03-21T16:25:55.211Z","0.1.3-snapshot.1553237961.119":"2019-03-22T06:59:28.691Z","0.1.3-snapshot.1553241597.118":"2019-03-22T08:00:03.604Z","0.1.3-snapshot.1553245821.116":"2019-03-22T09:10:28.457Z","0.1.3-snapshot.1553414679.115":"2019-03-24T08:04:45.309Z","0.1.3-snapshot.1553427406.0":"2019-03-24T11:36:49.911Z","0.1.3-snapshot.1553494874.1":"2019-03-25T06:21:16.932Z","0.1.3-snapshot.1553503014.121":"2019-03-25T08:37:04.143Z","0.1.2-snapshot.1553503060.60":"2019-03-25T08:37:47.343Z","0.1.3-snapshot.1553507011.114":"2019-03-25T09:43:40.784Z","0.1.3-snapshot.1553507684.113":"2019-03-25T09:54:50.819Z","0.1.3-snapshot.1553517557.112":"2019-03-25T12:39:24.059Z","0.1.2-snapshot.1553518073.63":"2019-03-25T12:47:58.876Z","0.1.3-snapshot.1553518077.123":"2019-03-25T12:48:04.102Z","0.1.3-snapshot.1553520073.121":"2019-03-25T13:21:16.173Z","0.1.2-snapshot.1553520080.63":"2019-03-25T13:21:26.950Z","0.1.3-snapshot.1553525924.120":"2019-03-25T14:58:47.152Z","0.1.2-snapshot.1553525927.63":"2019-03-25T14:58:56.331Z","0.1.3-snapshot.1553530687.112":"2019-03-25T16:18:12.938Z","0.1.3-alpha.3":"2019-03-25T18:14:51.075Z","0.1.3-snapshot.1553619268.119":"2019-03-26T16:54:43.135Z","0.1.2-snapshot.1553668620.64":"2019-03-27T06:37:06.788Z","0.1.3-snapshot.1553668713.121":"2019-03-27T06:38:39.210Z","0.1.2-snapshot.1553668724.64":"2019-03-27T06:38:50.089Z","0.1.3-snapshot.1553668728.122":"2019-03-27T06:38:54.573Z","0.1.3-snapshot.1553669516.121":"2019-03-27T06:52:02.440Z","0.1.2-snapshot.1553669522.64":"2019-03-27T06:52:09.068Z","0.1.3-snapshot.1553692588.97":"2019-03-27T13:16:34.127Z","0.1.3-snapshot.1553693204.95":"2019-03-27T13:26:51.743Z","0.1.3-alpha.4":"2019-03-27T13:45:44.592Z","0.1.3-snapshot.1553700586.176":"2019-03-27T15:29:53.248Z","0.1.3-snapshot.1553756973.170":"2019-03-28T07:09:45.007Z","0.1.3-snapshot.1553779139.0":"2019-03-28T13:19:04.960Z","0.1.3-snapshot.1553781614.157":"2019-03-28T14:00:17.209Z","0.1.3-snapshot.1554022676.153":"2019-03-31T08:58:00.067Z","0.1.3-snapshot.1554026585.149":"2019-03-31T10:03:08.609Z","0.1.3-snapshot.1554035732.144":"2019-03-31T12:35:35.905Z","0.1.3-snapshot.1554110164.0":"2019-04-01T09:16:06.619Z","0.1.3-snapshot.1554111669.144":"2019-04-01T09:41:16.509Z","0.1.3-snapshot.1554113874.1":"2019-04-01T10:17:57.172Z","0.1.3-snapshot.1554114155.2":"2019-04-01T10:22:38.419Z","0.1.3-snapshot.1554114287.3":"2019-04-01T10:24:50.310Z","0.1.3-snapshot.1554116209.4":"2019-04-01T10:56:51.889Z","0.1.3-snapshot.1554118660.5":"2019-04-01T11:37:42.655Z","0.1.3-snapshot.1554121691.141":"2019-04-01T12:28:20.667Z","0.1.3-snapshot.1554123164.138":"2019-04-01T12:52:51.124Z","0.1.3-snapshot.1554123288.6":"2019-04-01T12:54:51.082Z","0.1.3-alpha.5":"2019-04-01T13:09:24.975Z","0.1.3-snapshot.1554124803.2":"2019-04-01T13:20:09.914Z","0.1.3-alpha.6":"2019-04-01T13:24:14.553Z","0.1.3-snapshot.1554126900.9":"2019-04-01T13:55:03.370Z","0.1.3-snapshot.1554127129.10":"2019-04-01T13:58:51.983Z","0.1.3-snapshot.1554193810.11":"2019-04-02T08:30:13.144Z","0.1.3-snapshot.1554204953.15":"2019-04-02T11:35:56.570Z","0.1.3-snapshot.1554208063.16":"2019-04-02T12:27:46.645Z","0.1.3-snapshot.1554214232.17":"2019-04-02T14:10:35.656Z","0.1.3-snapshot.1554286254.18":"2019-04-03T10:10:57.847Z","0.1.3-snapshot.1554291845.20":"2019-04-03T11:44:08.531Z","0.1.3-snapshot.1554366721.21":"2019-04-04T08:32:04.530Z","0.1.3-snapshot.1554375824.23":"2019-04-04T11:03:47.146Z","0.1.3-snapshot.1554391177.26":"2019-04-04T15:19:40.901Z","0.1.3-snapshot.1554717186.27":"2019-04-08T09:53:08.947Z","0.1.3-snapshot.1554992524.29":"2019-04-11T14:22:07.606Z","0.1.3-snapshot.1555230396.31":"2019-04-14T08:26:39.192Z","0.1.3-snapshot.1555234895.32":"2019-04-14T09:41:38.648Z","0.1.3-snapshot.1555236719.33":"2019-04-14T10:12:02.975Z","0.1.3-snapshot.1555237581.34":"2019-04-14T10:26:23.520Z","0.1.3-snapshot.1555485719.41":"2019-04-17T07:22:02.089Z","0.1.3-snapshot.1555500869.43":"2019-04-17T11:34:32.582Z","0.1.3-snapshot.1555502500.44":"2019-04-17T12:01:43.476Z","0.1.3-snapshot.1555505080.45":"2019-04-17T12:44:43.128Z","0.1.3-snapshot.1555508990.46":"2019-04-17T13:49:59.503Z","0.1.3-snapshot.1555588613.47":"2019-04-18T11:56:56.213Z","0.1.3-snapshot.1555912815.5":"2019-04-22T06:00:18.722Z","0.1.3-snapshot.1555916155.6":"2019-04-22T06:55:57.720Z","0.1.3-snapshot.1555920276.48":"2019-04-22T08:04:39.402Z","0.1.3-snapshot.1555923215.7":"2019-04-22T08:53:38.635Z","0.1.3-snapshot.1556452144.58":"2019-04-28T11:49:07.397Z","0.1.3-snapshot.1556523481.57":"2019-04-29T07:38:04.611Z","0.1.3-snapshot.1556535916.55":"2019-04-29T11:05:31.934Z","0.1.3-snapshot.1556535985.54":"2019-04-29T11:06:28.531Z","0.1.3-snapshot.1556540327.53":"2019-04-29T12:18:49.538Z","0.1.3-snapshot.1556540594.52":"2019-04-29T12:23:17.123Z","0.1.3-snapshot.1556540756.8":"2019-04-29T12:26:00.024Z","0.1.3-snapshot.1556546966.50":"2019-04-29T14:09:36.374Z","0.1.3-snapshot.1556620194.11":"2019-04-30T10:29:58.092Z","0.1.3-snapshot.1556626989.49":"2019-04-30T12:23:16.971Z","0.1.3-snapshot.1556633767.12":"2019-04-30T14:16:10.855Z","0.1.3-snapshot.1556635488.49":"2019-04-30T14:44:54.873Z","0.1.3-snapshot.1556708831.14":"2019-05-01T11:07:15.064Z","0.1.3-snapshot.1556783006.49":"2019-05-02T07:43:33.198Z","0.1.3-snapshot.1556789981.16":"2019-05-02T09:39:45.424Z","0.1.3-snapshot.1556790188.17":"2019-05-02T09:43:11.053Z","0.1.3-snapshot.1556805319.18":"2019-05-02T13:55:23.479Z","0.1.3-snapshot.1556808531.19":"2019-05-02T14:48:55.088Z","0.1.3-snapshot.1557130480.49":"2019-05-06T08:14:47.186Z","0.1.3-alpha.7":"2019-05-06T08:21:55.133Z","0.1.3-snapshot.1557139013.120":"2019-05-06T10:36:56.339Z","0.1.3-snapshot.1557140321.118":"2019-05-06T10:58:44.973Z","0.1.3-snapshot.1557140901.21":"2019-05-06T11:08:24.763Z","0.1.3-snapshot.1557666818.22":"2019-05-12T13:13:41.245Z","0.1.3-snapshot.1557667171.22":"2019-05-12T13:19:34.433Z","0.1.3-snapshot.1557731632.23":"2019-05-13T07:13:56.096Z","0.1.3-snapshot.1557753638.24":"2019-05-13T13:20:41.720Z","0.1.3-snapshot.1557760368.25":"2019-05-13T15:12:52.268Z","0.1.3-alpha.8":"2019-05-14T07:45:03.108Z","0.1.3-snapshot.1557829813.0":"2019-05-14T10:30:16.727Z","0.1.3-snapshot.1557830055.1":"2019-05-14T10:34:18.347Z","0.1.3-snapshot.1557834609.4":"2019-05-14T11:50:13.429Z","0.1.3-snapshot.1557840670.5":"2019-05-14T13:31:14.164Z","0.1.3-alpha.9":"2019-05-14T15:03:11.737Z","0.1.3-snapshot.1557911592.1":"2019-05-15T09:13:15.948Z","0.1.3-snapshot.1557929243.6":"2019-05-15T14:07:41.964Z","0.1.3-snapshot.1557933816.2":"2019-05-15T15:23:54.717Z","0.1.3-alpha.10":"2019-05-15T15:24:33.363Z","0.1.3-snapshot.1557935110.3":"2019-05-15T15:45:15.642Z","0.1.3-alpha.11":"2019-05-16T07:55:55.618Z","0.1.3-snapshot.1558004488.0":"2019-05-16T11:01:31.543Z","0.1.3-snapshot.1558011119.1":"2019-05-16T12:52:02.574Z","0.1.3-alpha.12":"2019-05-16T13:22:01.932Z","0.1.3-snapshot.1558344395.2":"2019-05-20T09:26:38.734Z","0.1.3-snapshot.1558344773.3":"2019-05-20T09:32:58.081Z","0.1.3-alpha.13":"2019-05-20T09:35:04.257Z","0.1.3-snapshot.1558434201.0":"2019-05-21T10:23:24.749Z","0.1.3-snapshot.1558441159.0":"2019-05-21T12:19:22.617Z","0.1.3-alpha.14":"2019-05-21T12:36:52.412Z","0.1.3-alpha.15":"2019-05-27T12:06:28.217Z","0.1.3-snapshot.1559049643.0":"2019-05-28T13:20:46.867Z","0.1.3-snapshot.1559050838.2":"2019-05-28T13:40:41.731Z","0.1.3-snapshot.1559054374.4":"2019-05-28T14:39:37.063Z","0.1.3-snapshot.1559054346.3":"2019-05-28T14:40:41.480Z","0.1.3-snapshot.1559055541.5":"2019-05-28T14:59:05.064Z","0.1.3-snapshot.1559116552.6":"2019-05-29T07:56:05.630Z","0.1.3-snapshot.1559117284.7":"2019-05-29T08:08:07.434Z","0.1.3-snapshot.1559118277.8":"2019-05-29T08:24:41.090Z","0.1.3-snapshot.1559122508.9":"2019-05-29T09:35:11.977Z","0.1.3-alpha.16":"2019-05-30T09:05:06.020Z","0.1.3-snapshot.1559219639.12":"2019-05-30T12:34:03.465Z","0.1.3-snapshot.1559454850.13":"2019-06-02T05:54:14.496Z","0.1.3-snapshot.1559631723.14":"2019-06-04T07:02:06.966Z","0.1.3-alpha.17":"2019-06-04T09:39:10.151Z","0.1.3-snapshot.1560405226.13":"2019-06-13T05:53:50.012Z","0.1.3-snapshot.1560426579.15":"2019-06-13T11:49:53.922Z","0.1.3-snapshot.1560429815.16":"2019-06-13T12:44:08.489Z","0.1.3-snapshot.1560438276.17":"2019-06-13T15:04:47.889Z","0.1.3-snapshot.1560438959.18":"2019-06-13T15:16:06.576Z","0.1.3-alpha.18":"2019-06-13T15:22:40.923Z","0.1.3-snapshot.1560688729.2":"2019-06-16T12:39:04.247Z","0.1.3-alpha.19":"2019-06-16T12:55:51.383Z","0.1.3-snapshot.1560866824.0":"2019-06-18T14:07:18.643Z","0.1.3-snapshot.1560870013.1":"2019-06-18T15:00:17.225Z","0.1.3-snapshot.1561025291.2":"2019-06-20T10:08:20.063Z","0.1.3-alpha.20":"2019-06-20T10:17:05.464Z","0.1.3-snapshot.1561539622.1":"2019-06-26T09:00:40.324Z","0.1.3-snapshot.1561622060.2":"2019-06-27T07:54:25.952Z","0.1.3-snapshot.1561624639.3":"2019-06-27T08:37:25.434Z","0.1.3-snapshot.1561635962.4":"2019-06-27T11:46:15.213Z","0.1.3-snapshot.1561880813.5":"2019-06-30T07:47:08.886Z","0.1.3-snapshot.1561972738.6":"2019-07-01T09:19:13.096Z","0.1.3-snapshot.1562058980.9":"2019-07-02T09:16:29.361Z","0.1.3-snapshot.1562073196.10":"2019-07-02T13:13:26.115Z","0.1.3-snapshot.1562076916.11":"2019-07-02T14:15:23.130Z","0.1.3-snapshot.1562144775.12":"2019-07-03T09:06:23.372Z","0.1.3-snapshot.1562224320.13":"2019-07-04T07:12:09.014Z","0.1.3-snapshot.1562230640.14":"2019-07-04T08:57:27.908Z","0.1.3-snapshot.1562236272.16":"2019-07-04T10:31:16.327Z","0.1.3-snapshot.1562237962.16":"2019-07-04T10:59:31.420Z","0.1.3-snapshot.1562239058.19":"2019-07-04T11:17:41.858Z","0.1.3-snapshot.1562249015.20":"2019-07-04T14:03:39.522Z","0.1.3-snapshot.1562254187.18":"2019-07-04T15:29:54.929Z","0.1.3-snapshot.1562564268.21":"2019-07-08T05:38:03.418Z","0.1.3-alpha.21":"2019-07-08T14:28:59.413Z","0.1.3-snapshot.1562656733.2":"2019-07-09T07:19:09.629Z","0.1.3-alpha.22":"2019-07-09T13:11:44.014Z","0.1.3-snapshot.1562705091.4":"2019-07-09T20:44:54.082Z","0.1.3-snapshot.1562751548.7":"2019-07-10T09:39:27.306Z","0.1.3-alpha.23":"2019-07-10T13:41:11.223Z","0.1.3-alpha.24":"2019-07-11T07:45:04.305Z","0.1.3-snapshot.1562831142.1":"2019-07-11T07:45:45.740Z","0.1.3-snapshot.1562831638.24":"2019-07-11T07:54:15.190Z","0.1.3-snapshot.1562846370.27":"2019-07-11T11:59:33.952Z","0.1.3-snapshot.1562853012.29":"2019-07-11T13:50:15.714Z","0.1.3-snapshot.1563090695.30":"2019-07-14T07:51:51.628Z","0.1.3-snapshot.1563091848.30":"2019-07-14T08:10:52.133Z","0.1.3-alpha.25":"2019-07-14T10:10:08.139Z","0.1.3-snapshot.1563099123.31":"2019-07-14T10:12:06.109Z","0.1.3-snapshot.1563099425.32":"2019-07-14T10:17:21.446Z","0.1.3-alpha.26":"2019-07-14T10:58:06.170Z","0.1.3-snapshot.1563179607.1":"2019-07-15T08:33:34.836Z","0.1.3-snapshot.1563283241.8":"2019-07-16T13:20:54.165Z","0.1.3-snapshot.1563284510.9":"2019-07-16T13:42:01.711Z","0.1.3-snapshot.1563375651.10":"2019-07-17T15:01:20.338Z","0.1.3-snapshot.1563376995.11":"2019-07-17T15:23:40.471Z","0.1.3-snapshot.1563461668.12":"2019-07-18T14:54:31.457Z","0.1.3-alpha.27":"2019-07-18T15:04:35.246Z","0.1.3-snapshot.1563693729.2":"2019-07-21T07:22:25.322Z","0.1.3-snapshot.1563884277.7":"2019-07-23T12:18:11.573Z","0.1.3-snapshot.1563887401.9":"2019-07-23T13:10:27.533Z","0.1.3-snapshot.1563958227.10":"2019-07-24T08:50:38.143Z","0.1.3-snapshot.1563972477.10":"2019-07-24T12:48:09.177Z","0.1.3-snapshot.1564040660.11":"2019-07-25T07:44:41.153Z","0.1.3-snapshot.1564042350.11":"2019-07-25T08:12:51.401Z","0.1.3-snapshot.1564048931.12":"2019-07-25T10:02:43.943Z","0.1.3-alpha.28":"2019-07-25T10:11:57.302Z","0.1.3-snapshot.1564059044.3":"2019-07-25T12:51:02.168Z","0.1.3-snapshot.1564392337.5":"2019-07-29T09:26:04.724Z","0.1.3-snapshot.1564407023.36":"2019-07-29T13:30:29.907Z","0.1.3-alpha.29":"2019-07-30T12:07:45.932Z","0.1.3-snapshot.1564496780.4":"2019-07-30T14:26:34.040Z","0.1.3-alpha.30":"2019-07-31T08:09:44.880Z","0.1.3-snapshot.1564563590.1":"2019-07-31T09:00:07.695Z","0.1.3-snapshot.1564575050.1":"2019-07-31T12:10:54.086Z","0.1.3-snapshot.1564576982.1":"2019-07-31T12:43:05.842Z","0.1.3-alpha.31":"2019-07-31T12:52:01.002Z","0.1.3-snapshot.1564754630.3":"2019-08-02T14:04:24.497Z","0.1.3-snapshot.1564761337.4":"2019-08-02T15:55:41.292Z","0.1.3-alpha.32":"2019-08-05T07:53:55.764Z","0.1.3-snapshot.1564993835.8":"2019-08-05T08:30:38.241Z","0.1.3-alpha.33":"2019-08-05T09:06:34.541Z","0.1.3-snapshot.1565014940.5":"2019-08-05T14:22:28.355Z","0.1.3-snapshot.1565015401.6":"2019-08-05T14:30:10.509Z","0.1.3-snapshot.1565160659.7":"2019-08-07T06:51:09.162Z","0.1.3-snapshot.1565172153.8":"2019-08-07T10:05:32.603Z","0.1.3-snapshot.1565181801.11":"2019-08-07T12:43:28.023Z","0.1.3-alpha.34":"2019-08-07T13:01:16.945Z","0.1.3-snapshot.1565182903.6":"2019-08-07T13:02:07.775Z","0.1.3-snapshot.1565528584.2":"2019-08-11T13:03:31.808Z","0.1.3-snapshot.1565599152.3":"2019-08-12T08:39:15.686Z","0.1.3-snapshot.1565600280.4":"2019-08-12T08:58:03.218Z","0.1.3-snapshot.1565604509.5":"2019-08-12T10:08:32.556Z","0.1.3-alpha.35":"2019-08-12T10:58:27.317Z","0.1.3-snapshot.1565879804.0":"2019-08-15T14:37:16.439Z","0.1.3-snapshot.1565942097.0":"2019-08-16T07:55:00.372Z","0.1.3-snapshot.1565953181.1":"2019-08-16T10:59:48.152Z","0.1.3-snapshot.1565956153.0":"2019-08-16T11:49:20.328Z","0.1.3-alpha.36":"2019-08-18T05:51:29.306Z","0.1.3-snapshot.1566108010.1":"2019-08-18T06:00:33.154Z","0.1.3-snapshot.1567075661.2":"2019-08-29T10:47:44.440Z","0.1.3-next.0":"2019-08-29T11:26:29.530Z","0.1.3-snapshot.1567320926.3":"2019-09-01T06:55:30.348Z","0.1.3-alpha.1567321030.4":"2019-09-01T06:57:14.271Z","0.1.3-alpha.1567321482.4":"2019-09-01T07:04:46.656Z","0.1.3-alpha.1567321859.5":"2019-09-01T07:11:16.006Z","0.1.3-next.1":"2019-09-01T08:41:54.719Z","0.1.3-alpha.1567341768.7":"2019-09-01T12:42:52.258Z","0.1.3-alpha.1567589972.8":"2019-09-04T09:40:03.517Z","0.1.3-alpha.1567945659.9":"2019-09-08T12:27:51.942Z","0.1.3-alpha.1568208690.10":"2019-09-11T13:31:34.453Z","0.1.3-next.2":"2019-09-11T14:09:38.153Z","0.1.3-alpha.1568233595.0":"2019-09-11T20:26:44.427Z","0.1.4-next.0":"2019-09-15T08:17:13.434Z","0.1.4-alpha.1570345800.0":"2019-10-06T07:10:24.123Z","0.1.4-alpha.1570353846.1":"2019-10-06T09:24:28.789Z","0.1.4-alpha.1571751561.5":"2019-10-22T13:39:44.265Z","0.1.4-next.1":"2019-10-22T14:51:06.336Z","0.1.4-alpha.1572424884.3":"2019-10-30T08:41:43.346Z","0.1.4-alpha.1572425228.4":"2019-10-30T08:47:30.522Z","0.1.4-alpha.1572428741.5":"2019-10-30T09:46:17.099Z","0.1.4-next.2":"2019-10-31T08:17:08.543Z","0.1.4-alpha.1572514385.1":"2019-10-31T09:33:25.425Z","0.1.4-alpha.1572514620.2":"2019-10-31T09:37:23.832Z","0.1.4-next.3":"2019-10-31T09:43:55.524Z","0.1.4-alpha.1572516199.3":"2019-10-31T10:03:42.233Z","0.1.4-alpha.1572516448.4":"2019-10-31T10:07:50.137Z","0.1.4-alpha.1572517421.4":"2019-10-31T10:24:08.645Z","0.1.4-next.4":"2019-10-31T10:30:57.267Z","0.1.4-alpha.1572778096.0":"2019-11-03T10:48:36.792Z","0.1.4-next.5":"2019-11-04T09:59:59.521Z","0.1.4-alpha.1572865816.1":"2019-11-04T11:10:29.088Z","0.1.4-next.6":"2019-11-04T13:12:34.182Z","0.1.4-alpha.1573566799.0":"2019-11-12T13:53:24.141Z","0.1.4-next.7":"2019-11-12T16:32:13.360Z","0.1.4-alpha.1573641772.0":"2019-11-13T10:43:19.999Z","0.1.4-alpha.1573657123.4":"2019-11-13T14:58:47.501Z","0.1.4-next.8":"2019-11-13T15:07:10.701Z","0.1.4-alpha.1573661720.0":"2019-11-13T16:15:42.480Z","0.1.4-next.9":"2019-11-14T08:22:47.885Z","0.1.4-alpha.1573721432.0":"2019-11-14T08:51:02.716Z","0.1.4-next.10":"2019-11-14T09:19:54.987Z","0.1.4-alpha.1574157227.0":"2019-11-19T09:54:28.456Z","0.1.4-next.11":"2019-11-19T10:49:35.363Z","0.1.4-alpha.1574172010.1":"2019-11-19T14:00:14.750Z","0.1.4-alpha.1574172350.2":"2019-11-19T14:06:16.071Z","0.1.4-next.12":"2019-11-19T14:14:25.336Z","0.1.4-alpha.1574235200.2":"2019-11-20T07:33:24.936Z","0.1.4-alpha.1574346337.0":"2019-11-21T14:25:40.557Z","0.1.4-alpha.1574346856.1":"2019-11-21T14:34:20.038Z","0.1.4-alpha.1574349086.2":"2019-11-21T15:11:29.963Z","0.1.4-next.13":"2019-11-21T15:17:30.910Z","0.1.4-alpha.1574689536.1":"2019-11-25T13:46:26.794Z","0.1.4-alpha.1574696602.2":"2019-11-25T15:43:46.688Z","0.1.4-next.14":"2019-11-25T15:53:58.863Z","0.1.4-alpha.1574778490.3":"2019-11-26T14:28:29.584Z","0.1.4-alpha.1574779267.4":"2019-11-26T14:41:15.037Z","0.1.4-next.15":"2019-11-27T11:01:56.354Z","0.1.4-alpha.1575185873.0":"2019-12-01T07:38:09.504Z","0.1.4-alpha.1575189026.0":"2019-12-01T08:30:31.170Z","0.1.4-alpha.1575199621.4":"2019-12-01T11:27:20.823Z","0.1.4-alpha.1575199758.5":"2019-12-01T11:29:40.474Z","0.1.4-next.16":"2019-12-01T13:20:45.668Z","0.1.4-alpha.1575298495.0":"2019-12-02T14:55:14.124Z","0.1.4-alpha.1575301043.0":"2019-12-02T15:38:03.184Z","0.1.4-next.17":"2019-12-02T15:52:50.411Z","0.1.4-alpha.1575394635.7":"2019-12-03T17:37:36.051Z","0.1.4-alpha.1575453788.8":"2019-12-04T10:03:29.360Z","0.1.4-alpha.1575545818.9":"2019-12-05T11:37:22.544Z","0.1.4-next.18":"2019-12-05T12:09:49.521Z","0.1.4-alpha.1581835731.2":"2020-02-16T06:49:12.935Z","0.1.4-alpha.1581836145.3":"2020-02-16T06:55:55.134Z","0.1.4-alpha.1581923193.4":"2020-02-17T07:06:59.433Z","0.1.4-next.19":"2020-03-15T11:21:17.157Z","0.1.4-alpha.1584274445.3":"2020-03-15T12:14:25.825Z","0.1.4-alpha.1589393845.4":"2020-05-13T18:17:50.601Z","0.1.4-next.20":"2020-05-14T14:09:16.861Z","0.1.4-alpha.1589712586.31":"2020-05-17T10:50:09.967Z","0.0.1-develop.1590946426.0":"2020-05-31T17:34:06.429Z","0.0.1-develop.1591043991.0":"2020-06-01T20:40:17.637Z","0.0.1-develop.1591044122.0":"2020-06-01T20:42:25.464Z","0.0.1-develop.1591044462.0":"2020-06-01T20:48:02.612Z","0.0.1-develop.1591047072.0":"2020-06-01T21:31:40.616Z","0.0.1-develop.1591086663.0":"2020-06-02T08:31:26.383Z","0.0.1-develop.1591089263.0":"2020-06-02T09:14:58.618Z","0.0.1-develop.1591089545.0":"2020-06-02T09:19:56.044Z","0.0.1-develop.1591730687.0":"2020-06-09T19:25:07.745Z","0.0.1-develop.1591732649.0":"2020-06-09T19:58:02.218Z","0.0.1-develop.1591732756.0":"2020-06-09T19:59:40.636Z","0.2.0":"2020-06-09T20:04:14.338Z","0.0.14-alpha.1592914245.190":"2020-06-23T12:11:09.307Z","0.0.14-alpha.1592915938.190":"2020-06-23T12:39:20.746Z","0.0.14-alpha.1592918572.190":"2020-06-23T13:23:15.316Z","0.0.14-alpha.1592920633.190":"2020-06-23T13:57:41.119Z","0.0.14-alpha.1592922567.190":"2020-06-23T14:29:54.643Z","0.0.14-alpha.1592923933.190":"2020-06-23T14:52:41.408Z","0.0.14-alpha.1592926976.190":"2020-06-23T15:43:18.272Z","0.0.14-alpha.1592993507.190":"2020-06-24T10:12:10.124Z","0.2.2-snapshot.feature-release-fix.1593006306.0":"2020-06-24T13:45:25.810Z","0.0.14-develop.1593012504.193":"2020-06-24T15:28:46.964Z","0.2.2-test.0":"2020-06-24T15:57:42.745Z","0.2.2-snapshot.feature-keep-alive-config-for-r-socket-gateway.1593079184.0":"2020-06-25T10:00:06.355Z","0.2.1-develop.1593091225":"2020-06-25T13:20:53.980Z","0.2.8-develop.1593098019":"2020-06-25T15:14:05.736Z","0.2.8":"2020-06-25T15:14:43.773Z","0.2.9":"2020-06-25T15:38:45.937Z","0.2.9-develop.1593099575":"2020-06-25T15:40:02.952Z","0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594809701":"2020-07-15T10:42:04.336Z","0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594819331":"2020-07-15T13:22:31.103Z","0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1596043949":"2020-07-29T17:32:56.584Z","0.2.10-develop.1596044522":"2020-07-29T17:42:33.835Z","0.2.10-snapshot.feature-addressable.1596051005":"2020-07-29T19:30:28.201Z","0.2.10-snapshot.feature-cluster-refactor.1598302712":"2020-08-24T20:58:58.804Z","0.2.10-snapshot.feature-browser-transport-rewrite.1598566502":"2020-08-27T22:15:27.502Z","0.2.10-snapshot.feature-browser-transport-rewrite.1598569755":"2020-08-27T23:09:38.817Z","0.2.10-snapshot.feature-browser-transport-rewrite.1598574027":"2020-08-28T00:20:52.466Z","0.2.10-snapshot.feature-browser-transport-rewrite.1598575005":"2020-08-28T00:37:16.341Z","0.2.10-snapshot.feature-browser-transport-rewrite.1598576038":"2020-08-28T00:54:29.982Z","0.2.10-snapshot.feature-browser-transport-rewrite.1598604330":"2020-08-28T08:45:56.134Z","0.2.10-snapshot.feature-browser-transport-rewrite.1598658437":"2020-08-28T23:47:46.179Z","0.2.10-develop.1598736437":"2020-08-29T21:27:49.090Z","0.2.10-snapshot.feature-bugfix-createGatewayProxy-unsubscribe-streams.1601511838":"2020-10-01T00:24:24.723Z","0.2.10-develop.1601629156":"2020-10-02T08:59:46.198Z","0.2.10-develop.1605529986":"2020-11-16T12:33:38.784Z","0.2.10-develop.1605540170":"2020-11-16T15:23:30.077Z","0.2.10-develop.1605540865":"2020-11-16T15:34:57.390Z","0.2.10-develop.1608856850":"2020-12-25T00:41:24.876Z","0.2.10-snapshot.feature-remote-registry-size-limit.1612487477":"2021-02-05T01:11:46.594Z","0.2.10-develop.1612488598":"2021-02-05T01:30:32.281Z","0.2.10-develop.1613225522":"2021-02-13T14:12:32.950Z","0.2.10-snapshot.feature-bug-fix-get-address-util.1613229626":"2021-02-13T15:20:55.854Z","0.2.10-develop.1613231531":"2021-02-13T15:52:48.200Z","0.2.10-develop.1615658637":"2021-03-13T18:04:33.831Z","0.2.10-develop.1615741150":"2021-03-14T16:59:41.191Z","0.2.10-develop.1616353666":"2021-03-21T19:08:14.927Z","0.2.10-snapshot.feature-gateway-client-package.1620814254":"2021-05-12T10:11:21.384Z","0.2.10-snapshot.feature-gateway-client-package.1620839036":"2021-05-12T17:04:20.282Z","0.2.10-develop.1620840200":"2021-05-12T17:23:52.159Z","0.2.10-develop.1620851601":"2021-05-12T20:33:49.505Z","0.2.10-develop.1627555116":"2021-07-29T10:39:06.393Z","0.2.10-develop.1627555687":"2021-07-29T10:48:43.411Z","0.2.10-develop.1627560302":"2021-07-29T12:05:36.082Z","0.2.10-develop.1627564289":"2021-07-29T13:12:00.964Z","0.2.10-develop.1627565868":"2021-07-29T13:38:20.795Z","0.2.10-develop.1627566799":"2021-07-29T13:53:52.028Z","0.2.10-develop.1627567383":"2021-07-29T14:03:39.499Z","0.2.10-develop.1627568201":"2021-07-29T14:17:10.465Z","0.2.10-develop.1627569513":"2021-07-29T14:39:03.488Z","0.2.10-develop.1627570912":"2021-07-29T15:02:21.585Z","0.2.10-develop.1627571964":"2021-07-29T15:19:59.897Z","0.2.10-develop.1627572615":"2021-07-29T15:30:45.490Z","0.2.10-develop.1627577023":"2021-07-29T16:44:11.395Z","0.2.10-develop.1627581576":"2021-07-29T18:00:04.531Z","0.2.10-develop.1628635932":"2021-08-10T22:52:43.976Z","0.2.10-snapshot.feature-z-test.1628640428":"2021-08-11T00:07:33.313Z","0.2.10-snapshot.feature-z-test.1628671774":"2021-08-11T08:50:03.749Z","0.2.10-develop.1628675503":"2021-08-11T09:52:10.565Z","0.2.10-develop.1628680608":"2021-08-11T11:17:16.601Z","0.2.11-develop.1628682230":"2021-08-11T11:44:21.631Z","0.2.11":"2021-08-11T12:33:44.318Z","0.2.11-snapshot.feature-node-matrix.1646099022":"2022-03-01T01:43:51.795Z"},"name":"@scalecube/scalecube-microservice","dist-tags":{"latest":"0.2.11","canary":"0.1.2-snapshot.1552979161.36","next":"0.2.2-test.0","snapshot":"0.2.11-snapshot.feature-node-matrix.1646099022","develop":"0.2.11-develop.1628682230"},"versions":{"0.1.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.1","private":false,"main":"index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf lib/ && tsc","check-all":"yarn coverage && yarn build"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","ts-jest":"^23.10.5","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"description":"scalecube-microservice","_id":"@scalecube/scalecube-microservice@0.1.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"idokatz","email":"ido@om2.com"},"dist":{"integrity":"sha512-S7mQ3fwCIHj2abVnDTaTGoWNPiPaVjtqU25EHfZyXDAHnHdhcGDyR6Y5/d3uawqBa/Kfsw2Q4rUPGvechGz2sw==","shasum":"7d8fdfdd4294724e062b63ef3307aaa332a5f585","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.1.tgz","fileCount":50,"unpackedSize":68548,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcfTdRCRA9TVsSAnZWagAAX+MP/0fMJ05aSsroOul7wLM5\n2/14MBIzcZY1ggWWtlaIGuhYRTZJgtbG5EeexMgHKCsbNoCMtR7Ao4EFjDqN\nonTnohzMUpHxlAYJuulsdKT/KIfm9omfUORTIZgvzSzhaynZJN7v6AjkAlUI\nDxTLaeGFweC8s9Nk8ffSlyIZVdT5CaGMXqAp6s+CfCna6Icq3RWgzzEXEMjD\n+rz+jRYrPTEZnvLEoNKCFNVYxA2T7U7VB/9HZY62vyDNemJe9re/QC9zPXsE\nIVa5jqQt6ngjvjE/8+YB9erV6qlYEPVpYvohlzXoTNmuXkTmMMhixvS5tm1p\nj6TlWCtBKvaeqwxtlmAp0mNNBsVDD8mL2axopgF3H9H8CTOSyeW43L1G/bug\nP5va7PqlwHJ/fNet8sF6KA8mj9RKN5u0GsVZeLxaDTZ1j4wPuVKTsGmGODDl\npCOQxQEXRXoP8x1+eieACMWPzvv0/b2l3nIsqImlkkjgtqkBJPfVcGC8oQW6\nlEzOjA/u31B2OBBBMrxOGGjqOeh3aYLSKwxM1r4T7y/IOqHHS8Z5+xgCM5tS\nXcrLGJVE1BVbL9ajSD1LavcWGpeE6s6DhFWEOK3eB44yODnS7XmSIk2ElNwO\n1v6nbZn1kxlXrGWpuWNYgBSRywoO0x3n2OmN/b+rrVC+e0oA/EzxZUYk8ZCO\nWj/o\r\n=RFBV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCypRWhzO9buozicTkjjaN/tH2BxbO9oq3jpeJFLDQAWAIgKjUrfG6xEGEyo0KiWNhhAIIACdKKw1U9tvncwFxr1+c="}]},"maintainers":[{"name":"idokatz","email":"ido@om2.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.1_1551710032789_0.8650067178869287"},"_hasShrinkwrap":false},"0.1.2-alpha.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-alpha.0","private":false,"main":"index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf lib/ && tsc","check-all":"yarn coverage && yarn build"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","ts-jest":"^23.10.5","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"03e82a853f6f92c9db319672383e58daf4841ba7","readme":"# scalecube-microservice\n","readmeFilename":"README.md","description":"","_id":"@scalecube/scalecube-microservice@0.1.2-alpha.0","_nodeVersion":"10.15.0","_npmVersion":"lerna/3.13.1/node@v10.15.0+x64 (darwin)","dist":{"integrity":"sha512-Rd2yMbf+7UYiR8zySlgJ2KiNrBsYXH8w8WyfXVcVPe3WXLqHq2ZXzBpkXPBksT2kRqzZmUJq+eY1ZUzZi+eliQ==","shasum":"a37675d9ac6ade6455d894877070913e45ef7996","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-alpha.0.tgz","fileCount":51,"unpackedSize":79980,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcfTekCRA9TVsSAnZWagAAwkMP/ijAlLXGAx3eXc8BaT0l\nHbGpIhkEF/U21/1eEoK/5MI1nhM8bBBDh8Tyqo/eIj6xyiOvb1nBLzzM/Kma\nv9iL8eqQcKbwYaplO+GLbdrVsrKpWBf5VzCGc5vfuoxdLaVqKrT8s6Q4vq+c\nQXI4HVgHvjeMX1fOG9g8bBqnMVSMUryM9SLcPrpKOJ2lURir1Lodbgj0Kj1i\nKaJiPk5sM/Pw+2BnKQFif/ddnGN/QyB1kZeihXCJFpSXSLC6CS6QeCLrBdlQ\njnSKnIGjPQUhLel+BXC4qdv2n/ZAqGUsgfdBtqZK6i8JZkhzuNKK0yAuK+19\n9vq4Q7hogMhAcmbolxmk/WqpLSrB6yfZH4fc00rSeXM2FlNDwKXYf247lWOI\nSUt705xDD0YlMYfnQm36tVfcle/G3+Whpiaj5tlQk4reTXS3SZAsvRPU77th\nPEytwlDLsedvZXtNmkkK4fdmyTcvefUygc/Eu4VsbAFxETovk2QfwhpckUcv\nfxEzd6yvaMm3x6inGitw4BMDRV6WgIvf32wknhaKVgUa6j7Uqv2oJQOkZlkP\nOg8drkQixTwTQ9omVFkHCW7RSFlzgddYOvAtuekOE0htFrgyU6cK2XgmmzoQ\nr9gVuVK+dlFSbkvI6TVNhU+yheNDO4MtHz5TVoJepkLmJBOFuGy6jEFCse0a\nyUe1\r\n=F9uR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF4Tr7Jeblf7Ayfhc1haSbcUOSw8nbLgBmWRYNJkf07sAiALaVcp2WoEBFXJhcVUuF9ylMqDkyMrlg1KT+7bQ3rIDg=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"idokatz","email":"ido@om2.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-alpha.0_1551710115401_0.29633279371579335"},"_hasShrinkwrap":false},"0.1.2-alpha.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-alpha.1","private":false,"main":"index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf lib/ && tsc","check-all":"yarn coverage && yarn build"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","ts-jest":"^23.10.5","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"8a5e456153f7224bffe27d439439b18ecc636f2e","readme":"# scalecube-microservice\n\nci test\n","readmeFilename":"README.md","description":"ci test","_id":"@scalecube/scalecube-microservice@0.1.2-alpha.1","_nodeVersion":"8.15.1","_npmVersion":"lerna/3.13.1/node@v8.15.1+x64 (linux)","dist":{"integrity":"sha512-gF0YnWb+KrjjxAqOa8uoMGe7oPRNgwwveoDsX3Q2YtAJzZyrKz/p2O6DgTKCym3q9BhYEM7kIbk4G9eFedbJ1g==","shasum":"4e9935a45398679031b5643e39c82bab1339ee40","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-alpha.1.tgz","fileCount":51,"unpackedSize":79989,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcfThjCRA9TVsSAnZWagAAbDkP/iwD1RZcyspgZjPT6tL6\nDERwPkw8AJBzbHNCsV7V9/D+hCflnivXLyCckvMLJOP42kQX7oparVdbkeq7\ngz4VJAFdSKi8vr2j+aoYDSLTP+vSudyKIBhhdRBL1UE3+Ii6AGaigx+Npz0X\njl74LWz6CVaLHrJWdRd6h3Q6PownrVSFllG0U/b86STfEgMssOUGVaVo42/W\noKvJbYIGP0/VA1kTlK3mQcOoHj1kx2/l20eA8RsjPgE7ZUnpuAY5TKis+5On\nH8KtqQPPQIOO1bilQQRgDc09MTzylzbTah84S98Jf0RhMUCuP8cs22I5TEvh\nIkBEwd7N0C+/XXofij5aSaFOGHUR51Vkfwhy72Iv/l+yjg4BZos4MUOYSi2R\n2Ic3YUKpzjnk9piVQlNTcbjBE4GiXSmuwFZuzyvEa/fAwt16d2Ujq505Eoi6\nIH7tl0JDDoJ8gIMM0hN7z9mmoGhQKkQC8nVDYCy8LJ6E+J7tLzD3K8JJdLgu\nGRUkZt/g3aNiIaktsUQn/nlSORmWj2D2OF0jwnqmc5sqhgUyISSSSuDMXPM8\nzUb0ggrp0Ri8DdjzLurfNqpBFfwI6pz50qJYL86EUj5ppHyq4PspfJE0RoS7\nA9cYUEu385iAB+wRlSY/CgPqkkjAQn2fbNXfrAadhLL9pte0tUaij8K4SWjI\nMAg+\r\n=LrWY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA5cX+lQzRDwdbo8mMZrPlii7n4VA4ujVruo/lp77PBdAiEA+KPCxncsY6sxkyg31olMFYqFoePMftpV+2cvz7Iy6v8="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-alpha.1_1551710306533_0.6436649808556796"},"_hasShrinkwrap":false},"0.1.2-alpha.92":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-alpha.92","private":false,"main":"index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf lib/ && tsc","check-all":"yarn coverage && yarn build"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","ts-jest":"^23.10.5","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"2531624593ff3f9c3536343938a2108c077926cc","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Define service:\n\n```javascript\n// service can be class || module || function\nclass GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nconst greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse',\n    },\n    greet$: {\n      asyncModel: 'RequestStream',\n    },\n  },\n};\n```\n\n## Bootstrap the service:\n\n```javascript\n// the provider of the service creates microserviceContainer and specifies the services that should be included in it\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\n```\n\n## Service structure\n\n```\n{\n  definition: greetingServiceDefinition,\n  reference: { // an object with all the methods that can be used in microfrontend\n    [methodName: string]: (...args: any[]) => any\n  }\n}\n```\n\n## ServiceDefinition structure\n\n```\n{\n  serviceName: string; // name of the service\n  methods: { // all methods in the service\n    [methodName: string]: { // methodName\n      asyncModel: AsyncModel; // RequestResponse || RequestStream\n    };\n  };\n}\n```\n\n# Version\n\n- http://semver.org/ format\n\n**MAJOR** version when you make incompatible API changes,\n\n**MINOR** version when you add functionality in a backwards-compatible manner, and\n\n**PATCH** version when you make backwards-compatible bug fixes.\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.2-alpha.92","_nodeVersion":"10.15.2","_npmVersion":"lerna/3.13.1/node@v10.15.2+x64 (linux)","dist":{"integrity":"sha512-8Z32cfDxNoVkpRTUPxcd58uuLBiaktTFG7O28ks/NX2NJRyl0AuNVARWgB9khpiZwujcnP6OvXXIarMjRaORWA==","shasum":"ada68b3022b53841de741c079f7bb4c0fc842fdf","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-alpha.92.tgz","fileCount":51,"unpackedSize":82465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcfk/xCRA9TVsSAnZWagAAG5EQAIbsgAI2hU7ukRovfT65\nuF4McLp4ByYXxOh1LhxAy6M9tcQA928+D8zsGxH38B0C2LPI49J7FkB8LTRz\n3YmBszo5C3uhAZVhDbksrJaao5GCESSF0ajoEu6pVURFK+tDSSV+W7k2VepM\nuug549bmK1lRb/YJATzQxEaNaiumPlIAsrDmHLG6rP63EtMASNTzu3JpteFV\ny5EwAOK+HMBdx7ZmBWACMVsxpsSF/43NriLobK0Wi+kOrJUreUJk/Vnd/UZv\nmAtXCSkSFIIaohtuNlxb1AVq6GA3QVpM4ZxHnZm+3mehIPIWQP/2Q0rhLwtS\n79SJSoorzYpt/Lybicyx4ALa2EsPD1iicm6sunz49a+IqXunt2RE5RFkLXq0\nphfcFp6QXbDVg3rirlJ6ooAnUcVrg6rtrQGAzNFgNNGK1+IRNWe2D4VqlunY\nZd0orduR+FO2/bHDBI+/Sq/9BBFgy5RFdYqpTiVyJ84wATBNi/Qxzjk9tC8r\nZVFjzfPH6ZACbDzTeORAr7jbxzWptNJ5HbYbIoBwItePlMnDiqHxww9daDZu\nETUp7LyaRvHq57YRvtnDcwe5WMXhmyeg9BmGsImKqIv0wiiA9Fbnb0QPvf0o\nEJ00NpSJlSz3nAdbPnLs7X3k5Pm1ul5DgOUfYRtPZ+edAkrZmzUHyH1foKSh\npCSW\r\n=xTJm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHD64DYFImapkkppEmiuwOHQILbqTUycrDZqBZtAZl4fAiEAwPKI0pnGRyebXiNS3kk1v17dQcse7ZAjSqsQdgado0k="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-alpha.92_1551781872067_0.7824836646100579"},"_hasShrinkwrap":false},"0.1.2-snapshot.1551863611.91":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1551863611.91","private":false,"main":"index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf lib/ && tsc","check-all":"yarn coverage && yarn build"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"7f0c1c6cd105bd22b10cfe27197f1ba889f1eff4","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Define service\n\n```javascript\n// service can be class || module || function\nclass GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nconst greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse',\n    },\n    greet$: {\n      asyncModel: 'RequestStream',\n    },\n  },\n};\n```\n\n## Bootstrap the service\n\n```javascript\n// the provider of the service creates microserviceContainer and specifies the services that should be included in it\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\n```\n\n## Service structure\n\n    {\n      definition: greetingServiceDefinition,\n      reference: { // an object with all the methods that can be used in microfrontend\n        [methodName: string]: (...args: any[]) => any\n      }\n    }\n\n## ServiceDefinition structure\n\n```text\n{\n  serviceName: string; // name of the service\n  methods: { // all methods in the service\n    [methodName: string]: { // methodName\n      asyncModel: AsyncModel; // RequestResponse || RequestStream\n    };\n  };\n}\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1551863611.91","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-l7a51uBHIgWr5+t5Pb7AvpkTOe5ESaKWvWZM7W3FBcfpRSpqOTOA4a+uKPwWBlg2dji2QEFsynhGLOBsK9b51A==","shasum":"9d82e30c92bd32c20a35246adf1c1b64c4a146e0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1551863611.91.tgz","fileCount":51,"unpackedSize":82300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcf48+CRA9TVsSAnZWagAAH7MQAJ1t77tdhNH+gey3KHFF\nU/Q0YR2k2spgytwogDRNGn7FI6Fy4+28nY0skxYjDWGI9GiFUoQnapjMqqz/\nxkkufVNJnqdbzhUPaeP7SEy9LbiA9S+sn+hFZzI12xesnTeREASyVAvMQvFR\nHTrH5n6cLHHxFBWxWbDvpXwF8H7kwmLVtk6tcp7EJHxwWdlR/RwHYjMj6gcF\nc71bV0oCzw1WIPUQeciELswVsYTmwM43l6kdcT2F5mzUR7IDXwW2yxEOW22A\n7lRp9oTfZAnamGia8W/q9TL+9juOaM2Rs8L1nzBCYbzyYt2KL4AfITsdDZgP\nGSBEkVpBrYXb/OMWEt9y8UlMR5x36NeIbxr6ioEDJq6hBZrId2gZI9oDkJuW\nMDT5jY+eHFeHFCu5WdjIncWI/227R6Wx/wl29js0UeimXPDbjeCM6dkqd4Qn\nfjYTnfgS7DYqqMMAqrpgajdSHLeKJiUtLQoZoyngnA3TJ/fe4c6/UzM11rnq\nMJtTqpskVmD6D3sZrNi9kYA2Ka6gpKMJhv369SjulW1AlREzJx9SpzeAQvTi\nG6+TbM1RMPZDCZ0z0mc3G/4ljBRPq5W0AgN6lCfxQr44OCNFayKFQf0o3/na\nPG0IoPpmImMw/Mkdkbk+7gdZXK7WIBTU8vGFzlbz6z0TxfQpC8ek7oMCCb09\n9L47\r\n=B0th\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDsLqgSFU4V9D2Oy8R3HEzfYbb8J1ch4g7c1dYASpln+gIgTDp2VcezUc3SYpiQakxEUOC3d8icrNyi3KDknTJEaK0="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1551863611.91_1551863613689_0.7389142890862401"},"_hasShrinkwrap":false},"0.1.2-snapshot.1551871375.89":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1551871375.89","private":false,"main":"index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf lib/ && tsc","check-all":"yarn coverage && yarn build"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"8a7ead66b0fffc8a89795951bd30c4046dcd2294","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n\n## Create a service\nCreate your service how ever you like,\nIt can be done using Class approach\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\nAs long as it hold to the contract(serviceDefinition):\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse',\n    },\n    greet$: {\n      asyncModel: 'RequestStream',\n    },\n  },\n};\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n\n\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1551871375.89","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-Dhcl+C6TprSblVQUA8DsUNGMaAH7coq3tPo3DYC+6D+N4YLpXeQe3z3t4DC+ZHsGSCwdNlbE3gfCxbCnqWp4dg==","shasum":"a10100b5c86caf73716c33119f3fcfb188f3a278","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1551871375.89.tgz","fileCount":51,"unpackedSize":82724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcf62SCRA9TVsSAnZWagAAAPMQAKAYk1fvmfuoZ36eWPn5\nzv1Cdb3Dq8Qm2Yqv6IrpCFuz1tESUHxlqczM+YXyIS+sXZNbbpHmp8Iz45jM\n5gRkiB8VNdmuIXw3cGAZdUFvIeDvSQIZq+7EwcO7haMLPLQmg7AD5A5V8dMq\nmzLYG21bIAPNwxZTbG05jc00MfoPAhXfjKlcEpDREJ0twFq2z4B4fbczIbaG\nOUFM/uWZkp4kspN6BIXGjHkdnGQ3iRL5ldafy0SSj5u5vblpUUP9U6g52wPv\ndgRC+SjNkgC3k+5qxeP34vri2EWaCyd3AfTM5qt1a+r/cbqy5w2n3Vd+xcrj\nwZ8r/Ja71r80C0yp5GagfNAbud9+0vxbgQajnUw+k2OvAFPYzRdLCqhN7LpN\noWyojDQHsLNDgrnLw9944dhROobY/xuKuS2a+oWFNi9Cs7wAOVm0KpqZtFUp\neYzzjtRHkUlgS6tXXFlt+w0XRKCpKSvX8nST7XBLKrFNIhzsWyz1PPFvNbxQ\nT9WAAHG4ACY3T0gqVg3xhEUFwIFPo1WTqFGq4Sd+leqy3IZN69wgmq7B29ye\nnmYUNB14XSqmC4g6M55znAwa0WPIU+GURwn4ebn/5YVRoD/0TA1Zm1LICzVS\nGThYhiQBqa46aYwOn0wiC1V/f9Gk3r0bu7By+yEeWPDmdvRfNyfZeiGYjsYi\nPwiL\r\n=bzn3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIYzXNp0ch8o29wd6vNIr/rtT4hDEDZi4AJRHxEJFavgIhALW8StOiuVPcR4M8SiTKxfg313es1TMv0m0VVQpSCmoi"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1551871375.89_1551871377675_0.3946733208369271"},"_hasShrinkwrap":false},"0.1.2-snapshot.1551951247.106":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1551951247.106","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"9c50b65e8cf30d5379de2e224da4ad9757b9943c","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1551951247.106","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-elWRwfBqbEp+WuYQSkpmPNIDqq+Hl2Jh/w8OPF1zC6jy1x51tbbUoAI+ehp4AUwMYrQafbnX9wZTksfCC6o4pA==","shasum":"916b28957acb5c4fc50745983d8b9aab70332cd2","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1551951247.106.tgz","fileCount":247,"unpackedSize":620220,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcgOWTCRA9TVsSAnZWagAAVncP/iaZnU4YyCvoaKwflb33\n6mkkqB54clLbVpbWTshwfF1foOodg5/I3UblbJJElbL3SPQMRU3ubrNsiOcD\nuviclb4HsG8NHGDpdXi2WFUDP2hyBd/TgF+j9AHYcZG8e+aOP/gwIolbr70U\nIV7btm7u2byg2DBkymZ8k3OV8mP4vobNiQWXweenSUr63evlPCv5bULJmqjf\n9D2laYPseU07x1mzGR3wjSDmM+7S77Uy/YjrHqyqHJgKKETJCjthkKeBrMeD\noPVfggoZZVpqAk/8aI1YceAvCEGsuubi4kRsHTcLe2tCH8suzOKWezwjSZXN\nmzXnEPxl91p2L/HGFHSleMraz6gMW82h6UxpEsJd07rwbv41Umin8jYwryI9\nJqelkD5hAAV+29QIMq63VCztxWHj0Y39IZ+wwtKZsZKew70lPXnYqkCCVwzs\np59CgM2K8+JhIJjKZa+/91qgbytxtLimE7LtyvaMcClcf9TQjXefjKNE34AZ\nV8iO8pEZHTPr5zRlxLxobCsNJn6AzAUokAc1LdIxAGrqCOLREi94w0Ybqtk/\neblt6Ha+IDuDI+T/4tgfaCmH2egBRJbtAQGWpc2Fam/SVhjqimg4bBnrj8w/\nSKVw7FJbkK4WjcS83PluGLc68bTDETNogLBAX0jIn7cdRQg5hGeWJM9S/coZ\neg+5\r\n=dzCg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDcnTS+Z8pcN6GNqqTUvlk9qWa4AdeF9GtbUKumYLudwAiEAvuXEp4Aihs9p4eRD+2LB/+5kFbD2uqzxduPeHqZ/HMY="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1551951247.106_1551951250447_0.7133758510101718"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552202974.106":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552202974.106","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"a8fa358c010830be2b33b94a827fac04a3ad81ef","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552202974.106","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-HzC3NbNbWHSYoY820TvRJc7Eh3x2DPMclbaH7lO9bcFCYCH559fTqsu+VUN4rXtbOpNeKyHOTSDpwIZVy9G7vw==","shasum":"a393659642cc40504082e09239079da3fb67a3f3","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552202974.106.tgz","fileCount":247,"unpackedSize":620131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchLzhCRA9TVsSAnZWagAASa0P/3DN9QnwwRTSdaidA6cj\nZIayOjzs8kIX0sc9mmDy7vZa4q9re/LaIK4Sr+1P+ClBCQY5ZhQy3tqLcFAK\nVsDO/KlFHJk7sw8mhM8JLzs7E7KIy/ATK4fdTNckDHbtfgGJacESjiMVJKTT\nBRgfSBRPYVWMUUihNQhvknov+gdv2FpQT8Xxl6VNX/vi4VenZV6Hx+/VmPp+\nINFSSFV8dTaFKd/Xue7Pz2ZVZNY6+fd7AO5F2WYEe2jK3h+2pE3Q37rMNfHh\nGR+3XFxZFpenLRdq5nlrXlY5IuRybO4ceR1nfSvhp2cmqV7ckzZi2mnzvxR4\n/RtghbAlI/+WPn4myAS4rJbPnPBrLtlrS9El4LuF+dlHUeHse77SruW3U4vb\n4MrMSNvku2CMY+Kwf2LOP4vuUltBcUj1rWrhkSeY9rP9Vy17ExCZIOua8No+\nOb1bcG/xdk2o1xTpRQLVTG3WPcKa4Jqg0FEXBlMkA0vu0TVEoNaml2x+OrAk\n4Y2iurao3qvsKoumL6Wgw+QzJJBUAQMtG8Bx/gOo/s5tjYSdN/gn6R5Ofd4+\n67NWVVZUY5MQPzLFRXNkk18Lr5CptBQLjcoT/9EkVKnkRlZGcAavKxsWEIas\nL7xu2DqcHdy7ewPmjpZ/6vj+pSb7AnAAjxI5E5CG2zyFtCIr1v7ri5BrzZGF\nmVLB\r\n=iCsK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmTLWeNoizB/joLruEzgpROeiPAoOmrYzTkENgwyhctwIhAKwNMfEN5E8wmmGZ2xxG6bLf4irlmePQU+2XJPJLC9Di"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552202974.106_1552202976578_0.7713868869892269"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552206128.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552206128.0","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"ac06d09207c80bbbe9a0669f500117b57ed7bd2f","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552206128.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-8JFflQjO/k75G44BTbtM2Kh2aZnKV41ySRUlA9xR0zcXub2USdPCFrNKdje1twUlH4fS+nKKTvhQ3nBs5dB7/w==","shasum":"3dd3e933da036dba7e4c057102213b569d561318","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552206128.0.tgz","fileCount":247,"unpackedSize":620120,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchMkzCRA9TVsSAnZWagAAAOsP/A2reWDftdw/z2VOS06h\nx9VyS4XIO2M+kupckoa2YIELoj2B+nE95Q1P16bSLqCIDZCy+xJk1FHpmrRu\ntc5xsbESlD/VqGr3MCklApSeZKxZdrow9MObWqLUKpvsMO7h3ROnFRGnFVgd\nMpz3ed4fPaSpHfgQBc2DJ+mpzHavbNd/aXS/zDW0/jrzsuqAXmDHgJsJ6G5w\nVvKzipQD3GXFcLqh3EiWJsOmQ9jA1Ltf60EXCSpHCRSpu5YiR5x+qAVnVESn\nUrZM0BLLQrn/G+g21C6unTTkSUUeYQh/yxBVSzgn2TdkMfdmAeH8goq9eP+e\n8BydaXfVtkqxLJa3mo2HOv8FfQZjr5hyjXjRJIPld0skVWA610lVKYa+9WBs\nu6mscvtOqcK1qxHwF6P06gRRko/9KDheZm/dXeb56IJXdTlDuhtJVVQcs3Dw\nlyqVqlPucEd6XgIiD5wqijSzQ5examLnxPrUUuAwtuVyilQMDu2WzwZsYlLz\nott81mXv96byev79+teDA8j1G4VHDUIqNTKmlz2djDHKJN0ijogUNfY9nkzA\nI5PHpLDnef37FwXpH6omIvA5vnMoSChmd5kY4EBWbWJ0W8IG+DK6M+3sCB8p\nGkGtGWrdVrvntStnguHHbaXmoKMVOsVMPT1gyFPj7am6Tk7YWYnvOAemalOT\nl3/j\r\n=LpTv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA0Wi1rJLnRNbix56DLBAGp9zKhvVVGTIo5cdIEKh4gKAiAoPMvDE8DtOtGJxwx2r23ph+e5YbibRhZpx/x6WJKeMQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552206128.0_1552206130563_0.7348646923425841"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552228735.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552228735.1","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"3d3bec57fd0587809e5cf53d8e20ff6879c4a477","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552228735.1","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-qmD3kj0gQMIeltgIzaO26YDfzICHonTMY5V9IRFkIRedLCiJ9/IJRuq09b5YQtBPaYdeIRDf9Wvad6vPN8T0Bw==","shasum":"c915971e50c4bc169d65a11a675d642b331caf82","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552228735.1.tgz","fileCount":115,"unpackedSize":110970,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchSGFCRA9TVsSAnZWagAA4nMQAIa1EQPj94uJVn0F+mO0\nb9i2vCKE2foa49Fld46Nqh/DhHSi/EOIJqGmlpSpVz6Rx5iB4OSGfSuYCXLO\n3zDEgd6MFwXO6ltwd4ouLlNBkPjlMn0YCxPqgJTei5r5Hh07Yl/ytr/UZnM9\nt4+c65Gytcbg/mO+2WvWSpPfa8aHQB2MY3HYqpiBkUHgrmqhIS0CDj8dqN+B\nybWBVQ6dowtQanB7z4lxG6VtawZZpije1pwWf/kUbPZUbEy1U0Tmv+xuCHSK\nGfGMfKPEJiz+9UaTY4WVxHaaz0M1zNJWpbWJGrjOGPgHQHdG/wfYT+VUt+UH\ns06pwF1QTkYrHcb04pdVIdJowgKFRzhsoT8dRCMA+UtIALq6Jx5fJMP5ocje\nukDwlKNOvtxpRswH5I3m42sPJhdkwTqMRlOhUeI2SCozCzMhL6n5WBuEULJX\n5tJagJuz59EvMMalDv6DbctPxukJC4SRI1t5na2fXavVymy32EsWgierj92m\ncifIUHqxoQ9LiftdvMqwHfWkLX/uShMQ+ht/ij7YTpvMSNZmBEd0NCYfaYk9\ng1rPYdecFgnnj4y9Vgzr9voqOdxqXI3ubrzw6gLTyWyQX4jxUpj92r7+AkJ8\nolq2Q62wbb6Po0dITBni8MZ2iLOwZvFpI6nSgTdmX1lXhwsKWfww8pvJdfsA\n1mfo\r\n=x3ae\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBEWBQ0RQiqqMAWNGchC8TAyyDzMLPaZh2cAa0ujM877AiAYR08Nuf0O2gmSSGVZiG06m2Mede93Gqn8V+xt2g6Zxw=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552228735.1_1552228740435_0.0062292066366052"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552228830.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552228830.2","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"f5403d5aca95d086d855e731cba469b3e51be6fa","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552228830.2","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-Ps615VtLg+hQFXBk2rO5kfUhpncIHhjpRZyveiP1dd2iahEbyKgqinGeCL1Bqkg74o+zwUnIH/0CsAazNwnAjw==","shasum":"b5aa43b8e118bd9a917437e93804b07f823c358a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552228830.2.tgz","fileCount":115,"unpackedSize":110970,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchSHjCRA9TVsSAnZWagAAWMgP/3k5txJu9w/dZMdd76fj\nlZULoX11X2y/Mm05gteLlXRAewVaBkQ8mHh17l4WtLSDNOE7X5T/xFLR5Qjn\nkGQdgUVR/E8RfUPTGihuM0jZdLW16VnCUEHzUbGtZkm0AjXd3DatM8wpoOMk\nhYzRbJcsG5jTlUz5Fk9vjnQZwUoTt+Dum8Ynr/w1FtNY77IvmzRN/D3jOBu9\nFrHqHmLg7MKdSlTJqInDrLqcW2L/EwX3ug9imzYjyjKt3FxGZGzWNqxmzHsK\nJWme4szuj53o2fMAc31JfXMa9P6SZ0lGrRiSM8/i9KMb9w94WAsDtJ/6ZDxi\n/eDj1G9eaDdx6lrZfJyZFZaIJoEE6kV9Foz4gk4UslrxUa8s00Q0tQx95VVj\nw3llVi4DGSwEgD+IbSM4B37nrIbtwx9R8flFmjXW1Ci8FqhF7wxI3CLjz/Mp\nCoyiGGc4TmvXnDjuo7d/JRYP32M/s+2PqkS2KjHlQE9t8F86pr9zSaxSrZDT\nKAAuYJoZkaUUw98/JBU5DLWGWPBpbDqNdR9SjuN5qLXqEP2Nk9F/aK65mFuX\nzQRLhIur7shejB/Yx5JQMyQcYuAbo9sBrChR5VXejLZo7nje/SCT+ainRZXm\nYWqeueTkqU+clbXe8+nX1zgoOJ9Q9VWebCWr63z04m7KLxZRq85WWx0Tf4iz\nv4fM\r\n=0heg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+55BVDQHXpphnT2Pmf0vbn3io2RNbQ+0dTD7wDb2wegIhAO6/6DqgfaanLzN95qPWHjAJ6p3oQ1ITSvLmFaFmpq1/"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552228830.2_1552228834512_0.7277331941402247"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552294126.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552294126.5","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"591c271484b2a0d5590da3388d97c7b61e89df6d","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552294126.5","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-MEPu1pdiJn/tCwkF4/avp1/RL2534EmOpMq4RKpKwkeuu6NLf9IQWWRRpLSyJdGUsW6WGISEBaAFVWfAHSFdfw==","shasum":"409dec576855b563f302541763d9ef4dec370c2f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552294126.5.tgz","fileCount":248,"unpackedSize":761065,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchiDyCRA9TVsSAnZWagAA2a4P/iPG3ZNISG7fYTQIlM5m\nsrX4/vt6wk5tgiaMl9qEgoDSFXfQ2ObDdsGHKOyKmok85lTe9Mjamc1bIRmV\nPQ+/HBd5762L5Hb0Q9Qob5xiktbuT7djTb3CgDhTro+ssMcM5DgYVO4bOoDT\nv1hlxOGE6j5gEjI7LEtQbX7NfVvtlbua/fv6YutrRBH0pSQnuq1t0zm0P19a\nZ6y/MyH3CBqQi2tSPsZfmstlJ61Bz+zQ1BHgKI2TqGWlDeRd60kvHvqBq0sg\nVQjp5moyhgwbK1Ezllp8YRKSUyoxV1qLVDTPnN2N0/NEpOpRukUoRzAp6mIB\nDD5IxnQXqEc6fFNIldhPgKcl09HWOLI0QpzJAcabHMSCbW0MQE5kzZnZRNDI\nThxW7Kw/5PvvK0qcMmPN7ZPpTYAhoUZ+uON9YcMIuE4mttYS7VP/HRKzjIFh\nAtcrmF7eRMMOHO1l/HS1+cfGBR1zQI32erJymMuS6lUEOOuJYeaojGsBgYlJ\nrTbodxKYg09aN2URP5hJ+/xOZ5XvX4JRjHqFZq8l/RCfAIo4t/276i+P7Zek\nuvd2jZ37oISp13EXP1f1Rn4zKXbwbCcNT7O1uJJyyr1M4EFFy1fk2dTpd4vb\n7Y8A5bLMcI7YkcwbJCBWoJ2l0UsAdiVHVot9bLvFNl+H/h9J5InILtAUFdq6\n2Cgg\r\n=i19r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIADtNqGAAIsHrepO7cw2RKzWJnIVYMDA3DhV9MRh0H3bAiB3wrO19SU6VNGkCJE1GlaaKQQ6M9fY2DVpPAH0AQs6uQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552294126.5_1552294129171_0.4108993453502334"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552294629.6":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552294629.6","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"5fd5c62bd828ed6d47b48a6555bed19087b3d9cc","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552294629.6","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-DZE5PPyDB26vFQXbDMG3oVs3h0SNA204ab2oJoOBj4S9p9fBtZ1oztV/Vh/LTaDFh3ne3b5ToavKpGfGdGRGbw==","shasum":"f27b01ce0495c5a604ec2a0c4754cc5f8107857d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552294629.6.tgz","fileCount":248,"unpackedSize":761181,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchiLoCRA9TVsSAnZWagAA5PUP/ixNIvpSnlwxHUvLTagL\nf6JiBmb8qCRzlE64VQ2Tin2VbqqtmZVZO/wnNflbz9mudhmN6U1etnXkee2n\nSHmZ8VmdmkrsVIfVxuNz3/TKq7T7mCGVDos3EdYQMGxjV8bPUV/yRkTnIuqH\nVGAoHjNrF93WgLX7zvFY5pMnat0cUHvjgFYYXX9jcMejmBuXLJCEgf+j67Eu\nD62N9yjwHmxufhlm2Fwps3NFxmmPC/OYwxu212C8t78nhqC0QhjuZ+VAcepG\nKT2NORXrsgoGBDkonCYLs0kTfAcr9ebW+cA6mHrgk1qOvATGRIory5v2efaR\n5yKanncfueEfVCY7fhPS4EifliQN3lwcwbc1E716FM1h5zU7yD5P7YmZWWbv\nbhaMQt9SJLnL8W/hs7YsrULOXMWEYebqA/5YoWWSehfbMbGtoGxC1iHMErzQ\ndqeVaXk6ohX/zewa346DzMTFJDydQk+ENqibWo35A4jjBXAlMr5wEQR4HlHW\noNdYXvA6sM1Kwh9dbiCliBTsDDqzKXknvQacL1G02LtvFW4ioCksirq7KfNz\nvO9/kL+iHSwPWpacf/CvLY026RK0aBlPQWQKOlgPapxJ6+9aePxWxEzmhDLt\nWh67947VzXSdj2NC5BL6UWr1AbuDvfupzAytL0ds6IsvlgP+bBuEKHwwGVdJ\nAiH8\r\n=hvlK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEddQGKPkXNiCkwWmDEfhOnGwDfIW7JmW/G8/1C//Z+IAiAlU6H+lm2enwD2WooQfxOzabsrMKt4WF7BN7WEZb5lAQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552294629.6_1552294632308_0.0797039203423262"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552295050.7":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552295050.7","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"4aa80a9a6e1790073b0e67d0a0ba9500cea26c5c","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552295050.7","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-SFVRZVceVz4kDCLnJq2BA2U8achancnB1GpbI0cEBzyj/UDPqo7mfLKHzBimXYaeHIcKLPyI7HYCapIh5QEO2w==","shasum":"39611740b0e1be57f5c9c6224d10a1abff3777ae","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552295050.7.tgz","fileCount":248,"unpackedSize":761311,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchiSOCRA9TVsSAnZWagAA75sP+gPC3o/Dn363ss9sCGim\nhh08njtadOBVbLWWHJqtQoHBGZ/9fJgE1HHy/MYBhpRLDgsp7SZRtGfm5YOE\nvDcmLme+kKZICu+DG7MgPobuwllvqW7qAEmKOaIE3iTAsX8vsJ7xS7GmYpsw\noo6xiMN8v27HlEkww981dPyF73/VpNx4WTC60OeonOa9OY9qhcwT7TANiy8O\ntHGjjLvNRdaTcLpAdQqsSuP7E+EStEk6Sd0I50edByqLibCfM2d8zmzXjGjp\no6w3TxkscgJCLbMtH9DiMFXQPPInh0ZBTXou7llBwXzDT0bG9l9ZegatzYs8\nKGGDWaytuBISnYwSntcTiQVLxfNVgw46Bcp2RGXS+OXAeI+PekgW7oAWIxaV\nTg9pKhmOq5LsCzUSzx2+l8pzfr+FHI0bH7Yc+PCebHcCzjp01cLQ5Mfy7SHO\n8ujDVdfdeXLikf93MDTFj33OfYIuBX/STkYaJXUiC3iCmMYH8idLtxwDId/J\nxK83FHgLHoft4uB3wLUxUIFILYRqu2PCklh7JZVBeVPeufCobkyAprUxSCcg\nbxx3EPAPSBsGhJ5k1FoF2Ck1G5MwkbDbpMhyZhtpo46IAF8bj31FmFObxMTL\noAOXKj6M7cwzkIL9bUDEBoXanFolch7oYmm50pLowEtEodBb8rNewQt41Syn\nBIwy\r\n=SfBM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICtDuHg1FWf2h7Sft6ATWnBG9OJlujOS8SG0E+ssByOpAiBCrrs3sOj5XF9VSVhyXIUc7R/z3nfl8qz/pk56sJ6QtA=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552295050.7_1552295053498_0.14790506382654245"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552295543.8":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552295543.8","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"c2bd8c2f19e0e48a254f46ce1791e7660bc5e408","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552295543.8","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-r+9PDYgjsuA2qNJOMcgl7epsWvWnXsvMVh6vjcWjfwWkcguu4TUovJwzXc0ULkmVyN2iaj+RkSxVPJ5Cx8ZC7g==","shasum":"ed79f85156a392211f533ad6575e75a5565ac0a1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552295543.8.tgz","fileCount":248,"unpackedSize":761339,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchiZ7CRA9TVsSAnZWagAAyioP/2daZOqp3OfV2GguuTS8\np97AArwxHlhrgxY5tpWM+nA15V/mPQhiYvJcU7bkctQKsrU6oqY3YMCvPUop\nQL8zQ0y0GCQ4/NR0DVqokuuPKHPMqziLaR9WYBPN+X5Wb3EBvZMOyqf2BBij\nJplzagNHP859XifHOjIiP0CMa7Kj2xUEpeczc/YJ4AujdLlpS6AhklxKLHL2\nEDsnCdNwPkbZqM0AtYl3WyMKNXLqUM9Ret4wcpVnomyZgQPFa2PPPMyAdMZf\nJWzY9WN07E8eCNYKarj9Vv7Y3sv6JUIbzgbP7Vtd2hDuBI0tuhy3LMNzsTEw\nWP+RaWRpdDWE47pdGw8gfiqeot6s+F/YRyU0QFW1qwaj8gJ6neC2whrkhBlO\n4pKbF/qQuNWmxHqiaKA0EJrdZciMkE5A/qAj5zdsNDHeKuxa+hyK1/iLNbRF\nvQ04OKdodKuz7d/8NnUE4bkIb72IIcnFzrdJbF9kr6kxz9WF2sKWIQU+zMy2\nDpSD+zuMQhasd8+1sGG3fJYkYp54Kobs2aeNAa7I84QpRpXSt+tOxhcJHEyA\n36u+4U/+4KBJv2pHImIn9wsahKvPZ5fG8SriIJs91Uv0p4JGvYdtWom/cki7\nsyecfnxZScvCvAQDJ3BiZMmjcASS1UCDIQWoPICcAAHmvV6bHnWSnZGohdwT\nDYdS\r\n=H1hb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICQifRwaEo0PhqgE8hS6Ipz5nSSdkpGRK1MHzX4nMyLHAiEAx7mfd3BHv3eYEcHVOKUqhYp34dnS6vGkBX8ffFDbo54="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552295543.8_1552295546569_0.23708990143898778"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552316079.11":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552316079.11","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","test:lint:prettier":"yarn run prettier && yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"cdad892722180c60235e1feb4e65baaaf9246f8f","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552316079.11","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-jdNRygOoEGS90Xxj+OSHft7e0wQ9EtjjMgIoYMVYk2LlDpis2iMvWe/fqwK0vnLxb98ybTYargF+rQ8NXOtr0w==","shasum":"a4902ad7be30b202648315cd263ccb263a51c2e2","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552316079.11.tgz","fileCount":277,"unpackedSize":983233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchnazCRA9TVsSAnZWagAA+YwP/RJ408EskkeZj4jEhHDt\n3VMEUMcHKNdKge71EBZtb7otKskd3kALP/Kf/wACQj1+d25CgUZEJ1FRkZMC\n75VXju8bzzLOgN9s6EYCUDcu+QQCg8WiFWRo4b4CGN8uu2Sz0QEZUYsTl97K\nwNqS+hTLnp2Aq1XvoGzMAN9JdBiLwHYgpCjq4JRnhaQlIz1e65v9K3/m6s8j\nNH69gD7CZ3kL4O/UwRHYVa6Mt0IarbYXBB0Tc7VavSYy5TYgxPkcdjVzH4c+\nSYFcEDMn+VtR/+6VQN6YOcLp59K1TCZj5faLrDWCRjKKBhznyksYHFYExWY1\nCkL+kLfrhXkvxSSwM9ziNinUmfTfC4lFXFH26TmptNU9MrnunhyyNxYURiy6\nupjaxpJQRUxmrJ36CrT3Qn6irsOrAuN+4yHoF4v3S8ZVbY/gq5l0nJOrIcTy\nyJptR+7h0WE4vnKmOTTh40NgorpcJ/dOQT8vTmyJAF4lPAtykO9eODUyJxOY\nGgbQVBXoZ9v4tABWiPCeYfVGjLZpHQSeJqhpHoVAOL8WuP5YzoshaddGekv6\nfmfxL2x4VIu6CbpGSL+0sLJVS8l/Gl5sTEVO7oJ5tu9nhvR+GCjLx2+Er6Bq\nMENDHbPQa3WxK31UfasS6C10mA7mICZ5aCm45A4MCUhSTn2P9S0Wn7OYjkVS\nvPQN\r\n=QkdD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5bGQaZrcCwNNbL4H7WVAH5aMv1qrbcdMnflUQOT14zwIhANBLygZXCeXYwJMmR5iSDmbtSC30tBVIHKx1+iWITGHK"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552316079.11_1552316082260_0.16915969446642998"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552318261.12":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552318261.12","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","test:lint:prettier":"yarn run prettier && yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"d29052eb5b094c34607f494cd82facfaf24d3067","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552318261.12","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-Y3gpb542kLSAvmMrh9WraNGo071sljSS/m52Adt5AWDDOrdvg3klGduWaLsLEAmsj7kqrNn1l6U5LhLrQZp6xg==","shasum":"f970a3faa16246ad5b40491eeeea9e0e041c2189","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552318261.12.tgz","fileCount":277,"unpackedSize":983199,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchn84CRA9TVsSAnZWagAAw3gQAINIOaqjjScOzrVD7q8b\nzFUPW6bVyaanll8H3JBLzhwZ9v/eLhCs+WDwbzA40BiuQAX+VS8mV+VDK4dP\nYiS2tUGN6+BOwwIFiLaBW023Xvxs3dbnrXCayvbvN8EirZCGCyM9BhRPYhxU\nwHM3GktNTCY+SuzL6p+oNej++vxQ8AbTEdLAsWDSMg8ekWA8HtDMtz8RboUP\nnjW3OX36C/4CqP+PIQmlg8ytE9io4orglC0StEYRx5bfnEanC3iBqXjoj9VW\nYu1B712OXDL3BrhUEGv2GGRmX8M3EKrKKY08bn/KA1y9DdMQ5+kxo9zUyO9P\nC/M2S+qyXCsKX26ysm0P41ef/0SyHvThofBlVKrhaB3z6sALdJtJ3END8rhF\n5OpPdSlQIroQHK4856XWTouqK9Z8SE4iMhqrV8u3DZ/caKqh32GsuJxM+xjC\nFJftxcoVFrW+R1aw4/1/uBbgiLtV3qg+gqKUY/vsaLyMmb26AJ30HuqphzGA\ngEX6AeuubUEvAjbbIXd4doI+3Vs7XCUTJzR3lS0pb8ynLnFYADhmy1ZtwSEa\nBuDWcCfZ+FfEW1dxx/GDkLsqkmG8r1y+fcv4RIPX44tyo8S99ylr9TX+hTrn\nvozH12/OJQjnKX83p7eGFmSAF2U9LmjKtIw0hF6cEkJCX9sJjN9wbVnmIcuc\nqqv7\r\n=tzXn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIENAE2nSi7OU/DdQo/XhD4Vs1Tf0CrHXeOKATb4IJqHhAiEAmwU+Lpy5ceYztcH2EYta38cU+mddcy941gXBIglOfB8="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552318261.12_1552318264100_0.6117435421879203"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552378847.16":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552378847.16","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","test:lint:prettier":"yarn run prettier && yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"25d8f835b86092acf48d16bd4451412930c53daa","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552378847.16","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-zTVgsT9qS/iRZEU8LiPB3MXkvbo4vzXbi2Mc/C7XJswM9JyB10tW7cqpbPsR/oGb1ghmHqeIuSKj4Md3lRg6ZA==","shasum":"a546fc18c8e6298670acaa6674dced13f775a9b0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552378847.16.tgz","fileCount":277,"unpackedSize":983187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJch2vjCRA9TVsSAnZWagAADlUP/3rPdf9PPjhF+34Lf9i0\nxamDFRFTU6+CMqunoDkRtSF9mYx7I5g9dRzTr3l0yv1OtNVhy+NmiTpb9dpJ\n4UwYfKkSiyh+SDw7LzJnolzIx33eXCPHa4z/BSTl0cf/thc/sTli1hYtwFYG\nw5vCvBU2ALsRuMv+hKXdrUOQqFP/GW41KFlEIxjMots5mt2p7CQahnxOwMXw\nfM3qpDqtBuGekrYS16YceQoFeIDr+QAAL2K0GYa6S4p93aSh3QuScrJm4kNL\nDkiydPDyXmxnEQ81/Cg+q5zNA3R9/5/cvasplUyWAs7u7MHrAE878BKHmoSK\n7Uop0+3qrHx8LgBEu/25B7eIvn8NFw1yVp4/0F4/UxfwtAqQKH/8NEGLn+OL\nXoFQauy7MTyAJu8lAUQkVbf+Q1GmfXa8+nzIUag2obIkpiu+6SjyZcimiorN\nizJtWeOIYV1JL12MkgBbY4PZlgtznhBORyh+RY3acyxbcPMptHrjzQXxwSKP\n7Gow7+8s3uYjkWQmNTqLgAqXhF34Mdz2X3gv5vLnNSJTcQIjjh0+GnJx1XoL\n6g1g9kfi/ygy5gOgKKok9icsc0FsoEBm1MG3jn++IjseSDL0ktkBMft67RiM\nZ5KZSYoyT6hCOLiHJEP7MPBMZ1VuYi84DCy0QEkHvxOZpi6RxoPFo5iqx5Vb\nrK9I\r\n=8Jwl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQieMREv8qQv9N4kuILUX75QEIR3vJ//mNAvmqcMNL7gIgOiWel10/KJndPMe6H99YvFLMpeSdQL9sbGhkD/07Ic8="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552378847.16_1552378850192_0.628981321307319"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552391486.17":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552391486.17","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","covarge":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"11ee34d086d3c5ae191a52cc44b25f0fdbaadef7","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552391486.17","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-XIxwzFQ9AOBoB4Xibe4WI00OfuZ8g5AA67QcNIF8x9oKj4Z7WXC/3BbfzdoYCCGrP+zlWwf6SlsZo20PVO2rmA==","shasum":"81cecdbbdd3a2098762a9c64f1038358d4a2f335","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552391486.17.tgz","fileCount":248,"unpackedSize":761499,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJch51BCRA9TVsSAnZWagAA9+sP/j30qjnGf4BrLog+JNsr\nF71dG1GgsAgbLf78Q8M4bGTwHh6udlrOFm/Cg3UuFAJRO8S0R5pCo+zPjkNV\nUxJCsu/w4vIj0PiDDsI87yPQRSjT6ce2ouw17tdP699wD7utwR6QPdInzbAl\ng+bFCeJIS1qVSqnlcfPeoIa9d+9rNW2rR2q8YWmaDAUuUMD2X+XKpvpLIvuO\nM+LCGLrMboX2/PLZEFIM67C0vsF2kC3Um88zDWN8HZJb+XVRPdDnOTD5BsGI\ns7cc+j2Rsc1iBjv4QkKqu85th6ZouYN4CXLsXNJWxGJ/kLfl2EtXdSAd1AG8\nKX3kEKRCG0tBtYk68/iOFCMOBHPeBG3cmsS74rfd7F4rUZOjamHTq7Np4k+L\nfw703LranAeqK8ja8DarCTBFoJbnwaI2irsrqUO5lwNpikdwvgt232oCQNZ9\nmFKLo0jd8ytMpLQFYoDRIsZEJfttUOKlMglu4TPUj8Qrz03RIFRUVfhbGQq+\ngMZB1n/wn9fcRbyzGgQ5PP/KVr+iXzOCuLQ54JL6SqJg+xpmFg7UnbJ31aJQ\nLRzQYOfjNfqTkZzfzFhaGMgcAysbHxEEp6wuxXFNEZHOksFSQi6p6r7pG6sH\nQXOZJ+w3AEQQ+EJwoNJYUTuDkmQ/ewBiUMA1564Kl4lQTNilaMHANqUO0sTh\neJ6a\r\n=L+6W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBp45ZOy4ejeVzJyJx8Ko6+UUwI4ZsIvPt0EP++w/hp8AiARsQuoLcgnRHHrkTkU0HwZ/C6Sn4rx8eBo0CnSUFF8Hg=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552391486.17_1552391489191_0.06535576975837531"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552397514.23":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552397514.23","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","covarge":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"85d191f4b588d958a9afc37b9e1d55d185ed3d81","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552397514.23","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-jK7aJXnpLYSsJA0Q69081amq64Pc+KqEZT8aaFwqAu8AgQddYciy5nQZJjPx9x6o8YNnr0gaIY7R/2I3QbpY4w==","shasum":"fbaa2ed0324d75881f85718ed3d60549a78a00f0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552397514.23.tgz","fileCount":248,"unpackedSize":761510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJch7TOCRA9TVsSAnZWagAAHmwP/3se1FUpIBQfTiwzH+AF\nMGgXLD8dDi90x3H1E3yTLzu9tMDs4lJHI4yMzTmtDdYutSplsHB+88b/HEmW\nNDPnbvsgV8xQrN1n5qF5LdcCtX7vO9McHU4h0AfVDolyUIb72XIpqLPDgq0c\nn02ZJf4M2Fyl4RpyL9RqCnTY/LvHPXIKHJxgCJL+1fgKSGwkZJBPn86KTBH/\nRbN7CDoekNqk3Bn1zc5/mb7BzNl0GNyoZKiJ2DYiSTetnHjAKGroTU1J9J43\nlC7AzgwB3APwVmckqePNDVjiB0weD2OATMFZeAYJr8HG2ONvfKbR3kKuQ0Ow\nPrDzbvXOXvqSh6pQzvlRpjQ9LOlHD6DkNLXqtbY0IEgL3/iLtXrpsvKv46eM\n9rn/7A0WYxARdo9pKuPrlHWLuDhg4IIC7oZyE0JASElv4QsO6MIvAANYvPct\ntm5Th7HFM//9iuwEhHZcAvvZ0Oe2+KM44cndxAj5l1E9SBIuAHviPCiTDxOP\nM4HovhybtdIT8o0AN4lCZ41SaAeoCHipi+4jg/N/hp+GXS332rBC0hDVspzv\n7sHUI2y27uR7T9K/qqC7WpE1nYrq2jLFELt5rbqX1D5W8JXT2G31xrxyKhJY\nvcv7AbTNhZn83Wqxg1cWR3pUA8LA99ZPfNAZGkpLDDKktnZ3eSIzGm33lyVg\nv6oz\r\n=NDmk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzZvttrS1rrT3Vq2IgR/WiwB74TnLkRRefDjbfA4BlAQIhAKE8lfYsJs4uMOpwnmZP5NY/PQuwUIrSY6HHAKEaZ8Fc"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552397514.23_1552397517511_0.07146516454724394"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552465034.25":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552465034.25","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","covarge":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"51589f8089e398f7477b5fb86a01a7238fe4a046","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552465034.25","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-LGit+BsggXftSswkWjl/JA41EnzrzQc9uAz3ZznuB9KSCVPdZZqMqC6dTOyEuZYfuEf1ISTP26YgZKnlxHJ1Yg==","shasum":"1f5f8b6ee9851533f3e432ba833ff0ab6a6c49be","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552465034.25.tgz","fileCount":248,"unpackedSize":768786,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciLyOCRA9TVsSAnZWagAAp6QQAJQPECtnfOwMKMLL3QtG\nepZMuFHAF4NQVnDUTpoWCIG9E2GZAJzL9bJekk4n4dllJD7/RKvKO11g+XUf\nJz4SKt7UniDYl0o6aKCNkp7z8HfBaG4O39mNgoM0IFqJI1Tu7wvlUT3/fyyI\nibUD8Mc7UfrK+bLCbRqDmWrcBE7OSkdBiuR0Hs9tIxZou244jX+EGMECpj8k\nsJaUIxE1MvaA1lOEE4uK+dJeZnvDq6/iMKJFFdT2AZLCt0wnUaT+fmWS9fGH\nwjvg42uBWpsl/66MjylQV4Uv+RCJF4sCZxMK7V+yvQOUwPlx53GMivalXvHX\nu82W2wW/N6LcGlwe40cacNff5PsZAZTyvKkKlhh/O8XyG63vyTeiXpKrH6wb\nTTcYfe2T2WBBoqK2zzAMs21oP95O+U4j+FtuVS/1I92tK0vwq7lkYvJJXZtQ\ne1GlIWYpCln+NhhJ6FYPXzWpnrxsX+CYI2zUqpwsn0RvHlKiP0UKWU7OaXAR\n16tp9cv16w7pLfqAGcXTV9pr6TlnubnqY0Wq9wEsiM3L42eDgaVIYvzpJVFq\nfq4rI8gzPHGmLPbXFqieuM2CEd6Pf5/jaCj0iBSTgo05Qbkb+EnQICVGSxP5\nE6e/q5c0GT9zwLjkeH5+tClLL6r+tA1SJ+4WKZEc3I7kY7WwpbnbCEwg9QjA\nJovZ\r\n=Bqm6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGJyM30aiPF1wXWIYplpwCWtulZlUY/dFn6Vxw/o9/uFAiBBK76z8osq67sXtoDpQsmfc2ZqLtJNQ1vIkiR6ZpjCeQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552465034.25_1552465037656_0.41832583168027737"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552466950.26":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552466950.26","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && yarn run build:es2015 && yarn run build:esm && yarn run build:cjs && yarn run build:umd && yarn run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"dbc228730d75329acd12cd2caa2213e671e1a2b4","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552466950.26","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-VXNOpVx+JJ2zgigBpgWGMbBeX0Zsu9HjwZbepUOUnxVdLhOomOJlr8ZrR9ij0aHxnfOirbS2cS+p5EAFctWvTQ==","shasum":"1ef1efadca4f982eab15aa3c456bc39e80dfbdf0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552466950.26.tgz","fileCount":248,"unpackedSize":768825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciMQJCRA9TVsSAnZWagAApxQP/jikQJKohN222JBE2WP1\n39E+U7Wi0nst6iiDScBQMp6yfOoZ4PAGz6whS+1nLp7/2wH7i0BNh5hhjIyp\nD9ofaR+WQvMr2PKisdBnThrILCr1dqYxZr2dCxeB1VOAC3j35xZWuQBzbWEc\n3P2GII/QJGmIA3x1Bd4hNA+qt29DLq95je/WubjjjO/56T3mgDqquFA2FoZx\ndiFpxFUrj1jwK+q35c4xsQxT+ErbCzsEZ6OHZSD3GB+RV12ig0P1r2eh32h8\nohsZzTA3JtGA6Gy6PE9W6gp8UoN5bWspZuNC8DTBjV+iVjDYkMHv4R2eLg7/\n7BNPPGAHKWdvaJ2O91qlHKVc3TYwcjEB4n/6Fxpp7kkDXNsKd8vMSCKamlwv\npPefWUG2ienUs0IY3msQBwfTZk/QoEiqOalQ/Dk/2SoHNuhNlwW750eM4vXX\n9qn7d2t6roPz0oGOoNwR4+4JpPWfuMx+KZPWVyRJwpAL6HIfPhIfE9OE52E+\nmnsMPlNEJuG3Dm6iuxvQ0OnTTnO2SADr/cew5qKAJz1PgZ0SdCDaJqPZ+1RA\n5TOiMWPYb+h4PExD+4RMIjKBnz4iLCZAJJozCXmtQItkflWMWtBAQuPvFYr5\nbN+JelY6hJ9Yq8MNDFLfgmFg12LPz5f0G0He2/6oxCbK6V2LMHYGqgmj3507\nRIoh\r\n=ziLV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBdjAY/AQASfpZCoW+1G0iJaXbHShSFssvP3uZMVbCd3AiAui8FbD4ynKS0Fi4nhY3oPfBRSFZO2B7FqFnYCxnzSUQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552466950.26_1552466952547_0.5169633920154764"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552467539.27":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552467539.27","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && yarn run build:es2015 && yarn run build:esm && yarn run build:cjs && yarn run build:umd && yarn run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"04d3ab14a234bda65fadc691892103a883ccc56d","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552467539.27","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-/rhVzSjahL0OYwTo29Ndd5V65ctEkMZLycrXzpRk/zAh8MgJZAW9qtwNCZqmZy3TVGZzlyz/aolOs7jSxhWuzA==","shasum":"6f9d0075d08c7ece00a5953db8123ad435abe814","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552467539.27.tgz","fileCount":248,"unpackedSize":768799,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciMZWCRA9TVsSAnZWagAAp8cQAIZJaXZYBU2EwRY6VYmm\nv3p9YYK+4X/JIcZxS1MDJkhKMxVRBWp6X6LJ8WM9OEpxXuKo4xakrgijWXFo\nGeNxqkjV08hJ9clCKy6W3hLZ5yTH8R64Gbks49Z7KyzuJDqxgtwbwUs+wTSq\n1ekYQxcVzq9xw3qSbncJJykUYIpAzWWN1Ze21v3hh2Oe+PKbF0VOvwRlWkM7\n9d4nO/QZRs82bZzwsKBTZqFOM1epqkpFxlgsECK6qv/qqarFQJPHGslQ2LWm\nKpxKj3pv5Qif8Vc0k6DfDOtOqnUKPTM+sLvaMjL4k4j60qb5wbXev3j4SQmP\nsC8zv+Vi9iwCuD48K5JKX3sGfM8gyFjAnnSP/+U+CBeAOx4pZmubNh5coHs8\n8TR5gyC2ahyf+JsqYv9KKLw+8NGA0HE9KeTy870dyR5vmMk2ghfZxncZqPCp\nJRRbn0qOPrHYs4BVvySzEVSWFefgZX0EtUia5F0iJJBe+YIDgLB5EZkv9SiM\nrGO7XLXweXNqG/ORMq4gwCOsatzmM0rgU0bfCfEmdIIEVraLQg2ndJ2Rlyf9\npUg/imtrx9+x/bSOdyAlTTcXxF409STvuIVB1H06L0+qWKp+ZI7/AY6VF3yG\npC6pro+ByuDvvA0WfpKFkxgY+PsCuCpy+z+V/Rbp/hvMdhRYEV5iEjqVB0aD\n8dhH\r\n=OKEI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDs4S+N8+MeP/Bw8X5mbnKm2J2ulDQV/4Na0JpUeKiH6gIgUnixzvtQJ38W22bmC63eLdquPfscrFHPSu8Jdj8w+NQ="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552467539.27_1552467542157_0.6699774025846967"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552468902.29":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552468902.29","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && yarn run build:es2015 && yarn run build:esm && yarn run build:cjs && yarn run build:umd && yarn run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd --global Microservices","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min --global Microservices"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"b3352ecdec245b383c88722967bcc914f7487449","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552468902.29","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-SAaXtQBAPa0wLDaXg1o973rQROgBckrMakkXOP2UGsnaQaBdvow1Qd2kdqmUhzEosMUKrxn4vRCzoEW4lPVWpQ==","shasum":"604471eaae86ec1b4ec3d9e73b2b15ce6de138fc","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552468902.29.tgz","fileCount":248,"unpackedSize":768909,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciMupCRA9TVsSAnZWagAAh1UP/RnjgL+KW2nm9HcJPD2i\n7GaD+ntCLYOE4Y2Cr3VlrfdLJVyKTEX97vjkTXsR7JIcRdzjMhsBVAULnBGK\nDOdvlQgO6ue1rzoZLqafdjtOEzg54pFcPg10ns5fzJLWrdd0mjmhVtND4WSf\nLqT1144jWjAN6dSxTonYbc6IclGwxh7+BOr26OYRmnFaLrUoDEdDAi52bTO2\newynxZ5lS+zl4xo8ERhQS6OGxzruXU0+KOUryUjiQ4kZUQ92CbFfdJPbNvcJ\nPdKgDL67bvB9LsjcanOFHscl3JBTdF8xEczZFfSVsQc6U/pJh+L09XIVvtMi\nKwT/HFD/TdbbdSOrIoDS1bH29YYHudjpA6oOZ98Q8N14m5vpbnFtBufFnLlR\nOoAtfdhkQGr6xZFKv42DjOtgRfMOPPm/p0KbXuyOmGpXFJ/iGrmiKz+IuOXJ\nOWb2E5FDKnMDR3pUyqgM6GIDg/FcOIkcs4BEia6uXEwZBFVBURONWGeq/56U\nuzE9d8W743IYz8AEaqUw3McVA6cyeVtCH+OaEkuNY7ILm6KkZj4vYCMk51lE\nYSZz2LNOFQ1Lf0CTxLc9OJlnEZT0K1ZPnhzmabcwkm0KXLQ77kGTLaXSUl1J\nSG3MjwoMDJzeoQ+erPauBgtv+BT6+difRQKKecrYTtntQoULyqdJrRSNVBoc\nNdnq\r\n=xPRo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjxwvRvOfxzHvhRXGVkQYZpuoBudGupzPwJnffgBuAFQIgBhdNCSNXSI/3TfVMgttbjKtSikMnhO+zJwORqUmHrew="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552468902.29_1552468905256_0.20870491932090607"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552474483.30":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552474483.30","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && yarn run build:es2015 && yarn run build:esm && yarn run build:cjs && yarn run build:umd && yarn run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd --global Microservices","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min --global Microservices"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"f3c5630f6f016456f4c36ec1e1f50ef9880c97c1","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552474483.30","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-Rl0oSlAOJHNXU/duV9sa7HBTvJgCh/HJQny/oc+CpmF6itrTBQsc/bjP47Ce79mixjodbCopob8iqVm4KZkygw==","shasum":"6b8f98b0b01ed21d039596d6f77395a927bde645","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552474483.30.tgz","fileCount":248,"unpackedSize":768932,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciOF2CRA9TVsSAnZWagAAnJMP/3rGN36t6u8oQeSG0+xj\nHuB5s7umBgqoOoMnfRYkVAhFCsdg1SzqF6W2AlpG+PCkXxQJfSBm/0o0VP5u\nOUEB6fORHak8SarYu0qMAviFpyePzLfCLEPxBa7ftgJkaRXnIFoW6sqn/UPk\n654ZpTYJSZHd7Xnn+pBhU+eVsB+aG2dYaN3OtTxzPpeZDFTINDgbPj5iAqjH\nLOeTBccb0fmMx8iCTJTHExmjJ/WJIJbscmmjQHS5tmKxGx8qz0HgQ1ZS1mR7\nMCJoA4SIFTMDuM6ResovBn1uSNmqagzL3HZ02STexbjEDrsaJZEopZ/s5AzS\n9ZZxrTjuxuz4CG9UbeNWXKU0YaZbXe0W0nV8JHxSgs1YYK8NtbNne0WrEBK4\naPYq8/8tzpZA1HwZg6yCp2LNSXSGbZz5a/Ur1qnoPgMLQaRuKbi0HwMETaRw\nnH9b5khgXJ4eFbIxdk5iJ19PMIflL0Hok5zBJxUemYSZHY1PSTjYeEcWS5Jy\naWXfRcUx7GTK8/d3Sabmg6EhhZx+FC7M0bo6/VB3meSTmG2kK5oYZl+hx7ma\nhHQSPHBPbGvcMSJSBo2ky6sXiSQrIHu+wVMMXOYl962JDT03SNRussqaPmXc\nLvXdjM9Jo4OKXpY231sU6U2MkGbu03YbgyIv7tn/ORwP1zU3kQMDjgsNPUDU\nu8b0\r\n=W/8Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD02XE1xoUE/+kxrgZWCtyO2jV8AyalLJ5aaUxX/u4JPQIgUicVr0li8zabjfuCmOQwJV63QUcU3Gw1yGNubZWFG8M="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552474483.30_1552474486263_0.5874302971820167"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552495800.32":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552495800.32","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && yarn run build:es2015 && yarn run build:esm && yarn run build:cjs && yarn run build:umd && yarn run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd --global Microservices","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min --global Microservices"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/dist/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"07d94e444622546f4696d5339ee3ff4625f2f7d4","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552495800.32","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-DXtDGVPqRMzwqDhyhntMH/ciP1vYpjTv4qdHm6xXTOmeYRUbY+TdPnjuAmyuKc3iiN1d6uO2ApGMwM67IJVACg==","shasum":"2e8fb1b9a03d0039560bf80ac45b5c7023d7ff79","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552495800.32.tgz","fileCount":248,"unpackedSize":763946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciTS9CRA9TVsSAnZWagAAvhsQAJ7VZZ9h+5Z7LonyOQ25\nW+/vVsEaSZAejKC1x5Ewk5H4d5kx++cWLzsvAKK8fSn/Y30qbAXlld8YQWlT\nKhavIcomQymUmelA+0pHOxSbLHu/umNqkk+pM2p299AJatwnuQMto68IFN+W\nnV0pA0ncGPjGotd6qTmVFi8Ew7xgCerHeqShrZyDWCM8Bc2UP3pFr4z1K0lW\n6swurkA6i96a3W7yKb+CLxajCWjdyRPG05Cso5tf60n+uMyYVpGCtiqQug2B\nddbqVs2hl92y62o7dPeOSGAhQmmmKeRCpNyXqt9YFW19kxSPmB8Xr/Usm3S+\nNhJCd0JIKhYZl2sy/z7+Id3Y1Kj/dRfCXtlJ1G3fkDf/Bb5ucK+2CZhypNML\nZtkx4ZXS71EpyvtaJJhtrDRlD0MyPrzDV2E+jGuA05jXMv7T630LED5O22oE\nkCsldi9zmxl0T0ltUlOnJLOIIFRjw9gGBAuBCXxethmjGBljW8i3LfU4MhE5\nZsm8b/5DS6VQq0i7WeBoeuH27HxRlGibK67mgjUE4lEpd7BY+K62/HAukQ0X\nLSzwGd1+KPJ0KFO9T8RJWookql/bveeGC+q8n90ITiyIcH1IfdJE27g31TUb\nISEhWFsoeIqZroeSWsUwmQXU/ashIXVVdq413NSuE2EXpMTV90xM4pvd0Rnl\ndoi+\r\n=mB5t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEkSFoRjPZ9qbpjfafenwa8a0VHBz058vsQaKxUxNUztAiAj63g35bKlp1ZP/F5BOTiTb9s0bWXULOaQcWEPFmvrTw=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552495800.32_1552495804549_0.5791535149736733"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552551957.33":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552551957.33","private":false,"main":"dist/es2015/index.js","module":"dist/esm/index.js","es2015":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && yarn run build:es2015 && yarn run build:esm && yarn run build:cjs && yarn run build:umd && yarn run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd --global Microservices","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min --global Microservices"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/dist/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"07d893a0c38ce1d9146fbf670ac664c258bd4a67","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552551957.33","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-WdsOxgz2ujAip/jIHxN/LRGkABMGmMTb+DvXTRMTmtVayFbHFQ3/qqlOzB9wWylJqA6YB4b4YPwV9khKlfNolw==","shasum":"a1f440eaeca421a1cc1fc5f99775ad7f7e961238","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552551957.33.tgz","fileCount":248,"unpackedSize":764042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcihAZCRA9TVsSAnZWagAASt8P/1WhYFCPyOs8gSQV9ADy\n1w5h85OC08g8LnbblGMMYgK4tSpzw7vwTqPMFioS70UwHrJMy94HF7S4/aVX\nTYB/rlPRDFLIChexPo8UgNkxLOBHUHLPBS7aEzgfEjzoe6BMblZupx8sPSN0\nduPWPMMSVdkt+kw7mi1efLS1yK6YqrZjgq285JEkQX5OsZqP/Q7y18ido2e4\nB/pz9lwR4iEnwR4diMiATspYiJSw71FmOOafIG5/Rikg1WCp3rn5WpLQBe6I\nPNbaTDgV8Ah8kTjf5EOMZ+j9bVwlsoMoYiX8nA8wtL4JgTM0zxSdR6OyqsX9\ng0JgzzjmnEVOOpV9sSd8q+3DmfOQTAFium6T5LcMt2bcYVM0J+Mm7zd41F1r\n4g0F7hZHzKzSUzm0vw+MJPJ+JS387Btxc8Mf0kWaYyHtMIHSzUvUI0Gl49p7\n+qff7+YUljcdX3caJXoRYXPvsFJItMllp3rm3j0D/1pJ6kJTHIjrpnC7laQm\njTmw5f4McZSkTnaGWhHFmjIlMRRaJpxJUwPypgfPzSgj/E0G6Q8TTfke9gg5\nliDe93a1VKDKbpZeQ0Vffc0dn6RWuaJj4uG/lghBTj9pWUfseB+glSbrr2/k\ngfCPitIIBAWh3zmXWpuIcfDTr5RkFdc/nRpqDZfV9p4Q8dVMM9AbfbvGesRD\nXxRd\r\n=ulbO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEPhxw1Zh6JqcXW8Hb1wkPXOnbdsd4d0R6Z/zWpYjbwwIhAMahL/JPu8eGkbpzbtd2GKRJWb/3GFQNIiP2ITwUgCW2"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552551957.33_1552551960497_0.3474896199896851"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552557462.34":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552557462.34","private":false,"main":"dist/umd/index.js","module":"dist/esm/index.js","es2015":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf dist/ && yarn run build:es2015 && yarn run build:esm && yarn run build:cjs && yarn run build:umd && yarn run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/dist/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"772852bc208b0d6c1458a59dcaea4506a44f9a62","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552557462.34","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-0HZ6mbGzrZizgAEXza4IDHOSagLf0NkEAWcZWLTu/svkH9SYWOiLl8kk7HJcr5xVdPnZJXDLjwfNGPiP/4Zf3Q==","shasum":"a443d55ee77d3c6fc5affe492503c1a25101b5c5","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552557462.34.tgz","fileCount":248,"unpackedSize":763869,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciiWZCRA9TVsSAnZWagAARlAP+wbXBFc1OddO7t8v0JON\nrr7g4apddVxro2mnZ44jPOqY7rO8dRSfGm5d28iOe7Md7qg6P42XE89BtC6Z\n1ewxdEwyJZen8b9cYAK0DqnlepPLEBr5Z9VQBhSOa4VorGDgm/Ex2JLlDWCh\nFfpT6rVrXCsgqcRKcZyU7fgYfWJFMug+EavpA/LkSgKEFeIzc5OR51vrKQgR\nqw5ZvCKKFzabEMZpMwhnLCPbLEjj6ohUfTu4QLTn6D0Ro4ZCj1rkg9oCbFFc\nwCmRFtUdYmLs3odjwJPX24BwA5oa/K8wPs8KEhwn6YhIQXxxuZmM/STK5JtU\nNRCn1DoiYGlAQBtlhOQQKSY85nsYmk6oF7oFy/CBRuSNGKhuKqyYFPiZtXDv\n2+1O8xGyCVpeodtUH8e1HoFNWIDHN3z8hbTsVbgqYyEzhL0Fps/75rm9swaZ\n/QxFM2pRnBNmJ8yjEVdBz6jzfuUkz5im8yBmMWLNAfeNr/Y7fISX7ZVnPW6N\nUFh8tufLVgV1GCpgUHLzgZeA+XG8hfG6sPb6u/mqax5TUY9VfkcdqDLkEImr\nSzsBD2ZBI/APamdlmipgQbq+xe8use9I1+1K16HJ9dELI6y+yiXwZ9LuXGZJ\njmYMV3s/WHezXBWWjL6QAu/4Xv2eZSS7QbuW9WWwtATR3SFyINiumvuI/tTJ\noVAS\r\n=vZsY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBrbbb1BfCpVgKi5vZfB4lpTrwjt9S3nau752/+8N6P7AiEA1PZyJw+uEtPnaE3aky0NTHfssMH2FS2B6zKXTxVXnmA="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552557462.34_1552557464722_0.35749477716968503"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552558445.35":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552558445.35","private":false,"main":"dist/umd/index.js","module":"dist/esm/index.js","es2015":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"yarn run build:es2015 && yarn run build:esm && yarn run build:cjs && yarn run build:umd && yarn run build:umd:min","build:es2015":"rm -rf dist/es2015 && tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"rm -rf dist/esm && tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"rm -rf dist/cjs && tsc --module CommonJS --target ES6 --outDir dist/cjs","build:umd":"rm -rf dist/umd && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd --global Microservices","build:umd:min":"rm -rf dist/umd.min && parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min --global Microservices"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/dist/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"bfad33a360686baa9f498c6bbd71e6b287762634","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552558445.35","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-6OUAGERFpbnc+gmOmHHvq02HFPSlQ0RVAlYL7zuz/8vqtm7YXkHD7RMzk8Xy2xBgA6hCRbwBm0snNPoKmeaA1g==","shasum":"2a1719bf71bb77afca0e9b820dda3374e950ad87","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552558445.35.tgz","fileCount":4,"unpackedSize":163408,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciilxCRA9TVsSAnZWagAAvZIQAJGZGKduGRBzjdCzRBOF\nsSpmmtfefFW1TNyFlDTSW+AaxjvThrpgTIDI7xa7NXLMNW8PUKwJlN4dxZyB\nIefeMoEl/mwMIYZdcOn/562uElS5oXDCOlk2gKUV9VIhZrxDB5cpfYwNzrr1\n53R/qncuHs7jCQ6NA2ysFvmzalybQLJmPwVtgYDES9IUsZD8DG+U8ndEqRhl\n/foNi1o1xuPLGZV+H2rKJK0/jpJMSHas8DbEenVDsJobZ4AXVzttINtn6mxm\nBK0XJhw6/+2V3vhQm7bt3u+ZDi1KElt63nqIjHim08U9TlZtq7Cyj7lz6342\nHbWRk4/aIHoBVXVv0jy7c593qW16u+UVKmtDE9JmBX4oJpqcSvkyuSDL6EPY\np3dIaKUHb1sjj2Ff3VcplM3AbP5EIlLsNuuAGfZ8G9YATQPLRu6IdGBqdRta\nyV0BqN5hcT/M5XtuTjzZsaatiKo+ZF5IvcAL6Fg510hpJbMJYidCVSbcvw0C\ndchnjI7jFGdPFpxOBlh/JM9AwjWY5D7gIwWeTGDeKcdr5aobd5t/14svIWE+\niYuLNY3yoMG+HiKsKIr+XaFRzyYYzNwYlXuRIMwM/Pw8GZjyNyrXB111xhQW\nrgLLFEKtrHno/txJV3AE2BZzXgZm8l0cFZVFEnoOngC1EmWI9joTpT5QWsqI\nIusU\r\n=eDZ/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB7pw1MzXtYT2wAqxm/5PbZQmZrv5hE+7sKEHbCflhhbAiEArRSjG3qlKOYMz6uIaJ+rxkDUWQcyNaxmaJl+esqArPM="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552558445.35_1552558448434_0.35602178307758403"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552570051.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552570051.1","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"7ab620d65526b065f18ed2ce22906fe19a80a600","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552570051.1","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-NdtOgMj/OIjmNSHtsrur4YTqFWF1A21DAfRlCRmF58omqbnPqh2KvmQWG+KajZrwiVrCL28btbcyb4WN4u5P6A==","shasum":"a72c5e59b1ec12e6b1acf32f942904f154fafac6","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552570051.1.tgz","fileCount":247,"unpackedSize":620135,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcilbHCRA9TVsSAnZWagAAUjcP/j88DhUlV92EX4hLPgYV\nAKu8kqwcqhJFdFLTw6pkt3I+aO1rvCOaexZZ2/VFiljWSZkBU2SmqhYq5u8Z\nMMw6V/g5yb68bePoz4x5S9RkA0Kd64L7JkricAkEWfYopWbYQ53xwjOKT807\n2pgQR5tW1AQewAqJ2/bGmz1mUg+n6UAR2Pd0XIcB6u2UrYpbsVzaEWNFtjUm\n3Luvgc7YoF6acJpJDpUs9BZXrSvGTaf/BCzVYIm+jF2cSqSzAuwjH3xkQMaJ\nzlM+dzRq+FqbxfEaMW5QwG0A5OKkPTYp5/GE0qrceLDMtpNPmSkN9XfgcN8m\nxMaXzrgXkH4y2reeQvIwVUKz+HdgyvBRAdc/+IfT5Qh4LlH1XvI2nUCf0kcP\nbZQuUo3EPOWy3WqUScUBM/R3kNXqxV/bkT0ssMxohVuK+CX9O6k+2jJG8Kko\nUE+HZ9fLukN/m/UeLJT53EwiXhraDH9lVbKXBG4VusRnzARqCcMI+Xz3PjKd\nTmUXw4NdU6MYDnOaoCKN5cLcDHZG3FUpEYSsXvlh9FnrPeefYSmSjvcNFrg+\nlDvbmibqvEhqk+84RWDveUehDQbhDEqxwXRXUI16hszO29de4xaPpFswaPJU\nPgg0DxKKVOOWay6aTA/d4LRerL0QMNFhdwXWAoIlym93TupEg3UzmJWyn4eh\nMeWM\r\n=Osfj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqUtNfldPFfIlMxnFQsScs9B7QRnBWNK/X9I2FaKHfZQIgd/KD00WvmWH7vbLgVLV3ClbxU3YATsyDRkJ+BdCc4/M="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552570051.1_1552570054573_0.9668717538888452"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552570350.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552570350.2","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"955ffc03b0ed2f2705f6a5b81285d8a6665ce059","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552570350.2","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-USsFqyEIiNtrAccDrRJg40hByG98gu6ZhFvugDr0j835wWR1OcSaTbEMFBPIpTVRTHl/fsCnkrc7Nv8vvkXhBg==","shasum":"853823f527fcd09ca47db0ef1393ca68e7923baf","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552570350.2.tgz","fileCount":247,"unpackedSize":620140,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcilfxCRA9TVsSAnZWagAAZ1QQAJ79h7byFMhcN3eqFpxq\nu3mxp4l0dGSPz4PrfXrnKjejOIGR5V2QQU+7prdsOn9WHmJf8Sy88X0HPb5P\nf3eZP1QWVI50oYVd0A4RlJFpp6gpW0Le7ySEqga+dx5MywlgHBV32L0q4OIw\nMh0X3ilBFTy+mMf5RaCwnB4c4G44Au5afm1qoPLS5uiyfTtOvwqw93SRlz8f\ne/JEqXw6+4B+nHzBg1niid7B4iChSWiwtVB34i1uwgg3JNPgumrfszYDKF8D\nhRNkwYSaIDBkeRakEWpCJMBT0YeHC2YJm194vd8OWnfp+whBX9sIgQdoAFrj\nkH62R1zZ5d/l3qUiwF56lG9inFL2QvqTlppxcDJQUs0wGVW1iJjcaBQMKtL9\nqEGVqilsPBBoo3NWj3eOJcCtt72pe1kBEoF8pS1oPsDxRD1SHj2MjpqDNtrr\nvrARMbHIeovywE8VptHnSMg/lFqvXaKaCsA1/TXhzoCyDbIgcaioGhoAlUtk\n85OKvueXRdaownS0h5SpTuWGfBUd7LH3C1oxEZle38zuPRRflY0LabX8IzcY\nZmheBoJBfDOm/HR43rGuCBJV02zyyGwKAeHEPrUTQl7KzYfdY5ZOKbRfuK1q\nhQ1dN37fDSktQNX2OagaaJ9nznzLu6q8K4Z1rOdLKUJGWULSKGTSAx9Diuja\n+rbp\r\n=09MB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaHHWEFpGxzXpKVE41fVEGRL14/q/Vo3Ux8yp7tM4CPAIhAN1L04YdXmp6jY5MnPPszX9Pm0L87AluRJlViqIjkmcI"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552570350.2_1552570352870_0.12862011167883436"},"_hasShrinkwrap":false},"0.1.2-alpha.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-alpha.2","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"97f264a6292d7aecd8b30b5d619930ebf9e40f02","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-alpha.2","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-CmzrSXvuSnjVHft+wD91MnaFKNhfBWLanOFaGI49hJx1K4wBcrH5SVaTlRS9+Lc6C0ZvkxJAQB+a3fBM8qOqCw==","shasum":"0debdd9e32169e85b489b693f3a4bda35a56f5d8","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-alpha.2.tgz","fileCount":247,"unpackedSize":620101,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcill2CRA9TVsSAnZWagAAOEoP/jd8WIBYo2N68a+mTWWc\nzWJxPbv2+Gj2APNmu4jR6NiFereUPQS0A+tJohxaI0UBwndT//vYTV8LZXbg\nwRwAn5sqDb3PGDn/v7LgZB1Cw6Lq5eF7IUNo0uyQ6Ruv1LTh/34Xv6TGtixj\nae7XVe+mQ53DZiXUwC22i1tNcH4mKplhOZd22qAWb1Gboo8Za6f8RGRsHtdl\nTPQaoRx+w3r1TUnSLKtyoYAC6mbwGTDB60nFGLM8O4elED2WZAjJhrUWv9NG\nspYkfObwuQiL/g1ipFvfV7IUH49wpJrjWzfjtbX5xFpfgwOuDnGpD0HhEilZ\nBk6v95BF6/wswN+kQPoCVevr0dvCpSz2ZOJEBY8m+EIuMiq39i1RHuOhrnHW\no/pH4wi/PjA5J/tbFPol/+Un0HR5mMYUSvByQ7Rudjv66Jcgojso9bjSweGl\ndv1hLK8Jtl7HLvOtbtkX6iT3SU7BGn6yjQEz6EtXb0vMW2SWmmLotOtPEJ7+\nl536EalL+1SFxJzqazX8+H4j3YO4RUlRO1jyRA6kfidI9bda5xqthdGYf6A9\nnVgP1J8kuvnacbRW5Z4DKEhnY+8TPMpMm5jm69fk3iujUtS4pEPvOtuvSDmu\naPDbzaSHgWeqxQlBAlaYxQM5Ij67Hpva9sm7ENrhE/nFBBkqTeqgKlbKCFCr\nG2Vy\r\n=lAIu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBmBJ5cM+UZv/+nR7fpwrelf3+yR2E5wSt5UQTt4PeTmAiADd1j1PUrDe1N+0ed6D9uF+UT6zwU/DDvuOkE+4+fifA=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-alpha.2_1552570742347_0.6450178713763797"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552579971.38":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552579971.38","private":false,"main":"lib/index.js","unpkg":"dist/index.js","module":"es/index.js","typings":"lib/api/public/index.d.ts","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module es2015 --target es5 --outDir es"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/dist/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"f91a1badc9f1d01c07bc8f82da770f01848b3eaf","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552579971.38","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-Ix7gV9p8iPKI/99IqZm7ALaYDaVDtp+e99v8rYjotAMc3OQZw9AEQnhugtTzhMtmrmom6JxvLoddkDw85shO1w==","shasum":"7b8442a20f8bf3a03c6dc55deb6ae6662db8b959","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552579971.38.tgz","fileCount":40,"unpackedSize":63615,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcin2GCRA9TVsSAnZWagAAIrMP/juFSOlr1spqCC5Hgx1+\nDfi5EW9Y6z9gpjhfU7KKIUbbpDW5DXNCMQRLc0QbqVu0mGmjXeFptN/hN97x\nm0lQJQpQVFMHVLSg/vVGmVle1Vi7+tyJKvPCbckHDU/ju7VNFVt/dZdFbX4U\nPWJb6vfXQyvlkUBrcKmlj61X+UBHD4gfWCVjXGJ3+C2DptuYMQnRTSIKCffj\nOGDY3KXNSd4Ofm2xgdhtQCn1hlQs8MaoNdIH8anWvqJJHzcSfcJW+i/7NKD/\n8ue1BPZj+LzQhmPTLsZSehuXfzYvvYIQZjRRm5k1HJ91dDIdwOjkppkF/1po\nSbUdIVBWY3+OLNt6kwxh2m7xHMrviap3x62DUDNnMtQab6q4/UtdN7lY1cGP\na+sXvRng/sLNV7XIPH97BdflQmAk7tIgV0ujM2TlURUDdV6BNG4Pk21hMMss\nFuLLjs/KQsQgiTsK4rgVIFSIZ5XYCE9ns5n1+fDFeINRzARSIwJVDRI3PVP3\nR9zHxaLEi/lz7gD5hnZNW0DZ02MUwamJYpx+xlRl8Du23ydA32iouWiyeLPj\n9IsKrG6A1mJHht+IYKbkCxxpOTWQ5LpcN5nXirwvGmqrvqOxs8cUmI1ntmjy\nIPCFB+VSRw5i3jjY6YJluE37g8oJPy9RQhJra8QQbVIFuynpEnXqylY+dkrb\n2pPH\r\n=09Pt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDiiO3vJWXCNTIKd72eyMNJ7viaUu8NQKBThSsT917ceAIhAK9K+SptHU/i5T9w72YFD9mWPVk6KGVRoM4k8ot0rnK0"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552579971.38_1552579973681_0.8815894769320995"},"_hasShrinkwrap":false},"0.1.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.2","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"idokatz","email":"ido@om2.com"},"dist":{"integrity":"sha512-O1lQ0Fn2CAYOBGaxUgXaTfZXrj5hKpDiE7dYVn079cWkpj7h7gVjxDysOfjaB1ktrm8a4HtPyJdxMdpD25tTkQ==","shasum":"514c7c59af09c3e7dd0301bde21ed1ec94edd80f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2.tgz","fileCount":275,"unpackedSize":830301,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcin4PCRA9TVsSAnZWagAA0mMQAJO8ucTQNNuy6eJmeLMO\nT3TX/VMOg+SP3y3evASLkteiEOPWqarT6BMxs+bqUrq6HfyuhTDtwHOm0yrK\npISz/4cTEnbKkBp2aD8twtZ1vEBRUGZFt4Z567aQJ4XNCGuX+saC0FyJ7qFj\nSpnA991A+nZD+C7zuzav+w5eMHINV3XnyYxdGFBlNkAbOh2rlM4VAaHTXQPZ\nxvJ5YM6+HvDqlHK/dYQfUwExNXO8LW6ZlyZuTyg0zzr8j5RhtDvhZXDeOqSV\nLjzZhKgAv0PfjtRfJeTtZOCuCTPukcw+SPCVCqiwv9Aa8CTunpoA+2Uq8mlF\nmJpgPBGjHJOs+lRCG8dmN9ZqG9DtOr94MUHpipuLTNt2DHREi7KcGajgcYQ2\neU67/toHEdt4O/TguXLF/Kt3FIJsBVY0KbsYKaetjU6+mTGGn/yC1XR6jByf\nB53cZassquNgeiXdbqkGSql3GJgaI9eBkFXhPTgKimJtHcTJfq2jhqK3OQnL\nWdwTBF+A8KHNcS9fWZrkKFCVjOeElusKiJVU6ygH3Prz96jJ9ul9ONylLTPp\ncLfqgkyH5krGjNFBO8poitYKkdVmA9s2ic33ooPp4h+XZE9FDTROOziLO1rO\ntdmc+BvXlBocCyIlyVOBP/RRg/aliP5nDrzSmf5ckkB6UJi2RB+gvRnLzitq\nuut9\r\n=MezK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAf4yTP7c6aQYiHN+j9l9lUi7kb8G09UYTrKC2UN4qAEAiEAnAc2uHeqc7KUXRz7MFRW2nhPepveQVrTzCQLm05WI3s="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2_1552580110809_0.2250662754585997"},"_hasShrinkwrap":false},"0.1.3-alpha.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.0","private":false,"main":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"yarn run lint && jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","check-all":"yarn coverage && yarn build","build":"rm -rf dist/ && npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min","build:es2015":"tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"tsc --module commonjs --target es5 --outDir dist/cjs","build:umd":"parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd","build:umd:min":"parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec|steps))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"c7c96dbe963e928d8b93df57931ec04d01e27185","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-ce9AEEnuZafhM9SGGUM1XjNQwVY+MakUwZnvm/5lbfWYHVD5MwaJN1kXX+RLTm95xIhHpxif+Uja5WJUQjqDcA==","shasum":"4b5f68551e1dbec0c3b25bd3ac8f4b5b1af1b81b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.0.tgz","fileCount":247,"unpackedSize":620126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcin8jCRA9TVsSAnZWagAAMugP/iWmhAJ9jXEL5EoMzCiH\noMa++FwVxOoJx4l+iOw7b7mtKRs4vZi8zOtA2cSgwt43xU5rSCfC6DjwbN5s\nxCsUVW9/TR4+LRqi6IOef9YlN5vR/qJcxKq2fZiXC2vhtnE8iN2PlmvoG+uW\n6sViGNRxn3MV0v5wXYu6NGruxAKIeaqogP83QrpnW1KjW+0tpPgEQxFsRDTo\nCrwC2/K/iF3Mt99+/TJcfi8aKZN7l+bBtFQa/W/tP3cP0A8fR1KTKwIxIZzw\nRQb4KgjeB/C0svAR5czh7oNuib0vJV92swZPSXqdhrMVYCjBhf7T05FaomHb\n9kCdLBnQPz874XTXnC5vJqguDJEjMt0gpCCWj+QyquRdChxOGVrIMubK9Jwj\niQReNOgpuEqTfTjTUINvb0IJvY7tBQ2reQpUzJYB0F7Zsxn33hbvM/EmW0hE\nl7vIY3GGSe5SJrnDGr8uZJaF0Q/TqLH/hCYf7Y2497cteq6ESun+eUk9zUHT\nxmzalgJhcmWK1V4HLudKaexrCxzc6V2vjw41dJp8r/rUzHjmXQW7Uxm2iFMo\nH5a5oTxjgmCoZ3gsp7vBPUU0LiExRBIKpOKsHqzkoF1iKGnqibe392HNpjeC\nUzlcWUcPWEKoeX3r6hSWrZUrOhIgFY9PwgFIXtzboDWKa9ZDtdRnr9WdWO/s\nXQS2\r\n=8Brr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEr7FV2HVD7omtIcPR/VW6pcPiruIOY6qjTsuvO7XbFNAiEAt9Eaep5WEd2rNhaZ5t/7qcDAyTDhsOdoogOyQY9ukGY="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.0_1552580386660_0.22927922288096947"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552662786.39":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552662786.39","private":false,"main":"lib/index.js","unpkg":"dist/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module es2015 --target es5 --outDir es"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/dist/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1552662786.128+716e137","rxjs":"^6.4.0"},"gitHead":"716e137c7177b67eaf1b940a72153ac2fcf68f0e","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552662786.39","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-6f7PuqrR97GDvAurx4x3k8Fw4T+es2FVOzkd5oEuOBDKqc7BK8cB4G9ls8+R8I5euEZQnk6duj8Demtqilve/A==","shasum":"374bdd73944ee04c6a3446e7045fa15afbd538c9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552662786.39.tgz","fileCount":170,"unpackedSize":351323,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJci8ENCRA9TVsSAnZWagAAT8gP/RtknDFnhAcGlMEeVNqn\nzRmtKQZe7El4DlmD1Kp7/Z0l57Qb9vq/IHvg/Xbrh9y4i09SKAoyTHq8TBp2\nXhV4VUVsrdBgI1QgOib5gZ4cu7Msu9UJNAmt4Eg29GRRgrVXplXAirkfEJ3U\nv4LC997Xp1iiILZv6iJBhTv/p1mLpMueiVZj6Lmhx/S23+8uCt6OlbWKmzkE\nolUOv/s8F5uzXKZu2ZOjzlQZnRH+9nHElx61Jx6gA0LVvhNoCJD0oLOJ1bdA\negXqdsMSCji7bUP9d48FvKsASnRVhAG/rJ8/URp7HzRsKPqZqUqf0z9ZaGSS\nfPYqxszJIMLBNufV5O3ZgKdtFYnHdGG6hNgbGCWIxI9SeBudAyNRpEdsSYD/\nkvgjd7b8sY0URZjKO5H+LHlZoelFllaEjMKia7pXQ69ws1RXIobBgsf2lZNf\ny7lQxT9YVdjocS9CCHv9IaxaaUqsia+zQbN09LrTwdK3bVx/G8hGF1UFdFug\n78s10x15A69C6dMmq1VuiHwaSNbplarD1Myy8KvjqshwNoJBaxNvE4w5II79\nZ8neGzENE7bvTqnBAXgBOQFMfSphLOEb8OeWj1VgFl8qRra1k/ZJujLg242Q\nfNvzwoE4zZyrGQe8kyPjt2PYT7clKY5LsH7d9rea8JHIB36AYrtZ+fL0sTUg\npwJ6\r\n=2FuI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDLQPDdxoK+Eg8Jqe7qiH8eKzd3ih55BJ9o4c55/UY+oAiBm6Jiye7/SEb22+0Gz6ykiFfljbTH28eLXEOL87HjXVA=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552662786.39_1552662796461_0.11427730207418141"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552664497.40":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552664497.40","private":false,"main":"lib/index.js","unpkg":"dist/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module es2015 --target es5 --outDir es"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/dist/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.0","rxjs":"^6.4.0"},"gitHead":"f4bf25d4bcba9adee0a6d0f299fe59c8eb8b88e4","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552664497.40","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-rDCLz4BGeB1ap14e4qutnPWxm6qdlMpryUnjvIhZTphPuqclw7X+uu2s/w8v2IUHtl9/706nY+ip5bmbtkoMqw==","shasum":"d20849944523788f2a6e8e1a4a5c154366871dc7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552664497.40.tgz","fileCount":170,"unpackedSize":351084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJci8e0CRA9TVsSAnZWagAAfcIP/jhloLrpfDjRr66XUyP/\nWb7fVsdTZGbET/v+bLqed8z0Fa+KHewUltGZXSQFos5Fm6DxkovGoW5mtb6N\n+OoikNb34Zu5m/sV2PH1qDO3G5vr4u7f0DU5RMZQM++jOx4+Z7nGyMEcBNH5\n93slx3IYmmNtHTqENPMnU5hygqk1173kTw8jLCg3F+Yhsj5vrl6t6ja9Dz1L\nQ76EvZoCXjbyv3G44zg3f8aUbE5VkNaaEIOeLomJ+JPVEkaFbKazoz399aa8\ndwCU2q2wIf4WB5XIh8bbwIU9IJLxNnx3CFCvqnIotwqJxi0nRwoq8rZVpYoo\nbi+d/aGtqkqLXOno9ljvyg5XP3AOo/CL1YRqPSeBvEl9eygpc0IYe1SG8uG8\nh9dPfDx+n+ewtcMY1y+C6aqT9rtRkLzW+a6vcglLJctKoV5gAM1sCaAuKHgJ\nnXon6ad95Gvy7rA+vAvP8Nth2/Xs70jFRpc+7BcR33BFNcOKwhsF6Cqg4Tj6\nhXkMg16Ktw2el4ZXNAxUmzePVGzkqq7Gl4UNQI1QTWPfLNXsf9jXupwQULIU\nUz/XvnwY71i/YOM5ITUbPJ6VEr+R5lfHSlGx+ut/7wqGZ109b4zLLLU9nFz9\nrFGlqhi0apuvz1KKy/HyeJjgRHXiQMC0bosnstaxU3n2Fb8QuCymEZbgM1z5\nBmHu\r\n=2xyb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQkeXScmnzbKux3NCdGNkz6FRewD1P53u/BfYzR1g9twIhANDDh5XL1z1Rm4+fd9jJJvW/vMJ0tWy5cFWJSLeVOres"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552664497.40_1552664499997_0.9841362879654818"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552665291.41":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552665291.41","private":false,"main":"lib/index.js","unpkg":"dist/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module es2015 --target es5 --outDir es"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1552665291.124+38b2c35","rxjs":"^6.4.0"},"gitHead":"38b2c350dde40ef3d25a71b71dea3c0aaa5121c3","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552665291.41","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-8iEJ9tWpKHF6awA2xluaMadKlnTRRzaIbMxQAziiT4SN951A9yEogcWf1RnqRb2N+9x66A1s7loYtNWRW0Zd1g==","shasum":"16194948352b95082065e258b05338b4aab9cff9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552665291.41.tgz","fileCount":170,"unpackedSize":351146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJci8rSCRA9TVsSAnZWagAA5AAP/Aus7v0VD+3ZAkEVQgE0\nfKojtevNzg5VZfCv9j6nGipIZ3EfDmL1UX+ikz6eEkIUsx25ynOURo/Zz+sT\nvgEjQYZwRxOzEW7TuA6KEtwu/v38Q5b0YZa7dxyC5Wyr2g68TdPI+0teMHkv\n66jg55qFnZBKtfC7x4zrSJz6DodBesyBU2UAvXrZyF4CkAFGSRCUwADdGUTD\nksx32rcUOZQ7kRJNE0LmLTRJlh7uKfGZ7zEq0+QIv1SHDDpM2cqjAtoxpVNA\nmaAmFTc7WV2AWDf6WBNylmbmVmmUb4MFCUeu/FojvQIU5SOCxhf2qTq9C58R\nPQsPiz7FCDUK5k2cOxNG7LGD+NWOb+QGY9hTDCQjDj3Y0PDlKIdUNWPCaXJj\nx9wkanIjJC+Ae15ksGkwP3XhjaoyHC3I68AR5mce19+/DbibpiT6eUwT97wu\nE1BWMSOzd7kSqIedWBrm8bfdDesgkadxEDaKrvpCgmuysSjbaZDhW2rEiClG\nwc2jHRBLcFHdP1I0q8PEdtW0GsHUzll78EEaT1/6yfU31Ia2OQQkXoZdplWc\nJj/pZ0ywuEEIbl/4KZ86qdhEam6H5QPSUDrBORIaFj4S4gpDkaR6JcN1R1Av\nGCgv0u5OEJVkz1U7Cv7zSn/RQvbuTDtSyTYfp4VDREZbGmt4wVjbyDNAp/eh\nR/jZ\r\n=nOHL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPaY4wx1ZXjuEeUv+0324ERdPLcJG+tUl5AlMFb4/CjwIgXUt5hqnCbU3xD4DEmLsr6htI013JCc7UNUu5njE4kxA="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552665291.41_1552665297930_0.10981929036885307"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552668881.42":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552668881.42","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1552668881.122+cbbe8cf","rxjs":"^6.4.0"},"gitHead":"cbbe8cfab1d014c734cb57cdcc71dcf6256ad994","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552668881.42","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-QLuNvqX2aLDvaeqM1cD+Y124UIrzST0ot+px6OiFKG0MR3/nRdiNGZHGJBEW05jZMPQl8iAUheKyKJrTAahcmQ==","shasum":"7cc1475cda7d41345d4d2caae7b3bfffb6a8eb72","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552668881.42.tgz","fileCount":234,"unpackedSize":460524,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJci9jXCRA9TVsSAnZWagAAjysP/jjYs/l/gPJaQG7iK6hm\n4EIBevVbR/Gp/+y3rzhwdPHNumhgpO6LnYjahVB/1CnL/N8Jxm6zzP1tFEYd\ns6HN+muyV+sl9sZW+tC+D+vuh2jb2oK0kDxLbZdAWG52evG3YH736BGxoTb0\n+xeTLJb68vnUJJYguwF7ullRMeT2ex6VIVcZrcHoEEa2JxczQKLbOXiomqii\n0HUfa0nPY2fj0uxJq6fCsdEqckK/Ps1j9gA8rOXyYzIRkJbzLwEHeFRa5RnJ\njMRp+ur0/pRDQPap/gh5H6Uy0EgMY2NGIBLVLhh669i5nLpG5Io9Q0Tulblw\nxVOTZrkv+D8szMeqv3xaJz/Kb7CJvbPhSICHE5JReFmcwcmLBEYn+qXJyKOu\n8887jiHN2UpvnlhQg/nQbIYbuOxXYRw5HseDUJ4nczDNSe3KLsw1NZONivDL\nqswX+6mKyTqmgrL6xsMRgvN38uxK09Y1bFFrSOFxdtWaRBb0CVdnjSe5YN0t\n/3ZxFCJ3OCUELuhMfSlrQeuehrkckCmzy3im8x6o2mn0c+q8XJNUiI4UBaIw\nK/7h9WobA56/cfEZGVNO3mhJJjLAkylzg8KcQ0XEZTvdXyMPywi0pXJKQTe3\nrbqxFFVKV31oFgtG1rN81qPvJ0BXfHJxFEzttZhdCGVMIhSqCoQpD6V35TNQ\nc6Sx\r\n=+D6q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFt3aHEHnDLH+BYdNWvk2el7IX2vFsx72ZwG1kWqFEGJAiEA7kCfEp6okaMbbC76nrSeOV1EDnDN9IzQHSFrmic1Qjc="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552668881.42_1552668886934_0.4091576839953115"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552901234.46":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552901234.46","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.0","rxjs":"^6.4.0"},"gitHead":"53afc9a183eccc42256c8982d844f7e5117f1296","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552901234.46","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-wEnIeZyMq1z1jJ24j1FjnumeibQR6K6Z8imNn49i+OZ51jJ7npt1Zq4o00kyH2rHDG0LmN2BOFL5Z8uNHx2Z+w==","shasum":"4ddcfeec12b21d287380bb3ce6557966c794f716","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552901234.46.tgz","fileCount":234,"unpackedSize":460533,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcj2R1CRA9TVsSAnZWagAAyQEP/1kyhHGS08cp6MRhwXGB\n6xqcRMpNJGwMvJx46kU4MMWbXAClR9HfuDg2zsFiL+aodHlYHhXmgj2JJNWW\nCO3eeCE4xQymqkkb+Z2Pi56x35Byemf7Wc5wERx63QZ2H8bqH00LBGPQnTf+\nLq+yw0zA+lqxXOur36auOFu+8PSTLYEbr5jSxbnurOmaeIUQMdPNmcbv7oF8\n1Bo1JeWLKBs6Fve4XHKWzbCecXgCODseh6qufkeeKKjUsWFz6+lAQ6MLulTX\nWDQOx0FEoI1JlOJ/KK6E374icooxLuMkSusiQ3d9+qEXj3N/jVHJUCM8oJ3N\nz4KF6dKD205827BTi8vUHjHyHiOmm8jug0YWVw+YLQmRF/i9BUl0f6zydnF0\namut2F6OOUKDPvOMg+pHg/h4PpdegWRQ6WFR4mib6b5bVk43bdoS0/TV1SHI\ncZ3w9tc/DB2gMR4ciY3ltQ/AEFt9LVd6Smr5W1jVdP6ZzIMKFB3QyXS1f5mv\nx5AA4LlLE13senjoOncBT+I6658ZlWYlVmD3wadq8DCBQl9Qk1xAhXup1gvt\nRsEu3Om2bY3gBnLRudWie60ulz8ixuSaE6AIasWlp1PGtvuTEcNK8j7voDuG\n9yFRVF0ZDfpVXA3nnDi4MhOZ3nRwHLUB0Kvj87ErBh7nLZw+2nK3291wey/c\n8Owy\r\n=8wU6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID+e9tasFi5Vn2oyTiHP5CNHcA4lAj1sZSOl3FHL+b1OAiEAm9T4QJjaL/fwOGEPUBuG4hn9I9kjFGidYn+70a0EbB4="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552901234.46_1552901237085_0.39718436413613034"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552902219.47":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552902219.47","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.0","rxjs":"^6.4.0"},"gitHead":"8ef42669f8265f89e92afc9b3328108746b397f2","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552902219.47","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-Qu8t3EDb97ntzgVrI4mbOMLyoclFO901tOSHrOJEGOQbpB0kYhN5IzQmYIBrmTwjL7R9G1hnALgwNAnJ4W0www==","shasum":"8f0e4d1b30cebf7d15732d3002e2ea217564817d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552902219.47.tgz","fileCount":234,"unpackedSize":460515,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcj2hOCRA9TVsSAnZWagAAGN0P/jc+ihsXth0+9A+pVbHM\nyEoipUY5KxlT/gDMQWBgY727bzrNjPPXKz5S0PF3CyncIdea+hpjEHHhoy9/\nL58XV0FVExeu0vzeE9hYvBzhWISi94zNyFdtIzyyy6Ww+HVZ0R+J/vS+zIVl\nU0q6j3/wV82nsOvwrojL71rhlgL94T6YIPRWAMS7Y8+Dsicy8f29pconLV2b\naj1FJY0ehC4jqjzz6QE4ejq/9hIuyXOFxRMqM5eSfMh66vPfkXEIU+lYxs07\nT0nPric7J9WVgPR9fNqSxCZHcgPXHWacHjP5Wqc0qQXDU97sOSS5fOfINqOt\nxGTOWpfz/MRVNRyXXtoBmPluk6dZTlucKnKsPPcs5yMR1VukHsCrglW5dsFg\nR51bJye0mjljqIFEjZCgAmPqx2watf8eEDdZyJ3mEvs5n0yVHuDVcwVR9qg4\n/8F/98ZKLSYlQa3j5VunVKc8NgNfIwUodOAriGUV+n1zT6o95zHdsaa+TGs/\nuA8M8zU5KzgRMZ+afB2VTp3i0ZBYJGDfHGdfoO19YIn3EbvbBNn/cltb0+uw\nYw9uh+twVoQeop35diuBLLbafkvInzFsCJuf+p0dwZpH3su8c3o6MkkIKQl4\nmgh1c24jA+txGvjY2fm8ttHIBTmgzbJA6fw4AGRkNWV7YZZlgvvBu62eHaVZ\nDQz0\r\n=9+3k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUvW8kANYL5J73GrI2vbt4gToOAKa28yj3ikb/N6T6+gIhAM8DOPqcplyadHDWQFZuM15JixXCoi1BcMHhD5TUnYxF"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552902219.47_1552902221710_0.7393609339148501"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552979161.36":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552979161.36","private":false,"main":"dist/umd/index.js","module":"dist/esm/index.js","es2015":"dist/es2015/index.js","license":"MIT","scripts":{"lint":"tslint -p tsconfig.json","lint:fix":"yarn lint --fix","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","lint:prettier":"yarn run prettier && yarn run lint","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx,js,jsx}'","build":"yarn run build:es2015 && yarn run build:esm && yarn run build:cjs && yarn run build:umd && yarn run build:umd:min","build:es2015":"rm -rf dist/es2015 && tsc --module es2015 --target es2015 --outDir dist/es2015","build:esm":"rm -rf dist/esm && tsc --module es2015 --target es5 --outDir dist/esm","build:cjs":"rm -rf dist/cjs && tsc --module CommonJS --target ES6 --outDir dist/cjs","build:umd":"rm -rf dist/umd && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist/umd --global Microservices","build:umd:min":"rm -rf dist/umd.min && parcel build src/index.ts --no-source-maps --experimental-scope-hoisting --out-dir dist/umd.min --global Microservices"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/dist/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"rxjs":"^6.4.0"},"gitHead":"2ea9341708d769d8c28de321e71b6ac63b85433e","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\nThe contract the creator of the service need to uphold.\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\nIt can be done using Module approach\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552979161.36","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-I7hytThBvydQIfhjxWe0SMLJee8PBkXjzoEq4zSM0pXQ0MX9YflPjv5R9onet9eLXN6tOh+WKBMnPPG1aM9hQw==","shasum":"e711e836918ac55fa1fa3ade10620a425cdeb3b8","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552979161.36.tgz","fileCount":4,"unpackedSize":163344,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckJTcCRA9TVsSAnZWagAA7a8QAJzWAggqiLn9L4HpyRnk\nKpEwJHzYTWkkzB/q2XqNhkTPqMMO/uL4dEgdOlX029Z4i3gKYoNGRX/p/+f+\nkyLZgQaQEahvQmzEG2UJcADhfWuaxOmV2gKObUQMeKnfk58z8AMtUj88UAOY\nJUwjDd9i/lF8mRUHniu5V9DZRinBldj+LWG5NzJu/Qy7mrulE89Fj328VAT7\nveke8oXauCiHMshMD1I82z29abDuvyyyMmbg+IaSNRHsffdUtxVfOP20RcDw\nTRs7mPa30Nh5S7BroMu1zZpBD/gn176ISbn/HYX1+ck6F3+m40hlXN8wx3Ze\n05Avkp0OGDJTjZz4V1AAwbB2XD1ygYNpRf5JpPv2f6TvJn5NFAcgNMS1c/FF\nXR9M0R59ZSIfZjurVUndURRKNrkmJf/gU5Jikt9b0Lyxj02v8bkYUSeGEPeM\nOc9b2gQ+PMKVwaoxC3uaeAIE3xFcnolMZUlBXV9CKOGEzmwsbmM0eCaEyTOL\ntrDf32js0rcnoBtlOPHUpZW6nvkljf8xt6yvPFGI2cNhYt67FL7QLbUcvy9c\neRPMTOHVNTj2GcMM9MhyLh2h+sT7w/O70y0ilGy+WHcZJnfyZ69PeergTREx\n5dXO2ny74UBFp4bcvVd8pmyXU9kanwma1JhTTZ9FvVoKcfUT7PF9Nwq5rw1q\nMFtM\r\n=clc/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBY6w3YYGPELEGRnMr99rbQ8xG6vQki8lRsXoU7b+yU0AiEA1zEGS8MZgALXnnGo7zUfI256iaUJsusCpqwEU4Vw/Xo="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552979161.36_1552979164358_0.8714401370926956"},"_hasShrinkwrap":false},"0.1.3-snapshot.1552980910.6":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1552980910.6","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"b6e93ae724832589108a8ac02235cd4594a90718","readme":"<!-- prettier-ignore -->\n\n[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"<!-- prettier-ignore -->","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1552980910.6","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-3TT/i3RqZ3/5SIsiOqCKo92BdHG4FXknBWAnph/DfdcK4hW77/NHICC4me+8VFicxLNZxKJSjDxGP7WFpePJtw==","shasum":"8e37fa3c89c29bbec47a54eea8ac768db4b72ba6","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1552980910.6.tgz","fileCount":230,"unpackedSize":440235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckJuyCRA9TVsSAnZWagAAYOAP+gKfJga7EeL3rr97lHhM\nekdZC0wHUedcYbmuCtMITzbjXLFBATTxbZMdDvgZRhvzVAJuo1wT6dAQ697e\nFIYjJqm/9SDkpWMTGDUBZRUZE4RUqz6ML0Gekfxje3C1cB0GAU1SShOnPVS9\nnq7CPZZQ4pHoWXe2DgQAZTG6E585iW7emUX8Ms9DTFsXmdrzlDe8zPldpe7b\n7H7FXx+dEqylK+/AEkY1FJQ0J8jOYZE6dvv8IUJ3oRrI9dst2Wkm86Pn9/cc\nRzVdv+PBn5ul7Fc9SRlKjUNrWqVeUL1eYjP8CyDpmxkhMwGsLwo57VGVXCHF\nUTt6oH5zH9XuZUPqXMIXe9YOvzqSf1AZrmYMFJWA7Ob4k+J4WCjHxMrFKSyw\nixbGYl6cx+Id8MSOgTTGgtxGxAQ9q5vfb6KR8vyKKczDlNEcxdb8ElF5jhr7\n1T3n1nRonJwx49t8e78+hzQZVbCuyC+5W//d8/GDWAmztfJlWJEybnoySwAD\nndvUnli1DLz2yGMdKYw0FpKy9c+harwQ6cW8A4V2TOIlJQ5JUAvIRkXb1wDJ\nuPKbGfW8WveWmBdDy6wK+FwXbVdlxLAsa0W6xXtnTDXP97qrh1V/bOdR/bNz\nyF8VtJvknWxWRZU2KtvffJTJ2R9yFHHdwG9FPWlkguhenQvH5UwMSC12TtqZ\n5+2j\r\n=j9PI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcSY+5L5+9cGBOC/4yEAUl5D7Wexb19ckWTNH1x+lc/wIhAI2SwpPbSJKq6dgzErBhkZZr+TsSVVmRl+FqNwQ8AKk/"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1552980910.6_1552980913483_0.6994294627957713"},"_hasShrinkwrap":false},"0.1.3-snapshot.1552982221.7":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1552982221.7","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"e28bba103b7186db0c0758552ea3f7fa3e1819a4","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1552982221.7","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-YIaeyjjuszNfNM0Ts8ttWhojqfWp7R+8uJ3b6K55IhXqctMmOJuqjTkuIqjIzY/KXiS67RYdXX73CwKTnZ6v5w==","shasum":"ae584f4195126fd49a67064ce10a182fdcf92064","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1552982221.7.tgz","fileCount":230,"unpackedSize":440209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckKDRCRA9TVsSAnZWagAA30UP/isVbirwWTr16hJiZpPt\ndnRZRYqg09Hd0/jz/sFzUVQpOswuAbr8iyVYGLXIyZuh+FDretwPM6/PqvSb\nTiWUB7xLT9hXB4oEdHcSQRk7WwZrY8peyznm+Z/D9A6Xy+61SwfswrTYfQFc\nSZFQVZGv8kv5TeQaNGMWyEDOJ7ZBrxXn3SSWv27UCF+9ZcjPjZCQYqwLsumW\nuNt/q3aEbdZFrCHtQld97Be4N606NJIniM+fGDAscdB3tL4bv6LPK1VJgKQr\nVXbtIopfdcvPO8sCMjVSABC9vqw/8nT8kmfqI8B5YVigZ4HthxmKfUY0yKbA\nh/6YlMjKENBP/SqeKWy5Jb2yNdCIysp2WkLlIKh8WmE76mUEa/HqmRuyklHY\noAKFb4gQ45P+/MHWFtQTeDWIw4Mzwsfitz6Ip+1w0X3/ZesqMmyz2XUd69RY\ndAqHGmCpvmoL+GrUEs+JlIFP0DkiBqPR2Hahsb56o5SOP9fZBibsTxadt25W\npQo3x1lNx+df2G+7CN0oj/2EW+Rz9Kvph+7KrraxcJVDj4aGiSN9rRt4Bvbb\ndfCJ6z9SlmFEZdP7byh5Pc2QzNS01PyYKqsy+neCVhroAWpSIIqIR16mYoir\ngZ3p72Tr9xgX2nykhCpapWzZy4pYNd6+RwMxq04AYV9xpcYJCV2yzpYRvchU\nn91b\r\n=Pgqs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXqmv2VS5mzp26CBG/iB/YSrsiUv8tS7YmMh+53FVwOwIgSDUBv3mBynLSG4jbRZCda+5P/6tKrB+Xb9FYSVVkEOg="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1552982221.7_1552982224378_0.2272390719772912"},"_hasShrinkwrap":false},"0.1.3-alpha.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.1","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"e7cefd537c0961f822c4bdb38c884765e059b3ce","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.1","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-poktuAtDMncP9JqTw+7yHYFDuZbtqwH7ngpE6ZKkcrGKPXcSWxRWV3aX1o+pUpIyVgCAUdOs6LdG/iAkQxw9LA==","shasum":"188c13e41ef40376751d07c719204281b6248ef4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.1.tgz","fileCount":230,"unpackedSize":440187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckKhPCRA9TVsSAnZWagAArWwQAKJ/oouX3tB4EtWhuh6C\n9Qi8CaOGsfr0K+Kqt70LLLNMIl0Pb2mtREP7bq26XBX844peFPh2uXXLUs+8\nPDy7IbRSZ4ydiwSbcNDbRtEHPD+D7lTwp0WJci3kCqTZVy6JQLNxuuQAHOft\nSA4UqmTJWlW7QP4RaUMHZeXGWT6K8BPKWspt4ke9FxW9W53v7vxLP9mpgx4v\nGMWZ5lfcyo7PbIr8fMSa6FpfMIZ3xagCnXh5ahgFqEdQvViAISIUoryUEuag\nnZxaT5T5PgpAao+QDTIGBb4rGwscAx/LAQOEKYCYKWeJAwpvDsL9+ktFLTdE\n1YQ9zeMV8KZHQHKhEkrwzUqX18IkFofspNQOJeX7mFyQM+PsCZc2X4xjJhMH\nW+SNKaD+/Lidd/pN/zG2e98QJ04OGlHgYoD2ahSJBDDqgIDH5h9yONqm9R4a\nJxzATvSjW34LvdI9gFZqimC1RLvQhzMGD2ZG21+sw03a7PhOO+qpXbG0iycj\nn0G/7ek86oLqRTE1dT4bGu9ZORO+nTCbI0C7xy2O66GP8YEJ3XSnQwj0JA6C\nQnuD4DzjJo3qbSk0M+kNwDA9qdbWIic8DFv+PdDpBFifWj1+R5RSNj3LzZmK\nd3PnhSYO4vTW+vFIQmAu1OVrcqBfnI96+idbq193CMwhRcViNIruh5wR42qq\nZLsl\r\n=9ghV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHxUYWxCCutIj6h8cdbzkILg0IcemUDmBlp7SViA2eFAIhAMee+Ip0p1hRL8JmGrQyv58d5glV3GYPrEjr32abKZld"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.1_1552984143055_0.4806689725264537"},"_hasShrinkwrap":false},"0.1.3-snapshot.1552985295.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1552985295.0","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"1e2b499f8ea792d800b704688b6a4410113975ae","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1552985295.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-J/2GdcMo4zmtZFFp1CIjv3zMGfRy2jUhzlBr+/OEEZkGuAxLQTd4oZw0beLJPWbdevEAkWHCix1TFdKAb3l7cQ==","shasum":"15a8d73e3dd2133b51f4a733a3479725d3175c9b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1552985295.0.tgz","fileCount":134,"unpackedSize":152140,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckKzSCRA9TVsSAnZWagAAMhYP/1X91xI7MuP5U4s8XvuL\nTBsBExHZ7WfmXHyxVDHsd6CaN73rguuTiq6P7oWQhHmfvhzGTzW6Hdqe8cxw\nlAHO8A52pmJEi/UouQ+koPmDGj3OXcJzApmgdUs0yn4G6xi1yXtD1+f+kbt1\nGm4O8mPo46o+aopCM62UZHcikauC5xeXgtdqAmqhHCFOHjSWOOO2XfxFSSfJ\n33xc5yaMcZGRme6k9xeNqAAWnyy8zAYIEfnNMgWRqxLPPth5m2WLN5DlzwA7\nN6CCDQffxvyJEhuzNaQRy+NOnCUF5ThbY8LSEdPpxTBO980gTQau4Czzklkz\nJEhA1jnim6kSpPydzSOTNfYv4bqi8kppFEWfdSlNoV0dEIxiAzjxBLDcJ6Ub\nHOzbr2JLX9ljSEltQQJJPfbpcfqTO2iFfqBcAgESlbyz8/cW2MK9lHC8SGr/\nUoG6q/yBbIF1iHCjiP7U8F6QDy1Y+DPrJjuqC4WOyTTDy8YaMz9jE6WeJ64y\nt+G8L6Lk03b37UmmABUY567BK/JYZYBJCPlT7Dzugf7b08rd444mTV1dWVPd\nmWGojq6eKMtuasRIaUU3hYB7gYXTMTfWBNKC5+yp1a3hM8Vhz7vBG2VKQJkM\nzF/Kw4AzuLbFpb5wqSnddtJyJdXHqRnXpOze8mOFIyIS8ytHJ5sug8Phm5mY\n0dnp\r\n=7eWF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBLWLOus23iH/R9Vq9ByKnS0ytfUwYGGVSpEUgtJxpwrAiBYmv0P7akzONBuocCoDi4sseqoT0/iH2POPvlqHlwK+w=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1552985295.0_1552985297559_0.19883454181079818"},"_hasShrinkwrap":false},"0.1.3-snapshot.1552986169.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1552986169.1","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"50e9afdf754662e712410f7ee467fd488f6dbb7d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1552986169.1","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-OqEkw3gPkddx4jt77IJRpw56pdJU8fDGltNqHuNSn9tyRndh+oweSvjcAOG0/ZCe+vmUQDv1ctqqkQH3+U3xmg==","shasum":"daa2affb3610dbb7444d1d423172273e21886f37","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1552986169.1.tgz","fileCount":230,"unpackedSize":439835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckLA8CRA9TVsSAnZWagAAwmEP/3gis6/9kAF8RCaSzXek\nTg7futVuVZOrIwisPbP/mk9UITOE1EdLRJXs0y4dA695vmxeMd5JbJpXdkBZ\n70ypP1E60MiZcROyPI1DQyY/NoJlsjDsbHuFHR4jBpm4QLkv8sJqfBWHKwaK\n0tKTtNLNAit+1OTLY5cPkR6zkwZU41MWqWCBwyePVQPLLsxZ+xgpaKUyVtnC\nGKxNaY/WpBNhCC4WWrexgHWZC+K12gfnnZ9GtAKSi/+2OWn6s1VbwkW/2PFL\n5UwqnAy55QhqBfODPlv90J5NFJCAh/xAjWQw3JioLBVA9x7IQYmnBYVOFjBs\nkL6oumHaPCeGb4CaqUsL2kH0hXOIW0kZmggDmp4VUT9iq+FD6e7y+gdA1WtC\nkhSpogb7/sGv6H3tQoYAesbB2eMMGwrei3CGJa6aqKKbIJSKjyvuczpPBHEG\noosuKi+gt/FxF7hdJ9YWhqt9T4zu7jSS3vaOXLw1sM1VSEfk+V5z2H8Czxww\npTY7WKz7OQaHod/97bdcWic5i5Y5drF1i7GTPZTaHxi8CYjI0q+5jhjAIenR\nlkQNKhH60Q0abQG8h5+O8udfo/pQAmHcCwfB7MmwWlEOhZw7+WPdl4YDESbc\n69It3TadbVvMDl/toDXEIcTOBEuLvJyJbxzMRY3AmkyvC52u8q0z6ir/f0bx\ndoEM\r\n=ioks\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEQFgtqQt7TfMcaCcd+Fsr5DTzo/EUZKDD7lJbny5ZnLAiEArwudralX7WYcPOwtPD0bOQF5sC4TfOrDEsqvwqfbYwU="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1552986169.1_1552986172079_0.6079587309744838"},"_hasShrinkwrap":false},"0.1.3-snapshot.1552993153.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1552993153.2","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"fac399fd5598680ba6753fcf87fa520401f04944","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1552993153.2","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-CQqcT1cg1PI/20H4QDzMhEmHY4m11NXwxxUNkSYj7YR2EAicgWDH8BHOg4+YB7vJXJOEXGIk4tVX5B3HllVOWQ==","shasum":"d5a969bd3a2a6a78254db37f1d096bc6ff00b96e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1552993153.2.tgz","fileCount":230,"unpackedSize":454772,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckMuECRA9TVsSAnZWagAAqCAP/12Ecvj9wX+LhN9E1bB1\ngd6DUClIOFwX4MRMLXpZXASD7EWDRDDRcW4s8jc/7WX6kMhlRPQ2E8zY5j1E\nXqmLnzweolFNdfByhIphpe8kd8JhIg3ZKzszY0NwRUnL2cd/sZTgzAEBrPrF\n5M8VvNwFnicCoy7Y/Lv7CxmYAmU+aUrQNgvMbRLLWtBbUycWEmeEtOc0Zr1U\nMSKSSxZ07ALHnTlkzGSwBCquGIKLvr6TS/6HB2CMsIYi+OH7HgvVfdvfPl6J\n+EqGQ7XpttpiNofijzNK9BH+ZbgF6eeYQBl1Wy9DiGveVAZ5GCYfDaUGtwxf\nvJsOAgO0eSXHuj/SPI6ZZzdWlsm4axGIQls2/e5bx5Xq6NlfUGCEcGBMXdWr\nXiLKejuN/jurRfujxm9NThp7ImlydvLMQNHdC3iJaCVnltjzybYgnJv8ToJI\nxP6mDuXfu2KeFRvbH48qJrgq3WxUia3QmKH7D3QfUM6SLZzMboDlDUZ1eUg/\nCFV9HJwbrWWlQOoqj+DqUuaJHEoPmRwmSO2uzn2JAjySqcgGBjcofbh4xxAa\nl83BkvX+8v7fC7IudeLD5sqrN8g0pZgvwkLxKs9VsBPDVJ6K+6kByslT0iQO\ny5HIsihwI9lhtYFm1SuoPjXh3EUeNXUVLU8gnWqGPL5pGckYHR0Jq0UFMxaF\nIM0S\r\n=0Cgt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSGRee34ICg9QFh1kYx2s5LM5G/a/4EC63MCvxmPDg6gIgMf4PYRXoijq+BXIOO3GDuC3UKeiFBsiVqri42T+Z53Q="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1552993153.2_1552993156331_0.7075597115113299"},"_hasShrinkwrap":false},"0.1.2-snapshot.1552996180.47":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1552996180.47","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1552996180.114+010feff","rxjs":"^6.4.0"},"gitHead":"010feff4a35d14fd2ffd747c7a9f44f8f587754b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1552996180.47","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-ebiJHz8xdESrLzIRVchIwwF/7jDkkxWy3cs+QfZJ46iv+dR+vdS6gtFF4HDyI8nooNMjUc2uqJ5xzUekhMHi+Q==","shasum":"4ace1f5600a4e4ad8744e5f775ff7246273fd4cd","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1552996180.47.tgz","fileCount":197,"unpackedSize":443021,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckNdbCRA9TVsSAnZWagAAaHMQAIrcaZXaSYnysHZx2ax2\nhPpqvzbKrJpz3jgoNy10W33jQRiEPc/gBZTcvNfF1Mge+MESYWZRKlgXQTG0\nb4Ponw+l+uFSIp5akNwJGNL5eJEoZ/70AGzobjgJLJyrs/zFokO8gJWB2Ima\nfSxGmY9IkhhZyAvpBJfl5JVoCpuHXoJSy2BLAnUtW/GVOXXaYXNDm/4c28yO\n0Y01rl+OnHMKLq/yaP4KBXJt50s81Ao8a0faNlIVCXPur5xDJXyVKEEKdUF8\nay74qGEWdOaS6ct/jihjX3/v7sNztbrGwJ5dzP+nxSmja4bhYGUSrVuAg3XI\nHWWrPUtj7gJl+gooL88TWOVcNhSRSmTbOC8j6XeCYCeRxFhaLPpC6q+94vFF\noj57AM4hKcYFnvD1FndfJBU8GtRFCj8LHt1TPR8bSWDLVGhLKL5QpqtRNYiV\n3N3RkOHJ3/D9wmtLkPGCFbV9gNL7iyJyUZjWbBAfoSuhfhQGZSdB9CUZYXSD\nmtlG81WZ+Vaf9mdrWkn5HHr9NRe37PvI/CiYFX6FFI2wGFgVw17PNS3M3Cxw\nPqWuTUt8vgsxofMjZZmj90RfFe7t5+wlGDyVfkPKbKdjDXqUgMPKHaCnthlD\nt48IQgf9iA3KD55caifpdtSZVAiZv4BcyoSFQ1ZiK0pL2yyuXk7UI6Llo3w3\nLZHI\r\n=eZtR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBGLG3Dj+FzXF941L4B3C4Jbp4lpnJj6VJxnU7HYuoQCAiEAq7406Tm483FuHUcO+K9/ehKv3HNCjmi0TWXazGgsUmQ="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1552996180.47_1552996187226_0.8324555746480078"},"_hasShrinkwrap":false},"0.1.3-snapshot.1552997980.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1552997980.3","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"c86b5fc528ea2673bc739e1967cccb9c1897970c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1552997980.3","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-/oEXEo4rqfndykiKYxVnOBBnVWfpFd8eVHu//vTFmFTUhjRex3uIcDQ1M9RJLuszmiFAmrCD1njTbmWBXYjneg==","shasum":"ce598aaa157264d8a6a7ede6ab2cb8fcc55b2968","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1552997980.3.tgz","fileCount":230,"unpackedSize":455795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckN5fCRA9TVsSAnZWagAAM94P/RooQ2U2dOQuiEtmWiuW\nYGrVq8lkyTF8R7o2us+PmNvLx/QCG+zcrPMXf+c6l1zTyzhlhvnAw6wj05Bm\noZb7S8+9hYXxmbLiklU+63Hc2nLcGHHMaFWicP1tpEOUYHTHar7nvPDCzk73\noPu6khZRSS8z+fYoqHxshFCnzvbAc5k6R5+gkJteywuT8ajLo7jjbDUinupN\nULx/6h0WbelBd0p0LyOcVUotkbe1ca+EO7KcyYwEZy4iygfB5zH8vAk2v59C\nW84LHKuY2vuTotpqDK9MXEGql9+x9Caxh39krVNeBnxN8gk4xhY8OCMmeZPb\nL5xv+1rfqeSmJUDOXyWspyzV0XxklX09GJnIuPXsNSdrye4j2XVTXr/syaQK\nlLRwUt6sW+QVwc6GLlt5WxlZSRQ97njWYrI3gMjLNG0Y6EE7YNGqKjEy38uL\n3mvGfQjOV7r0k627f19McYZp1rdDdtHALtw/k5fxxEdGOumfq656dATLJVlk\nwAx6lA36h2F4KgCtFWxeK6fGK+45OqaSRuUqBCB6q4IUo34/qozQNrjII3Ei\ncuycIuz5oRTWB+v0vikMQ798eIMWPI6zqtpMzr/LAOUeZV3xnBTEv0vZYYoh\nKODPy2NBKlcxxIBIndOtHYj9f+DVe22JE7ZTS47YXZ7qaQp6Je+ITUNFo59i\nLPmL\r\n=LjAJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2JpG1txMdH31qSQagter5P+lX5owpUVnag7zevKICbAIgI9vNXikzrBnGtGbpr7Vv0bIgR7esFvQnN4U4SDxxIWM="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1552997980.3_1552997983351_0.14676969601105494"},"_hasShrinkwrap":false},"0.1.2-snapshot.1553001984.48":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1553001984.48","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553001984.113+8a273ed","rxjs":"^6.4.0"},"gitHead":"8a273edb3c98cdf5bd82cd2e99ea6bedded23cce","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1553001984.48","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-lGaCxhQr20Cle0F//fFsTB7iG7qEltbA3nnzmoYmNimAfzmy0Pq96OCz5DR2NXkbgvty6Q//c1TkTce1Hk76iQ==","shasum":"fcd4f54e4f052ae8c94b50ef58c2306c990c85a9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1553001984.48.tgz","fileCount":197,"unpackedSize":415453,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckO4HCRA9TVsSAnZWagAANQYP/0EzxEzI+IwiFOXonblK\nzRie8gUjo/WaOfVccc3+oKcisJLcX7wSK7kDKUGhmVjoTdN8NkQprSdrwqSi\na1PJuV3nQXjS3mUJ2KlmZYqISGKN6bunFeogfT4kqd2tNBiznsQo1/3gkPYD\n3ETeAtvTiHbu9Z+Zq/l2GT0jUeEcX+FMIXr1LCRvnJR5HJGEghRP4TSNKokT\nGnzoNDTtAuBdmiMdQWVyg1rsFcc4WYEyot4SU44aQTm9+PI4pwm9IT1l7BZc\n76ZRCnEqINdsRJjJdWOTpcBr2gBLOxU3Zyq5/1cmeAkMAE8tR2ngs/ZX1qNj\nqLc7uSeojeE5u96FwTYow/xDuatt0UixgXOnwJ/G4/RoVqXYJ0bNOwjSSXxn\nlQ5tAxAGyt/vPiK2cN1GfIMcZdNDySO9HzuF0v5PfLkZKTGj2VLDaZ37lQFf\nYKJ29Y1wqXA5LgXwBIaVgr0jgDhHNm/Wxv5Tu7w9MkD/H4RjEZnWzLl0lb6j\nVP2zUaoL/6Z5Rzm/T1UIWd3Ggwpt1O/suGBJf6gMYvqtdxJlSi2iyLAR37vh\n52bosVkOMjL6Bk0auYWM2acVssdgkSXAmbZugUWqgF3gwDn0vezm/oO6O7mC\nQEPYq1eawmRjbJtSAuGfJWSy1FLK0bP1VtULdM7MGbYaea5k5Blj9c6nwTAL\n4I7b\r\n=PdaA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCt6aB4+gf7jMqiHX5b4dN6MF2niBREXjV4+FmWbGnA3QIgEP5+vy/WCqzNzBY8pw7+X0HJzS91aggz6KLWbEUXh+I="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1553001984.48_1553001991394_0.3490986352363734"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553063995.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553063995.4","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"d142966acd016e5fcf1e3d3608a68143a0a92de4","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553063995.4","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-NhyyGQn/2P5HP7Pn9pDv5AU2oVuNfB8sAE9Dv2Zj8TakN8Oclx6gbhf1H3//H7NoJcg+jIug25AjeGJXhrPT4Q==","shasum":"f01852a47d8255181ba8711707d465d57fceb492","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553063995.4.tgz","fileCount":230,"unpackedSize":453465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckeA+CRA9TVsSAnZWagAAJIoP/RmQO7fnUOEXIGtMq15E\nlMSJ7j1WxjczoFcefEz2BnzkqCulVWC2DaYyoMGknaeTYfA4jmTUq7I+7bQn\n2oXWveGd8kPpKaZKZ8ugaTOYc/hFt2cT+KWntCOG9nJv565SD7h1c6+k+n/b\n45zIVW/ohjKxeV8TDwrZ7PjwZJQO/qnGquXJrp/DT8R2iE2T/olT2wDUa92T\n1mrEF4gAMSkveCg5J5fucoildbTa7hLNiCSbjKugYeQx/05vDWGdELW01c6x\nhLwLozWZv9OJ7VkfLMmKqKM3h/VSfd5xv/jrfFauqd/NbqzarQ6PXBEuEDYy\nwAd0TZh6/0nvGqBb2klp9QIjUn1D5Bx/FB7/KKhRAIITlvEccT+19VP70Lq7\nippljJw9eCAmoCmSBbJnfa8BRTYGSBfVzOOJskJcSTv8/L7DvbbnSRgSeHo9\nInqWqaJtPDWD7wCJFxZ6X1EJvfiL0QgvYW1rtRFfKfKmOMWR87WxHZoq4qN4\neNYnltIQ8x8yLeXBNwArzkZ5K8EFJFHu4krLDQwZNfXvMEPK+/hipIPva3lh\ne3ljzPIeH8hdDQnVclDLeOhBxBIXxd/jMiLs9lZ1PHn+omN9ODIJXjqyI6pu\nV4iOsmKWoYklJhNsLZOwbyQJNCo11uTgzoImlsHLmdpXWlrM0oLc5LTujw5+\nrF3B\r\n=Ujo5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZcMqI0Z/Di4qfziQAboSto1l838pdtK9S8CqCAsqLcwIgNFY/QzZYWf6G/6CdKlffnyXXxWOmAzJdfw2jugaTk5g="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553063995.4_1553063997442_0.16302546301042709"},"_hasShrinkwrap":false},"0.1.2-snapshot.1553068407.49":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1553068407.49","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553068407.113+1257230","rxjs":"^6.4.0"},"gitHead":"12572300a4c344d47c6efc4fbd086c55b6632c7d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1553068407.49","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-NnXASji7gmEyu8yQ66hQN8nawtKrQ10VH2jdIc8+c/Nyb69A9VYFHoCmCRg/X6gzVs3DX/xsJ0GUamOTp5/B6A==","shasum":"0e487061ffcf1d822a418ffbecd8f8f849befb36","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1553068407.49.tgz","fileCount":197,"unpackedSize":415473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckfF+CRA9TVsSAnZWagAAWNYP/0pCEv0pgV3r3XOlK24g\nImACBv9w+bmzXD5AoMP4nSzw/yaYHJepuM8E0AbHpmA/wS1L3lp8nJEtJI/h\nK8wktL/3EqKi7MWZfpWrCrvWMM1HRheogBqkRyHGeYia1XCJOSPAu+zmfef3\n1k4C0qJ8AuEZj+cvDoCHy28fJaHzxyVMoZDx+fuXQMDGzGmw5HqGVudgeEWy\npvKMy1ZuXRQ9AMugBG26bJ+9SByr5aJ4J/Upg2NOPwvNxLihjjdq0OF0bfyt\nWJm2y+a8pIDpT3woAWtBaxuJ5c46F8l2DTGyhpqprf+VmgDhg8cz+tt0/jv8\naSEYwjaQMxEv81FJ1N3LtlTCE3uxhq6IBfdg+s6FHE/MG5b9DU6KGzTSZUD9\nvTvHg+WyaYYXshEhrfT9vSS6IFoKwI6YECwCEoBfcQwLxFSdRHh53Y/En3pn\nilpZmR50hlCUO/VlzE7P3UywX85PO6r1HeZ5qL4zwiUsI0zzNFfPiF6UpSgI\nmm+30W5xOk2aqXTy2rDmlTX8/4UQS7sAPfMjxUfEL4U9GoozOL2PN0/5iov4\nJGHyNIHDHUyfoGre2PQt12tRSLXFHEqQ8UqnSp7uVJndub9cFRWsFvT1j6Vi\nCMakV6jg186Hllf5U34fLAZDSJ88PQKCX76HpJTocUF5E+xbVKc8WIEZFEad\nJAHn\r\n=FaWu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIClbTkslAu1ZA2FPOiSRwgqqk/LA1HoXtOwyBzCRwqouAiBRcIvQaQlsC6pGqPlipjAVd0xqrZRYNMI9zahPJG4zlA=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1553068407.49_1553068413497_0.1886110331120574"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553068510.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553068510.5","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"deb4b8d1fe0daecce70e832ac82e0bb7e6cbc71c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553068510.5","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-R7Of6vcNMwwu3Gbd+3CI4KMxuLM3p6aAMvenggGppBv083IX7pUoKjeUaPwdDoX9vixzwKavrvGp4u54TRK21Q==","shasum":"d3f49d9a377bdf74a6bcd91441bdc171e420c8ea","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553068510.5.tgz","fileCount":230,"unpackedSize":453477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckfHhCRA9TVsSAnZWagAAMQUP/AnpMs/bGKqdXIhA6r4w\nrmcJPWiuP8S4bwva8ZFRTqUHf4tXAzIIUKjxahuQj1uy3oFYHHTgCDXeGs7l\nbGswsEEAZ0wVjn4WVyVhJTXUS9WM/1e82Zd4ku9wn7SvYnu4J+/XsdlGSTV3\nuT6QGcq/iTaKzBlo1kkku8xwXwMT/84EPaThelllPVQrsHoPBmzxTXBT/w7h\n8Gs5yXLpOtfKk0zNl7E0ie2r1DSnvZlEFbl9zrNyj/lhKy+J8SegAArr9YgU\ndrZLhZEMHzpw0NJYeYxHp3iUp5fLq2QspXF6e4EaaKk5EBOtHegSbZBw8N2R\nRlYrw53ZDOdKjduu/6WZEOTQQItCmFNDpFvLPhSiA4BPWMOLDE5JfvbOd8xO\nxwQYIkTsR3XhavSbOX5elpHxISRXxaVx4lFXzxP1svzcR/0RcCuIpxPGooDD\nr1i4FnY6GIq8Wn2llxBAYU/cYqZcnuBGd7zqjWnsDDeNcTRQTfUcdTis/Lfs\nhNk1LrOm8R5dZC25fmirYeUhP9r2uSk6bhJsmMpPvpQoZ2A8anP2IHSiIZWe\nQohSL3rQiYAR/YvIYXZwsYsic/d2vUktBfOySK7g/dgZPt/RHpuxQ8hV3XM2\n3yLAd4jT5kLWDcUJ5GTYzJNp9W4yi89oaMFXnKe1P0mY5zorp3ar0eKJ3f7r\nARBY\r\n=nHXK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmC2/hGU2l/F78rMtxiv8ahvaphVBne2ZBRt7b6ugfzAIgYuh9rvq4lpxCaUg7+NdQST4vh8PlhS7SjGDxoarGEqg="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553068510.5_1553068512757_0.01810424911549746"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553070921.113":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553070921.113","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553070921.113+63fc912","rxjs":"^6.4.0"},"gitHead":"63fc9125610244612cca065de8fd2478a4972119","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553070921.113","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-DGexb02vEnfUkf7Gw6IC5v1RzxghIf/cBu8YTuV2OLZIj4QkIgVv4Jo7+IMcoQMyZeXm9o5Im0PjUkEMo4MwkA==","shasum":"a614f0b21cf85f6686c326ead637908b318c4d29","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553070921.113.tgz","fileCount":197,"unpackedSize":415455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckftPCRA9TVsSAnZWagAA5RgP/1AyFkoM5Ls80FB7A9fy\n1THKzOrjiYmJhLxLia6tU+jkpzuEcmwtBRLhSUAD46cc449osna7yRoN431M\np9LHjEPQVIiHkBM4YUcbMBkSwzaUqafxgXD02C6UgwPDPfRPP6ZMCew7f/im\ntjGBFjPNDjViF1aROzSFZ8J+W4+rFDj1fuVTTayGlmRkMQTIFMw6t5Afiq9F\n23pWsk/qeQ83Ibpx3wKmDfngJbrmr9ZeKL0ULx4rlxXpSD0t+/LRBWgw5e4J\nas7xzZAOJNuhyVGsBtiL50dhjkPxs5CcIcRtqQsZZcU6nEpHWi4tyLYIMcl+\n4+6B3e5P6nCb2K2VeHY7Yvl8lZilteFTDMiAVnCE/GnjlAmZdmwMHirdQOWT\nXtIuxXGh5tc2Y4FcSXZ7aesyxmtVxq19c8Z9nuGCN1scx5JJSsMl0LBeKJJz\ntcBfzpCLnqNBQ1NXr6NfFI1t+D5GYAlOherKV0aVlAtM6skduR8MenkYPdSY\n/IMkI8o4vTUkecOPzx9LfZw0vvZWtTbd1B7FTs8rmB/bcaNevVm02+fd7Is3\nrvI4HVBMqTpGZHN5tGadNTeGqM2KvsO9/pO7fcCM5Q7wCJxN/QMx3bTf0pHA\nOG2eixqOOt6Q79OxXInqdjr2PdMwB8WF7vyOG+mDXz2OPgcTecgs6Q5fjqhn\n0bfl\r\n=pC58\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWB2drU/nMy/IaP+aCMY3vch18dk2kwJhiwsS0sK7wKAIgXyT1T3G7ZXYhBn4nYzcply60j9tfXCCTuuriuGeDbbY="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553070921.113_1553070927032_0.7610318180494244"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553076451.112":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553076451.112","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553076451.112+917cfe2","rxjs":"^6.4.0"},"gitHead":"917cfe25e52f43c3ab26f34d9d2f0543969ae0a0","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553076451.112","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-yyFGXj7OxQn8Vz4gtw7SOFqv4eTlfvym5OCfkilVnzT+Dcj2kNyZGegWLwd2pd1yqQ/oCaJ1sIxoTr5Dq6dDSQ==","shasum":"f63ad9ba790fa4545d3ed265e78da1af25a0c469","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553076451.112.tgz","fileCount":197,"unpackedSize":415479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckhDrCRA9TVsSAnZWagAAdlIP/0i5xCGSZy05FdXpQJRt\nm0W0G+fkWcxxFRBt/KxIP6v2HvIcDkuN+0+JobwiStVUmvQaTcp18fhB1loI\n/UsG3U1t5nEI4qAM9rSkr5efVUQO1kAcwxTeo1OLSUmqoFd/xoiMZHbo8+1c\nVNGWUCEa59TatEklnYyU5nfB7F5popgmyIMM11eN4czIKzGyH219Rpq/TAat\nSCcOagARPZGwAfIEdcQN0ZqJjhZ5QH95sYCuvlvMV5T7Etze0/2OV1wgNfIT\nJyEO6HOpheyt6M37Htf0R3yZYII6kq/Hc6+3lOxPn+NFJToZPFg5EvWvyD/J\ncF1jsqsRCty6reJoTVXeE5K8+B/ep9ej7qJ2yUkP2ioA+20hp22UDEWlNrCc\n+1ab2u8PfENnel6uraOkFQquZwzO6hvyOPghceTyCkEsApAdgM4jUi7IzIYl\nEN1ZX1gJbdadNXoXwpFnPokLxPLOR5CR0YlNZKFBzF2uUtdU5HXD2J51erY8\nvjsUXhLg8feLmFsQnMlNP4xwSDHBFOwnQ+sX0J6Kh/p9b1pO5iwfqtfpnrpA\n4DwiHh6nVy//ZX09eqqXis7VKl0CG6Y2PGpgwN7ITGQ+VYvoEyQ5P2XNrzmY\n6Jgw3z7WUejhiTQFrvX9pptBYvXJV5QF7FQasl1awsN39me8ms8r9Phb0eWl\nv4GY\r\n=fJhJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/h5JQ3XhHPPwZBqZWmdQyIvDrN57gJBJyOmcXFfdhfQIgMUwmRYT2nFy0jda32WHNBo3Fh8qe57IP87esjp3vHAU="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553076451.112_1553076458706_0.2011610881352377"},"_hasShrinkwrap":false},"0.1.3-alpha.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.2","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"39eb00de33a8257f189ff6c7dc71a665518b3194","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.2","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-5ssOUuY1XeNkc101ah7aFxb9b5YqaiLQCKn+O1NoejHdQGNOuuxH0KmpKHftOpSExsv0GoFmkqm9pXt3LzpUIg==","shasum":"188a1d69fc075cb84e370952ba928f5c06282111","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.2.tgz","fileCount":230,"unpackedSize":453450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckhFZCRA9TVsSAnZWagAAuKIQAIl5z8PPboYnpI7m9mVb\n71j2K7pZLOtxvB/ZAEl0Nhagt2dBUpNLL6fNxN1tg3eLD+uVt18EAKLzlYOA\nTvbAso5A+ypgryMIc+a0DJoynv3CzbbHrJgAGR0mSvXV5+7X+PU9QdkcAN+Z\nR8KCVsKkW8mbINZk4aMGzLZ6n+OyqoEJ3MdvtQIjWDG+NCCQWg+aSIIWiLDm\nZA1BfU/eeGCBLXnuPJrJZuyCk2W0aMy86l99+evHNteULZXCoVlGCDVPkfJJ\n8mjhvCiL0Vl/wwBiKhubvnSzXy6KimkJLtipJY0LJ14hnInc6K9CRj3qEVAS\nNQ0+R23kir6IxGPH6XvqTB9S49hdUUi7mtBrEKC+PRZp3SUkZAXjOVKEf/Uv\n+xq4B0WEy8ImRrSdfsZk6StmPpGunNfU9gvXqrjnbVSELRW05j8STrUQd3hq\nHRHpiQ+msLIvrlZnJ+9L7IDEsjfaFf7cAOezVvGPz0atmL782py75CuTELlC\nAT6WH2ikuqUWMRIuAnECyj1qPu+N7J5rAgrnpwed+8+mVglYzw0xhzxbyht6\nr/mSV0SaA90CetrrQKpU4Q8dbweIMVDzcadxJc29g+1zz4RJ2kPYrvPuk1Tk\nFDuzdthFE9WLq5Cxqp0PS5iLbvp6XlOsnJbO8zKC1gNBNhQ+Kq/WfnKzPloT\nmmOg\r\n=pgTk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD93XIVxwmhOhopi2Xxx0XAf/vzfATkW/qDQdEzXseS2gIgDna99o+3wJc7/owkedHYxOeEmCy4OCy03t0gd4oIhb0="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.2_1553076569498_0.4097476293101421"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553077397.160":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553077397.160","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"clean":"rm -rf node_modules","build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.0","rxjs":"^6.4.0"},"gitHead":"8e42379162462bf55753d5c7e5e1a43f65955985","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553077397.160","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-gUyeXaB5/wZesc95Yqn4+hc/g9N+nBW86ZVa/y2RKXU6ZW68SZ6pykLDeIXtpsEDDW+cn06fK0jYWGY2fDk4JQ==","shasum":"ff3ef3e051fd67f178d3476b3a7e4b30581d1de7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553077397.160.tgz","fileCount":201,"unpackedSize":418555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckhSYCRA9TVsSAnZWagAAA6EP/RyQQW30n7hbYBZl4dMh\nAGDzuinuW0MUhxEtXwzgSIowL2I5cxWp1uFfOT43oBAhXdGdyChzGkQQ2xFk\ngZScC7WcBn54Rh+X6wGos2QWKIWW+RWG0yLsBWRn76ArlnUYL8etRHyPIqiX\n7YnnfNkI+Ca3D619jiPs9n9nTh3n5H/zN1zsk3MKFNmOpjViyu8fDrGV13Gt\n2e5/eL82dEbtVdVuqZKui0P0VFR3BBKwouJc5sOScTfdiy12hINyVo0qO6OK\nVRAq7hswZNLPLLTtqWnWWWoUhRB0CCNiPL3qjvSwj7BQNVqfWIloVb8B9qbS\njzTgILVyegXAogEf3JfykzsWepxxSCYB+Un8MtQkeqSsC2vRsidxelPx0Euh\n4B44qqtZMac/G1BPpJgn9b4GcxB5vb/RYkttWQC0QD04oxrIhZyrtLYN2As+\n4vQ8IlqKJ7RRf7AIDycHDXV3vPYNGgDI8VdSNMEQtVzA4FhLFB3FH6kQOSJ3\nPgUZzhWnBdUX54OgENsfnl15cdissLV7vHQigEkIsjnHI83IJ1HKhTKpD4c1\nsTp8AnzSzJcKVd6AgutHERkSd7K1GTukXO6YfduuEL2yQTQAMDZqbzUUnMA/\nZNuzvTDe3mL+VMbaS1kT/NFVvdbmLha9pgYq+00nAW0voZT1g80SBGABZbAG\ni4p2\r\n=+Y9/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHqsjztx2caDORQomoiYsjIFw75X0VlJD9werTQHCvjYAiEAve4xjt7lQxVUk+MPqvxX+U9rEoYA1mMAJ4AHX0YQCmA="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553077397.160_1553077400308_0.48917314907468357"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553079708.133":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553079708.133","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.0","rxjs":"^6.4.0"},"gitHead":"fb1068bba4960d8cdea7ff01e6208de51d53dc6e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553079708.133","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-JuK5MchPV21h9mPPtaQn6S2gP5z8G5fBxVbeoTvJ5UwCzJO8dobmdW6DOwT7rA/h9v6eQu4lqZ6CEiQVh8UxkA==","shasum":"988daf17768a97b94a2c0d0cdec2319119bcacee","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553079708.133.tgz","fileCount":197,"unpackedSize":424388,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckh2fCRA9TVsSAnZWagAASgkQAJpPIJcL7onofiAVSgDM\nwLBlTCJ7GBy5Yn35SiRh41Rpd5rGCtFWgRlgQLHXXyMorRN4LL6Lg/Xgwu4S\nxVJfWbUdHDCQDHorDhdbW2l7cDU/NSSAHvLmpWBK8JDIxybKKxQabgPdyvJg\niyXOP/yyeEs2dNzgMDdcduxxQmxQMCP/4qWjEFpaqYt9J7Pfp90qBPbmCTpu\n/fF3867Y7Tw1l5CWlPL1VXgW89sqHqWZFf4IbPuYwpmOuqgwDRrCcYvOs91N\n8ZYMw+McopZg5QaEYCwaVN+LxufITPF6UwoiUJq9rULiaOppUAHC6TXIdtz8\nQY6QwO4ihZ0jzt+jxisCsaGoBbcUKsQCFJ5+x+bIddf0FqVMds4m1SDORYbm\n/TuluPJau23xbSyE4WOLruvx6pQnTdPsCFR/6vC59AHPlr7q/+rhTkNRQBt3\nPbBp4tFb6bfMJsEl/RrTKPPalbLZxBLHMIbTL+bnP8iuEKLXtpvohKS+mBM3\nsAAZTwL6xsFqPR6RStEPcptBA/ARYAPDne6oPash1aB/9xjG3h65kAUKrEKg\nIrB9JMPASNIqYFU5RjbE2I/Ul+CXHpVFROf94xtK1cG2DdHk0vSQI5175LQ1\n6afjRyb3BItYeh7RDm1PN842VJv1Br0R+BOi06hPk8+32cdd4pVfQndDii9/\n8Cg+\r\n=wgjv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAy1/8F/tqyjTRvFkxw1UCtVeMuMDeQ2tojFjBXTgcwoAiEA2wz2EpwmYcZcSQ/U4uGXfMXs1wWf8lT1YPxFZwdtNks="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553079708.133_1553079710450_0.72193400670386"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553162954.128":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553162954.128","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553162954.128+0d4cbae","rxjs":"^6.4.0"},"gitHead":"0d4cbae4455ea1863a0e5cf774cf8a66cb71f741","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553162954.128","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-2MsRh3MpWS1/9eI8TIahFpXh2wg51F1fGQpVemMX/menVr9EyQufHsr+7XY0fq3zCHMEZ5K5EPPbpCAx0ArnMQ==","shasum":"daf57371361c70c064b68e4516beeb0004e47bf1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553162954.128.tgz","fileCount":197,"unpackedSize":424415,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJck2LSCRA9TVsSAnZWagAAxosP/0hZby16JXb24FggOGbv\nUwF1uYR7ji2S0eNkxwcu+8y2q/xK8MlUxkJb93hLBKyZDgOBV5M0LboGS6nE\nR5AVQEVsEjS0DHkHgHI9V7nQieBZsBS4AZlmXf0MDQjjSMTfOL8aqbaG2U0W\nfKv3kBRB8YhO2v8lrB1t9XZwbGPGcdVCQjRhu/ZTKNStm9KhTWnhu8lQzgdW\nl66+RWqKRZQCO8AdjM+kgiQp/kbvhwchoQO8IqB4QA9vS57scuRV1b+8cQ9F\n4BCe03ncife73xWeiYShJ7psCkVwF3Tu4bc+dX2axXkEKgfpqz30387SFzkm\nn6RRMFYo8Os6AaygqgakqI8QnuAPVc74kzIb1B4QsPGN25k4VkEHuUSkShAk\nVblKMVVQCi4RBhp1Zs4TX8k0RvjFPVrDxb+XV5c7AYDHv8gd3GhimHPz3Pcp\nCuXb9C5zIQsccc2DHVHU3XGJhbZEa/Jxatichtebzp8UaocGhNf/7QUkCqd9\nDdAvuoz/KwJNQiIwR7Hj9yZMAC3xc4vhpQFCjqJenWbn4Co+mn53mK5sMztl\n4YvPY9Tu1w5VT5uxOxQAGLml26BzKIoTE3crUuutxYJgWm23KJGBEnFNORRu\nHravfU3K/Xalc64IePlyGsEIQR9B7CTWN6AAhbuCSQnztKYFtmozrDYVInYN\nii9x\r\n=8tdw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHEqqZIdqsGbHeFWjhbxhJDPZfeoVTNeEV6lEwE4UHCdAiAYRV5byfTx4eqEEjVFQNP6ajikxV1rnwolI0aCGh+p3w=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553162954.128_1553162962395_0.8336467790140456"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553172558.124":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553172558.124","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553172558.124+2ac4848","rxjs":"^6.4.0"},"gitHead":"2ac4848218c3ad8f2fe85993f8c0da87ed03dfc6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553172558.124","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-7zdKjGKuoIquhXf2p9f8lkrEyMZojR2k/475NI1gu3Qd5JOcMXcr2MxGDF0ePmlMTDmhgWS/xmDyjbHoLMo+DQ==","shasum":"f0e573dd5281080cd9688a597e1836e40a125299","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553172558.124.tgz","fileCount":197,"unpackedSize":424418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJck4hVCRA9TVsSAnZWagAAX54P/iOQNsNeavsHvx0ylQYo\nwW5pr+WP1zQHzCLRIyNc/M3rl4xb+mbo2pla1P0lMxp7FwAogJ4fB9GEf+p5\nxsK0KufXDJlJtUM7EQmUhVm3XLf7odARj48kn0b56xk8Doo0+DSnTvuaqZGG\n+Tc5F/zEdejiSSUm/e72oiTqbO1oHre395z/OZPg7tX5mzckf7dyDXQczgGw\nKAzfgk2NL7eOSokq2YvOTHAXlkwUce3MBIJ8ISb0mclFX0N/sB0u+SUu2HCU\nqymw3SbTbi971IQEJ73r53W+zWjNttXNCV8wSPqgNxzq16elkw7kqCMiQdYy\nClgoCWhHxiZxVjylkW9rXN85MkrU76S4S/qb6HKoX9xaBbrMudzEvfMhOnc7\nAZ78/iSAg1Lrq33QcIqJ/Xy7mmEHLWCPYif7Md69AJJWa+PwlD1ZGV6X4T47\n6mKymAFg9jbc5nNIkdBY+Tz/0wB5GiLiF504dFlhLmmHfyrC14GNCNKCY4m/\nmLClQaPo4jRfoEvyhzAfFtyvkeS+SFKo0DqwFRrGY50l+Cu3utIdCsE72KH3\n9gZxMxj/V8mRiI/jrSVP5EHxjVHYl28zZ34z2H7yuvgvmb8H81UUtzHOibyW\nnnGSBNt7pIoz+NJm8Mjw5/lIShep9vzlNU08CNb9UdUJseFe2oRw2Ct3qV5G\nbIlq\r\n=pfpE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmkFAVf5J+xgOiglZuEv+NHHXFM6jm7pRnVZoW+YFAdQIhAJTrPZOX2xJX98FchQyWBnApCohE/XjO6+oMuyQNmKcE"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553172558.124_1553172564984_0.4216278763163799"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553185548.121":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553185548.121","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553185548.121+ab356f0","rxjs":"^6.4.0"},"gitHead":"ab356f05be62c307714c25aed24d4c748eb0308c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553185548.121","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-fDwCEYwfqEWDX3c9iFWbKlEm9+56A4FOoQN4Fe1Fhoo6vTS/pJsD7U3ZK50vYSG8lZ8vYxyb+Lzwo0gngjHapw==","shasum":"ae27710d750d0e6ffac353ea07a0d280d4ce017d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553185548.121.tgz","fileCount":197,"unpackedSize":424418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJck7sTCRA9TVsSAnZWagAA/xMP/3Z+pTTIEDyhUx4qNYdK\nJoe+uabMHITZbnGT08ma/KZGlBE/EVKtTK3qWCcgiIxIN05ZjKftztr8p2DE\nqcXb+LNrd+xb5Wub4mDY9cpe7NID3zC841gU8lkOsp2nctvXzXYwtebxukZP\nc8l4LtNaHuFei3+sWclZKhXNMHM2qAbHmTFqAgZuW2YfTJIyxyc6zrTUfr5E\n8Q6UP68uqelAh2c0pfg1krOIbBq5CRNel7P2qQYGCewaew9e1nt/8PElNDZQ\nv9Gl7FD6gnevUTxJWNYMzKqE0Uc+8G8WUOWuIK/M3thZuzXZr5IL99W5H85V\ndzyYmshaSBircBt6qyYtfzB2uInrWyLlmGgoiBvZUvzWSpOSm80HccgcY3T1\nD8SOdn2E8zIWALOcxilGU1h+6GDN8+JjyrkqSUAG5AEwmAmIMWfKDQ/Ng6qp\ngafcncg0GH0MxCtaBVZLruuf+F2OS/B1lqQbWeV0dTQQ1FTpEK2viR0B5fDN\ndWcQ6qAw1/8MaY6+2vtc0CAoC2IMLeZAhWOJBpu1Ge+g02w5Ere8tX6cSpru\nQjk8hjYixbNfHr/xu97ihytcMblZiIaGkEJHhs+gUIEq7JZGSz9xhuehDHnD\nBz2GjyXPvE/YL4s5wA5wEv4NerQbN4jhR8TqeTP6PfyAbDiaCBmAbyJAId1b\naWlS\r\n=VGxD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9x57yW09fHYrWd0LIaJdI/MNhL7/Dj7AYT1MlNGPtzAIgMSoeYfw2arELf/AX8GlYpPGW1COj+hs3QBjA1ySTYgY="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553185548.121_1553185555093_0.5820668270564848"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553237961.119":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553237961.119","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553237961.119+31dc53a","rxjs":"^6.4.0"},"gitHead":"31dc53a3a2d997145914c6f0d1401a1909ddac1e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553237961.119","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-u8NdyhCZ+gBvlzyn8HU650WfQ+zl2b4UuPDD2oyNCAT/w3AH3GQkrfYgGqHBxNGjGbZHyBOLdFAKCp5zWIVxdA==","shasum":"fe90b6b8d82e949956f5a76b2dc8e44416d97c83","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553237961.119.tgz","fileCount":197,"unpackedSize":424417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclIfRCRA9TVsSAnZWagAAt/0P/R1m3CunrvQVEeJsyYP1\nUr3RNuZUL2TjiYn4q5swvq238CoIAmeG8WsnebwUEfnNLaZFSXT9dNOctQkL\nAPB7O1kvS45Dv7FBv2WBXCAaaS4PtQm3SIPXelxs3ss2AhZhSOsXq3B3nQ28\nnLKm3zlVlReChjgWV9x8tKLqebOO7iTQR/OvYZXio2TZDa2PgtydA10FJqDj\ncn3AzQ2yWEYFP0jUAXmEGWfj+cME0vhssgn11G3hrDV2tluAtS7LiDYmhep1\n8yucXdacyYt5RjbnGsZUxRH4U4gnONCu9gpM6PaisPNv43d12FYRF/MCuQ9A\nEDTiw0Svw9/mTMDWvfU8JIVXPvDAxJeOJP3KlEQPey9VXIQmmOCj6558NamP\n5nzZTRvxa9nDC26ob+0lcl2w7zq6Cf7EWbjKH+raglTFtVpi5X+DLgmi7Nj5\nRDFfAbIaQmNO+VNpbc66MjYyVjvqBxoadJvjyz07xjDHy5VVOmNnGA+Dc6R0\n+HUv3ahBAzAt6cUeNramCvdluuoY+qdgz1qYqsMRHfRkBvNMNA83oKhNVqwC\nWtCy4O7+ZcLfHcuHlnY12v7k01TGxhK6O20rpg4EJX1EQ7gSmSoeVaSJN3nF\nr2gnjwsC5AgsToXcxFD+kJxt1xsEqKZJVQuaeBOm3a6zQL7z+IR5nzpeu4F7\nnTyV\r\n=gVYL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDocaKzMlljiZWLY+MRkAgkYuPjzECqobj/glF3hHVCNAIhAP5t/dB8LnaQSGQkTp/dV9IXtnBs3YTBl5rJt8BVjOUF"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553237961.119_1553237968541_0.987235702685958"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553241597.118":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553241597.118","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553241597.118+5f8cb20","rxjs":"^6.4.0"},"gitHead":"5f8cb205aa3b583dffab0c18ecd25786529d82ac","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553241597.118","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-Uuf/zNbKgTjg0e/8wzp4/9ExCu0CZSdnXzfMXfcygf+lyM8kwOGH/I1wzOrLpKX4WKrhZ61aejHjAWvjdvd4Aw==","shasum":"73eb9bdd0963ac2bf1b4d657db776c6dde95523f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553241597.118.tgz","fileCount":197,"unpackedSize":424418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclJYECRA9TVsSAnZWagAAIOoP/RjfVqTSsV5c7BrYRrgL\nsR8MqXQk70yDaD9x+ZnLJDljGr7IeBUTnYFQDu2m9eBKkRWPMyrw1QQW/mh7\nasfodlV2zqeFCIzziYW8XNJPl5bJn2v2n/nF8WLYNj0es1wbZNK+og/JBtuo\nTILMyNbaKGSMzPZf3R3TGrDN4Zy2nfqsJQR7xLucvJZGdJaCLsPfS1WiWWxP\n2rB3VOOp0dcmpAYyb9zhokj7OxNmgHB/Mr2OrxK68fI3iHM3Cvx9J1d+ywhS\npMIxpX6/RTUebnWrCUGawm6JhYkcP7PkCFXJXMIaflN1q74ZXIWcCdl5pUZg\nBg/E/cjxE4MklAQNIORN/FZLt+fo1t1sTRVg8qoCkPX+h4sIuXXRkWbgtYSh\n83RfynfAJHc3EE466Wt+d+vcW+oDIEAUKAFLDzcaQf0FlCJ4fg1DOrQgyajr\nAZrGDG73Ss0aFVRa1BD4W4D9QAKJUIpcja6GnAMTvX38Bq8El949Fv1LJGM0\nT69T9J35EIvz6w4ITqkpPa8ChcX72w7PY9t8Yu57xQQwlWyVy0tp08rpdGMh\nFFV3f9gRxQ127hNQ+MPEYyfeU36dSLSCKgg1cLPza8ztHlfR1cgmKgPuWacp\nnytK3OtxQR4Wo97pxUp9p+YVdY6EO/SMPzYxvXf/FDimMBmRb9Yra6SYEp3d\nFHvD\r\n=wHPl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyZhUxDbBSM/UiQz2N9Ujk9c6/g4DmXNmfQ86wUawt5QIhAL9iHJy/SRtj+fzaasmn9QbKOWYUsHGmsVCojvOkIly8"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553241597.118_1553241603455_0.34343537317760386"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553245821.116":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553245821.116","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553245821.116+0de83d9","rxjs":"^6.4.0"},"gitHead":"0de83d957991b9a9aa9da513c12877a675b72c7a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553245821.116","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-D3DGlltpmuc95Sp62JSxK3QnjP+x/fH21Sp+LblhlrYVybWhENDP5P+Ls4RpxK4kS6tyE+Lw58P//1PSyfrkLw==","shasum":"b676d65c9f830c2a0723e3d882c8ed413439588f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553245821.116.tgz","fileCount":99,"unpackedSize":115765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclKaECRA9TVsSAnZWagAAOb0QAIB2aR9FzOX65HRedsjl\na+pgWyAmJ+390Yn0TKFGFqF8ybyN/Ilau/QcCvhAim5ameJ0Sw6XAEMqI4gm\nCS+VEftYXH08lk4N8ULx81dVCcxjEWUbHNj4PTQnyG9tajrt23gdtQqo5jq0\nNyTc07+rJfGvXBuOrRfAhTR6hkJ5X1bKrOWSWKP3aTRMguILa934bk+DqgXE\nYy/P4Pthu2H7s1GLfBsPx013nXwL63l6ll/A3MdLyCpU4hpl0hAL4isM0OIN\nrArXVx+PhIqwpj8W07HnfV6dfVL9iFR5woxDcH6LD7EFWVP4Z1eVmp5pEvgj\nn1Tczq359igL9zVVylKN5LSo4pzakuxWUKMdxIDyglwtetE2Rg1Kb309yaDe\n7UXUSlok+Hj775c620vJ6IkJaZEi+RwPBbKLXNvZW/o0/FqVPfERz6duHu+m\nYCv+7xLdX/pnf3vyrlBVmjfhdLYuky3BHIsQ9HcGTHOHopSy8leFH7Qp7j6r\n+Q+BrYwU/ZehOtl2faOWJTnxqS6AOYzP7F0IaC1qkXI1+ipAqMg0YIS3QGGh\n5P9OrBLF0oV7u85lXRuGBWK8rKkuWjy/7GK6ey0c3ztbeSeHcL3Nj+ee7ss4\nh3Q1qgTL59lwuTNaUSTFHNWGiqck6i+JqfX4P7Ohd5QZJxpZHXZbxRhkQS8Q\nSf1w\r\n=rfR7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEMYzsmpK3Qhr6+dePbG+Mm82VqNV+mCXILMK2TZcJ3bAiEAze2B+Ow4qe9AgtKO/E5fQFzzz/tc6sGzmwZpmApiXoI="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553245821.116_1553245828271_0.8527439530776284"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553414679.115":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553414679.115","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553414679.115+2c41ef3","rxjs":"^6.4.0"},"gitHead":"2c41ef3ed62e2971aa6d36f50b9cb7db92d8e6ed","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553414679.115","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-C1epboGYaVAmb76UD0ZwnMKA0ONxKDdIR/jNjMRTCMHapr+9Ro2f0Q0I8AjRio9EPUDV+t21/8MhUe3YF4qbZA==","shasum":"b4ee2b3336174200c8018a77f37b59322f2b7a54","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553414679.115.tgz","fileCount":197,"unpackedSize":424936,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclzodCRA9TVsSAnZWagAAVd4P/RzcJilooQCfzHjAtXwx\n5xzc+JqyLe63xVSlmGvfTqi+XWQXAQ8W8y0kI80A2s/14nMMmwgLKOesDYhi\naDMzE4wA8CfBhp/8aPeWto/PpTNMRHilnWWieZ6lsr2UFjX/VKTviHsPsOui\nXRSFee1eQsUtJgq2b+82zixrspvQTU6MrumqjFPkF4yoAsbytJLLXvpVrblt\nc0qqdzk5HkBS3Pi6Zv2PJUGkf8CIcyQihYhnOLiraHfIsuS3Z9cAoNK5edcj\ni+u8GPp6a2ZE4lnhp4mw2e1lfmzkZvN17Gi0jo3mEdYZVF06MABZRzjAglp2\ne5SqhdI5BpoKNwhkYKXfL+oAK61MlnOOJVXS6v+J14BAQCHIx7X+yFOnYGBf\n4EjKJX/lpiYzadBvRG9bx8AanH1ywa0cCzH47+JIUYDEN4axsfedBRsHkAkA\nJiWjur53nX57hAN2WoKPHm4lb0wLIMqn7ncrjE0uyh0b8+KitVJNDVyz0ryA\nxBgzC0k9q6SkoMn2COkZ/yCfwiDz2i2eE2H+VJuNXCOYQ0R+bsqRF2dKm54c\nzTFg8c2zDMewp4Wuk1iO4Sh6g1CJveYFXfwdk7kTXzE89t38C5dI2z7MMiEI\nzjLIzvKMLmosGbdYSiDrQrVyaIZaA4JHWZ8DaEZ4rrwFoBqMSrc4vGANHc3z\nZDtx\r\n=GBRB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBJc1680SlzRowQ0TZmy04jmnFSHtHyrpUTcFepjCnTEAiEAv6uvLgO5yLFMJfI2PvrHHlAew8rE4kx3vdbM5v0YNBo="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553414679.115_1553414685122_0.36653600039283707"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553427406.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553427406.0","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"a9ee142459c2e685d402e4edfa901fb37ba8eda4","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553427406.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-RTVAa82mG01QLHwodg0cXIdnnDFPWhFpjO5eQWo1VXI73I3+TMMb1oFLBCKDDhkxo6hsozBXS0uGgMKl7DWH1A==","shasum":"82112c5250ee6db840d12a395d8a1627ed3b2159","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553427406.0.tgz","fileCount":234,"unpackedSize":460837,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcl2vSCRA9TVsSAnZWagAAGecQAINnVfWiwSG/H7wZzlzL\ngxA9vj1Nz1VKgywygRIBzrgqMekb1zQutxqlk557xMRAVhef80VbfezpRryK\npdIvCcvzSoZSrY/SOsmXSDy5j0jgpZQ8idjBUH3mT/a/hw/o7XuiHW3sC9mA\nTjbjWh4JRXKbzJH9tNaHKPtvd12TzNjiY2Fx1PxPuCjznDPPxdRRxz0SQN/v\nnlSSyoy9u/Gdnz7cajP6uu2O7U40r1n76twpwkbepryhxwn/jLSiPQukmRwA\nyaZgOBoYgU/VSPESZL2Th5UHXoG3ynwXGJMqPv3FDjy5derlEQuRQrk4XLyD\nP0oqRk1u9z5BhllPcbjhiS2kmmwIjwpvjoXL4DasRJgikwX/pqFCGG8AG56R\nzRXyi1H9FkIvn3TJ6uIWvn8CDWhyexHdr8gM2xlUXibmRViAApNjZvVX7a7W\nxTesMsnbMpf0J26kGrnstlbL4GPm69kUrmghv8LsayrVtLVUcdccgr45wx3m\na2OmkITHruNXrqgpbvKMdnFmVWzNIIQHI6VS0MlUgN/yoXLNpELyg3C64GOa\npmB6BvB6wD1Mmu3CLHDVNWmExiID/Fu+xMTG2FXrtS5O0Bo2EfI73XcwYned\nYCDV5GpduUYpjMYwkpqqIBMG5r0CHMQD9Jtd2Kuvs49TlXnyNnk0NJifrQq/\n/NYI\r\n=2Wd3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBFh0cwtradu/5z+ugk5aIizUM0mrX30+TcAPwsdpClFAiAhUh07gunwoQJIrBwx7t/00ZHEc6Tu2Pq8hzVNe07TNw=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553427406.0_1553427409528_0.05266088919052869"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553494874.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553494874.1","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"8aad049d549da14d176b8c8167701390ba747f23","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553494874.1","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-CpkpnHh/zitjRwM/GhnKJXIAKtsDyxxqytDZ6RFXtEYn1my1ymFtCwdstx+U5Am3T7suglYDASnytW6epIHjKA==","shasum":"4723396fb012db5430fb17bfaf89162b090eec5e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553494874.1.tgz","fileCount":234,"unpackedSize":460845,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmHNdCRA9TVsSAnZWagAArdwQAICBLN+2DQ4lNxguIDhf\nejm29PJhsKCjeHPKg79ospP7n3oAwM7Kk6p9TZhPuGVtTYWkpB8L0rmmmSgf\n08igAvRU0a4OTpFYaKdTNzaQZDDLXRWt9RzWsnVDY6KcuDmzug5+IGRoG3r+\nRzPYXX0LQUDM8r0F908HuU7bIaw8RHIKN1BIb9yArLVD8okWw2ftBZASA3i+\nJKW9RwILYbBbUp7ya+pRpNiFZpccIKhpxchJrMJ17P8BzGpv+TfddwSvK2iR\npPZRn8sGwU/Lli85edndKvxdm/ce0qHmio3UjHGqaEgYCq2W7PIUwzIS0mIK\n0LwU/aKPGnsxlKCp3mWeixnvypVVXl+4atNAi0LmfuhK7tHyRGFbGXoJCr0H\npaytfbbb7t6g9dV89m3vChdGLJ0Hru/1DKGpb9qS2KsdAJmxkwi+A1jeU5Zj\nNxw1k0que82w8bZ1zROdN30RuULcHUQBuQDDBuVawy61xZr6LyAEDJSilK7p\nzOldJJeXwU2yUMC6I1BEzLLPCvDx2RBFvYoY/Imr74qow7aCTseQIkZ2tl72\nVB3Tij59wIy7Tr2pLbKsp32Q5TasI4YQ8vZjxb1bkVstb01jwYJN2XayYV3Q\nNpiUVp30ulSdVKpZ7GqtLFjm4xeS2x3781FRbP1uQ6TeqDYhLa1JNYK9gp8K\nFVE5\r\n=M/bn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB8kThsbpz10Zl/ifS/ZnMrs9qbAkyyZcca/8kq4AOvvAiEAo8WF3Z6V9N0I5HnhXYSOMyZBFVZadN+WBVhfgV8yuBM="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553494874.1_1553494876820_0.5093188527591093"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553503014.121":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553503014.121","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553503014.121+42a45f6","rxjs":"^6.4.0"},"gitHead":"42a45f6f5eafe91cb0e3ba527871283c993cbba7","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553503014.121","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-PhLqFrQVEx8g1sNLSipJ4RsTnUeLPB/ntlFYzNSBsnk486sCFrjTLrF8DQ9dTZpmXlBMMbiDe9GIN2R4fY/0UA==","shasum":"5324dacb552289d980bc6c89fb1ce96f613e068a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553503014.121.tgz","fileCount":197,"unpackedSize":425777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmJMwCRA9TVsSAnZWagAAQ7cQAJcsK1KcS/61lt16yNMo\nzmPNdlOmVpUUUgqYA3mBuqNgoA6Xa31EaFNcjrrhkqzByWfxOjGhoMJKDJLn\nk0IvSwcaKXpefdq56EhzSln6ScaoYzp3DQH3JqL8HlFIfT1USCMJjhPXh5L7\n+DorwjrgNKI3KLAwOlgEyusOqTgwbt2B2y0OYOGd6vEeZGSnFoD0RKQdbwLJ\nRR/f/RuEve6kwxraWJfGfUsW/AcgFtXjCDHjhdCuDQDbhO+jgvW6kYWVf47o\nWTkDZZSnyNxVkOOXfoZXUpTcj2e0BELmzvuancSwecMPzzEqjFaPkPD+e03z\nZVaxHqNziToe+DJjS5QMK901lJqRaogBUModj55A79vKA4PSZiqxQHJ9UArD\neBVX4xdV+eK1fNyJW7EbVU8I5GrzlDxB+pqf0xI3TX2ustmp/588bxaqYczu\nFDpETucW+C5aQ6P2IXfXnOuhhRlpPc6tm3mRPsdei55rm6mioTVPmff7af0n\naL49EPNG8EUe6oUS9oChi06dvDTak6fGgO4RPP4e5DZ3UStfmvCXXgvlLsU5\nk1ZXhUQXb7PrYniA2RsexVmvNa6NuIT70a9UM4oh+X3qwCzvhcILbroIz4YB\n009dGGJGHygPusnU1fu0JaOhAQ1ee6Bx36RDQrdADD040AsPbE+zhDG1fHwB\nX43P\r\n=Q+Km\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCG5WzaiuOzLfY/jVUsf1pR1chNflW8rUgySds2iDACMAIhAJn/5/U4zr2rK0I1Kw3FzPTlolX8hZlZbAcAjVzJkD8y"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553503014.121_1553503023848_0.01562480862046356"},"_hasShrinkwrap":false},"0.1.2-snapshot.1553503060.60":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1553503060.60","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553503060.148+67c4f87","rxjs":"^6.4.0"},"gitHead":"67c4f8712bb2c0eeb8d95ebf524bbb6cc6b68d24","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1553503060.60","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-j7gxiQqkGmvAtw4Rivq80OUeXYhtWknmS17yaE8kJaO1s5SSduOnRLbt1nmda86icHoIOBYXM5MFIsTgHH7YXg==","shasum":"66eaa32f687a393efbcf06e8c2b08f9f7a514f14","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1553503060.60.tgz","fileCount":197,"unpackedSize":425776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmJNbCRA9TVsSAnZWagAAGLgP/jk1VSohoOTWFa9SVhta\nb4ye42UQH1N7RhsKyDsow3jsQyto1kobRJv+dOb9crE5YMro3R1uyXtow7g2\niUhh/0tiDGZgtKKXzgt9psVynpsMgoUB5pIk7p+JIFJ517B6ET0XiheN5Mb0\nKwiDL5j33En0XSe8d7QVSErwBBmAZIB8BRLGVsU+tU1fMRLH0rVM1ZAOP18p\nkn0f8lKCzvBBbgGhsLClC3574hWxn+5dBKcAriqIsillJmsOIsl7bjP1Ntyh\nArQq4j7Pw3XZIAWVuGb4PgVhWltvVpleFmORtM9CgaUounc2wd21p/c/wu4N\nsos2odNKcRd7FgTTS7WZUszK4XvBAWv7szUqg3M+76DNdchPatVYeS+D1FqK\nECEAGt3e1k4aIA78AcOyONG2uF/YOoSvobLIr9AGXsZriWrAvpPtL1m53+/h\nk8Y7QsmLEKQTVNTzywZIs7DMTClhVh4WHW7XuNZNSNeLKBhTQU7up3Tb0Fe+\nkLDA18rLuIsIeiCRp7foyjdau/88qw/XQ+Rel7CPO1lul+4bAo1bvejgkTOt\n7qbic9FjwJYSYtVK65zVjDLfYPifVKdU362Fu0DHjRQ56chCOuf40FoANXvh\nkmAJx8Dncdd0T2O5y8X2rJf1AQyt2s7D6g17yIr3ZOW8++8GqAZcZXHqMW1+\nYJb5\r\n=46wk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEzHUNDC1VlCDoJWpZo+eSK6U6aM+6m/s/vqib+cEpHbAiEAtrK79tZ0usa40KyrSp/RLlscvxTz/l1d8Qv88D5c1hA="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1553503060.60_1553503067096_0.5888431998365298"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553507011.114":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553507011.114","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553507011.114+94f9e0c","rxjs":"^6.4.0"},"gitHead":"94f9e0cc84316ff6a10e39e3685a560733b6163b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553507011.114","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-eiEzE6z9WkG7WMiYkiAjd8jiJx3yM1iM2XkoCMwShCN3q7wWOYuJP1B9ty765+1FqAExGf+X3AHf0/nzF+1vQA==","shasum":"4ca981ddf794d1d078db7dbe4695fb68aade84af","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553507011.114.tgz","fileCount":197,"unpackedSize":424726,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmKLNCRA9TVsSAnZWagAA9iEP/jlZpcmxmfGeiiLONoIx\nQRnBEMJK1z9TQUrCerYl47YMAVFFYVmrcX9NSOdlcg+N/nbzOnDDX0Bx1oSK\nHgxrLQBKBHwnPhoZ/2r61LilixC8ZKKdKLaIEt6pwV0+/pz69alKu2EaSoWw\nd9yDVMOszmS3MB45dxqgSDabyAPr7rhfR/8LFvTlKTWZkGDBYrnsERaYgvuL\nTJ8TWFL7T4vHsN+IjVtlfv00PAcLfZ9s7PhFlvRM8RyuzmBoohsUNoCE7Fej\nLeTdBAa7+yXm9lBvhz31cclte+IT1X4snFa0PRbXRFk5EdqE7NrVvAnDs0v4\nL5i8ovE4QP5mhTMk107AXurVNZ+yNYiwJwGm7ljIqcSciUUOluE44+tk5FNA\ngWVea7bApMqlTFBOe+Zsf6HpAgld1QMxXzMqF+LDj4oygx1OFBu5jiAWq89F\nmpzZpxufxiD+9Ejw0P5MTFs4FI7+T/cVoVnZvwvstYEcu5Lure3buOIzxpeb\ndP8nOCAOrKT1CRC1VfJJKLR7eF08d33qeDgLxHvmyR0YqW00h+MdatP1ehEc\n1LeJW8XmW8U/d/eK3lwKDSq//iwX5y3kXqRRoAV+t6Q+wjjJKOp5vp1x7YxY\n+XNSL/YO72fxyeNrIM3yxgyNcPPJ5rvlC0AvTyYBiZWLdlKGb+2ILXU+J46V\n9TgJ\r\n=Cb86\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxVzB4B2QwDL9wQGNmiEgRJ7jYpjJvVCZmaiGZqqFXBQIhAOw/qHWJrCBCZm8hsVjjkJIKJYYEqLS/Iq21+p6gu6Ba"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553507011.114_1553507020584_0.4493729430556641"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553507684.113":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553507684.113","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553507684.113+0af5ffa","rxjs":"^6.4.0"},"gitHead":"0af5ffa5b74f0717f0d0f0ee63560e4a2eea2cc5","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553507684.113","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-1Mfbg56FYS9L+F+/3mUlnotw7kcl9DFUnxlRbJICLF9j0nyAhTF3zBj6P9MzFtZLIKmjliYuUwKwzSv6BMyFqw==","shasum":"d16c79cfb3e376a88f5a24fd80ca1c7860e4772f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553507684.113.tgz","fileCount":197,"unpackedSize":424726,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmKVrCRA9TVsSAnZWagAArL4P/3tHpuXa0PkHPQ95RKb7\nTSyqpZhidxNUHLNiY+v807IlCEAySDSphu1TZ7B/W0dEwbGaiLjjtzoRpiwM\n7N/dTDREuvf3blM+ikroJQJNceHI/B5zKBMCKWiPJ/CKOSU5QTChXBo2LVTM\nB/kOD4W2c4+dxIvtaKATYx6hqvhzPcFAAh2458ryguSxVl6Jwj0BKfXZGO7j\nxu0gbDfmwEnUnNZlgXB7Y3oILNhga9kP6c5EYU1/FWZ3XNXNRkjvk6wWnI0S\nq3W+qS4F23+yTkiPf/575N4oetIwKOrCyPiGE7/49PI6YKveH1dpX1kZWMcu\na6VP8Gh1xFRGjR4ntEnZdbl1Nyp9h0WScCVXbBuacLI7eUhKd3np6/8j/RzD\ntyHWiJPJet/v4eSx0vQ0qnvknULYYzEG8mAqSzgyQwn+kK94vp2YG/L4yt+s\n1kS3CrCQCy73Z4mACGwMX1mFxvOrccc+2616aRVaKm1Xrr75PdrY43EOFcQ+\nc5Qh5Px1lOvlX+YDfRRQrXxFIlR3fxd3zxt8C3Wb4/IXVnrRftjKr6q6uoD/\nh7d/8v2eToaLVgLdeZ5Q4hhnkbjHMKjpZoxw0n/Gix5X2C/bKC8O4aWRHqwI\n/RRWTVTuKP2HlEZVTfEieL8xBu16/9O91SV78rfUsOiWg/LTXWMr3vxlmU5E\nouh5\r\n=E+9U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICn81AKow6iPWJc3RgVThDjQ2zzC5cmJ2HZ8ffLip6tnAiEA2i3BtZN3WFw03RtHuPdfmi1xGVcBMM1wOdqpKUJTy6c="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553507684.113_1553507690693_0.6891359138272766"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553517557.112":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553517557.112","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553517557.112+d45a290","rxjs":"^6.4.0"},"gitHead":"d45a2903bff761f67e7f2ff6b9e33a8eac8a4c96","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553517557.112","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-cLSu8otTV1tEd1D6itNF75+LvQrziI7LsKb5lgaOify7uuT1x5q1bevv23GhmDD/ugfnkJcRyhIoRfvXOAcjyQ==","shasum":"e57b23b8642c8d6b674d1f74fa2137fa65efd7fa","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553517557.112.tgz","fileCount":197,"unpackedSize":424749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmMv8CRA9TVsSAnZWagAAg/gP/2VSJ9Ocv4UXezwLLhs/\nQv7sYhFQtSEXS4ormCURlWLYDM0N1m86lR60C9gUYoSYONc5nRKFMnKhCAL7\nQV7Z8qNprE6YrlvthGhTzkW+OJvhGtow9BFtRyK6ZsAC/DT2N5NBCqIuLWri\nPktq/QcTZx6aAYb3UxaKQJ9vfAu+TYHYm4ZQNXBY8+0wfr9+COdrGhN2WTxs\n1zzdGitkRXob5v3O2G2/kSnhUilczn3Ikfu1zvWM89B4SUedaEKCzr+eCpGb\nVfvp4ULGK9Dup833ZWWxE0CYAXOEkbj6LUcf2LUP+OVYYwrCThj1cpVQtbRt\nkdPZAUsla3TIuGgWt3I2AafofYFLJstDZ2ewn4FisuLq3itKTRKvDQ9QR/AM\nVPQcReijxS34UHhCG+n+djNjax47SO93LKLDppLWRwLuY9IryPSCsg2dWBo4\n+LApEUZwtRJVKEzYM6XBT7t7AMm8jUCvEXKy21FSueQB1SF2F4YjwF0WEIua\n4fxiZfEMz7qLvkQ5AZNQTKbIbp0fDh3SVjw/Ir1nh+0lKGGJGsrfljeFJQlH\naRQOlX9gHQrXlVUEp8kGRufH4hsHVkEgis3Ifh9hznA3JD36eSF7yFS2TKHr\nXua7GSj7hySRhNTUEJjXwQu+sn2tN5UKongPAbq3YTnLdRdpWG6JNuC7kRHf\nUlhN\r\n=fPHj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbmUcT+oYr6jc+fVWsPIwV4+S174jwCPyO0QVzVykYbwIhANo9PVu1fonNIS2sKcQ/GUbvVIg1v2WdyrFwVVMpoaV1"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553517557.112_1553517563867_0.74809098927818"},"_hasShrinkwrap":false},"0.1.2-snapshot.1553518073.63":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1553518073.63","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553518073.152+cf66bf1","rxjs":"^6.4.0"},"gitHead":"cf66bf10423b331f32529c695807a4cda2f3dd8a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1553518073.63","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-73JTgK6GaPf2um59LRayxLERpSMhzJ41h8S2oI/CJZDgjRJXbx7kIUvMOCqIfkI3fAHhEz3yKux4W7xK5TVxgA==","shasum":"774dfef417595d8af6591128a87f76000482b323","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1553518073.63.tgz","fileCount":197,"unpackedSize":425578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmM3/CRA9TVsSAnZWagAAbK4P/0SetljbuoXXKExVHDbQ\nVIncd+YM0h7u5MiBj8oqS2UDylI5aGl1/InvOu984ZwIx9sN54xHH7cCf65a\nAUz7C3JbO6tFjGMKYVuXNOW3FyGGuDlfo7pk/A2xNSZyaebcZ1iyjmGVt8qO\nJSFhC3ZKdQsJZZqxXTdSHYH8dKXF9Yg+JMYwRs4R/up0MiSJjMwmxMoKNrgN\nFt3m5s/EATcFa/v9YRpzqAGmLJYo8C/COA8iMel+DJ/k+7P7vjR7qlO0ivny\not19ZFPYIlkkH3g6vvZQQCCxxIfdxQQffE3wz+UEyyGEdeD603hM3mMHr8Nk\naEAmH5PWnOX0Swn76uE8x3uuhdREpLyIq35mHUgHgcFl+XayHUOGwOPVllSF\nREcPrE4IOkznbTlmpKzN475wzxPZcASGE+euU1IKEvMCqogpb9AHOWRsNBr1\nz7z1q3UFvX/wv+0+cn9dbAPBkyFTrvdVG/aTU+skZZ+rFPxNCr9IOvo/LTRu\naiYlF6wiQe6NSARDGy4miQDV+nvBGzVbPs6l/HPVT0nToVdnvCsCsicMbcz+\nC4/WO+aiEnbefhpzL0kuKw8YUdSPvabFg9Ln4Gx9D2ToAr5kcjuXsw9Vd36n\naCTMIAJHy4kPp2YbUiVG2aPKMK9JlbFzURnzAoypWGdNe1Q0YVaUS5bvZ0gp\nmIXH\r\n=Vz3+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHt3JFkI5WfwY3Yor1e3SeEjp70I/N0AHfvRbpOgRWW6AiEAjY6D2NyNzvdkaLAyWg0lS54T895//+ZLa0zS8WwClPw="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1553518073.63_1553518078744_0.6286318779012228"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553518077.123":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553518077.123","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553518077.123+618636d","rxjs":"^6.4.0"},"gitHead":"618636d0375cf57f7f52aa8a5be4b6dff2917467","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553518077.123","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-Iree0ncD8tYQVo7sMz2FwwiR3ZQuytUM91hXCyarsNHJs2H3lN1xn3RwJHkzpQXMrWjV0oK2zw57AOuALnaONw==","shasum":"5c2eb6810d87dcb49a8d8797060b5743eedc54ec","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553518077.123.tgz","fileCount":197,"unpackedSize":425585,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmM4ECRA9TVsSAnZWagAAJmIP/RyO4VV2RRGFR4uGhGR5\nvUXKsvTxNzFmDyLy1UP1EcZPv0KO7jzVRKzaPGHkdtnEgQ95L/hwa+nr454E\nK2XfTtWreqC08sjTajGo6w3nD0h5vp4pn7YBkl1Ja937Fpa7DBlScQricpGv\nObDdYWVP92wfR+kpGHO8Xqza/fdPMz0OPqVvE1AnFGGp3ZdxbBSIsMHFS16x\nRdbOJFshYritWtyaau/gF7iggry19IugJTSaF5M3ZiWfp9xaSc2pTjKpcP5R\nQnn8DHYHFOgMhdnm3cUlaMyS3O7kOeVtMV9Rs5eN6Y6BUOYjy0+spuKQqkbx\nWFQOAPrKoufZLuGqzu4426YxE68oKwTETNwSOkiQnaIEMPg5oqyGbWIg6+Ao\nJZgBKlByYlNACmh7BYNt8aSqbzt4K8ZlTerQybsCu8TYWoAav6dBkVUB5Vyg\nl+B5SHtyd6MTssY9LtGqOaiEUmobt3jiuu+6ZyFtocFe8SFv91IeAT89Wbze\nGRNBVuijc3NPCdaYgakZQUEzKvW/c5bT66dIzzwyaYTysFMJhnE1FSjM0P6Y\nscS7sHD4UJU3k0/9gDbZaioyZRKCJtMLEUg/Gpp2s6Vu48OSHPfoqH2YK+MM\nLIapjz/VaMkHu5TDTZVykzivA59xGeWS9wcC1pj/j4kPEhwK01yCWHZuQDGa\nKxx/\r\n=0Juw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiiI2W2Dr+vUzTXDOIZ2zgMYiZtQqLU6rr/LlKD5QvDAIgI6TYESxgIaokcFvgDc17cKpv+zUy3uFhVFvO7t2g1E4="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553518077.123_1553518083955_0.7778651455614936"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553520073.121":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553520073.121","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.0","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"a6d9fdbc2742ae62c844627766430a8dbc8e041f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553520073.121","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-NUZ5BSlFhuJxdaHZyhldRIbTSN6PLc3LBcoxylmhAKPKiOxcuSC+2rYehpB5pmC5CENNrDa33toIvjVmajUhiw==","shasum":"ec3c62f0091f253ba9649f2275a7c5332609fd21","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553520073.121.tgz","fileCount":197,"unpackedSize":426668,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmNXMCRA9TVsSAnZWagAAQssP/1IjtrBiscgzScL1EZhb\nFolgwKFpGRo1r4TSte3QT9Pwub2aMWdy4QEyUGkFg/nDVs7KgzXUG6Z6zqVw\nrxMRLnfVhSFlOvhUP5Vt5rXUbVuLGvcXf4MUDCa72Xht8QSuLkniDSCjVHHl\nZxR8M2sYXCWfEze9fP+DaIxfpPJGXrfoIHA1fHT+xUWXOu3NaqV3x4HLEm5p\nGEa1o3oWVYc4RODnZ6o2JqQzPpPXtjmbKh52R0AGJDUY8to8Stx0D2EFRjjk\n3roDEdXLPG3I1TEAAgBzSc+E4ryJ/Le2AAUOAI+qSXMAHDroJdjqxJuFio2X\nPoijuMSWe4ci1RqLEKdxsnQQJW0kvkEF6BO8kb9sF24jmje52g4x/c9foOOj\nNVuLdaUj2UEtxDMHtTGPsxg8IX1rYLmpNsURRkMUxh3uBkoNBurmxsZOC4xX\naUlr2gC5I9gJfY/S4oWIDlaVkSXWLxrdhqWUUfQqvwIcW3fbVYhwvLapXbea\nexD9Q96RoNZf0mcgz4dgU1aSPVDEbUydWFJ9+drIC8pUD0oQftO0U9HaMRAE\nCijv8WDV6/x8Yk+RQ62ElJo998sS+3XUiLctp2p6fOiEaMSgVOL8LE/8J7Hq\nRhgVm8ZoGoX+HomHnU5mfDItKQG7c2/HjZloO9wDezc06RzSUsJu+Hz8elWP\nX81g\r\n=0Wjo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvYsNH+f2DZGup8GmryOFfeIRI+S/8qjvlicegs3kOTwIhAJFAO33e2q8eyD/QmDi3fyjRep6LbzKTu0vbHOabLMB9"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553520073.121_1553520076022_0.5347318687458595"},"_hasShrinkwrap":false},"0.1.2-snapshot.1553520080.63":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1553520080.63","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553520080.153+d867db0","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"d867db03f52d5bcf7830b27754ba9f9d6abe8794","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1553520080.63","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-yAK61JfFKdsJQ4IF8AgzCMlh7IZ0rhEhlXVjbRIXWbFOkH/eA6AKQxbsji/fQa5pOR172sYDWn7xYXprq9zAJQ==","shasum":"cb5019276f5cd79a0aea3a6eb1bdeb50b87ce136","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1553520080.63.tgz","fileCount":197,"unpackedSize":426706,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmNXXCRA9TVsSAnZWagAAaZoP/3Yc1XGOEOW0v6kVnIyo\nlORceUYHdU4A3nNqGlUrYc49rvO9/1EDQV58c1nVpf4Pi/LU2CXmIavG/lz8\nTVYZH0iMRPVHVNigen9qMEbQkehif06aXmIY2NuWeLwuwDau5A2gtoxkPLvB\nmRRFxoSfisd6majvUHA6kskS8eSIyEZrE89EWfc0eT3o1meWN7uVbzzXZ+Rb\nkTAWCbVR/vMYhfT4s+xPk6jIjVIyTjTSU7X8G6fSMPETL81v/jLnsJJS+Yj9\ngaqvcBJNV0uCtg3If5djrpHNHNKCr+a8VIAiXvRuez0VZYyCADhWOzDfVRpm\nkzcq0ecI4x87MXFW2S4zdcG8wx0yVgy+w3/aQCISK9751XvCwNreRHdfyqAr\n8iv/7seIPRIkmx40gYM5Y4XviX9FBpOFyhtGQ08TdGG1YK7Cts4C1yiul6ls\nz35hhBDoPH0Iwqmm4+lFgibeU4fDr4okq9NlNREi+7q91ZKO4q6YATohkEcg\nI3QIvfwsfIKE1AqLqzZBAiXAiptHX4jeg0aYEeBtiX5Yft+CS6e39c97Qdvn\nnL7jHNZRBMJGKwmqWAl3wfi/T5PzPhyfmVHe7lg91nQkrNygrUgosYHm+9EK\nlQFAScFWXCv4qrVtwv0CerPbj0fDIXjDC9MfFGAhr2pAvBEAsP1ZKxF92dHX\n5Pkp\r\n=41Vj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLYh6cyG7VykMt/Oe/yBGb4aD1VI8cnV2bSiKpg1wCUgIgXl/40jDQWTlU6TdOABdy2nTJZ7ZZAuAX1IZdRv0xFjs="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1553520080.63_1553520086773_0.2866139918290269"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553525924.120":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553525924.120","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.0","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"4f5dd3fb80e0577bd1d03d4e8d3d65b2adfd92f8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553525924.120","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-E/IHBT9JAfaGMwaEUAFTUjALNu2YiPpNzzS4kVw6frJcjQtE6VGuMNEK7/QKQg1aF6UC63oH/v8YkvypCnGYmw==","shasum":"e5fc99e4318b4f298ac0dce7601fad2e4d80b83d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553525924.120.tgz","fileCount":197,"unpackedSize":426674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmOynCRA9TVsSAnZWagAAV2UQAI2tjNpglPvjibl1bXkq\nlIoD9BZrdX1dD+BwW5T4EQkeEmGLqALYf/tixIZ5MA89LVxillgTn4S8a+/p\nc+/8B7gfF2tGyfBZvU21eU+1mz9B6KeDXACFBW0zXhQvLXH4QvGk8OCQF8MJ\nwoVGUTAp/tFHjz0SKhcOV+XIJPLPiAQqwVcxYxBQ/BMjtx36A+5kZBAXg6bi\nP5E1T+UHD+3GSzSTlbaks4/OEBDFHBclJedRELpouw29YCrAH7v5C7/wy//N\nT+qaxFHAJuUPcekKx6w5+nLU7ksjiXlXn2HaGM4fvTw2a8iKE9Tx+o6P8Is8\nnZ0hOf6QSRNjJk0TzxEniklLJ60vJhMbnaHEiFCrGiIfayF2pEdHh1+uPBRT\n+Ym1JeEPxSFCS2BP6f/9Ov6T0o5v7ROAhHMKq4IlI2pAC8pLgjVExF30UZnA\n0FFOfiJp4w+6u6tEc/IIkedDCxwCAY/QkZ6KtOffR9bdQ9qrPPe3qhrjJACp\nVqpRPdYIikjrtN6r6bcMK76eQRv0OJw8p7HAZMTrKkyF6RPj8meVr/K2XnXl\nLf5BwWI3BPtFJSbR1C7snDGnamgAbpEoJTU9U+VpHphif/lF6xFapaI7JjHa\nIrOxu32lavHPfEt7/i1JJF9Hqtd4Zkt8HdFbLG7zWLw/SEiVwwHjU2ppoS2/\npqwJ\r\n=CECu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGpjGL9rtOHyQaELYDjCYs+/96he7IU3b07Axmy8T8HwAiEA1u7HHXjT8mshIehhGrweXbA9mIrEgOrR1c4/i8GTgLg="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553525924.120_1553525926965_0.518358635382711"},"_hasShrinkwrap":false},"0.1.2-snapshot.1553525927.63":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1553525927.63","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553525927.154+6003b33","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"6003b3319d97e9fa70176171e73bf0f0bceea1d8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1553525927.63","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-/sSnn25KVnnudYk2ndI44DOhlHPmt8HJmIwUnKMTK/Se6a9VUDOSHgDtCGou7gU48LxiSo9tG13yk3gkdlO0cA==","shasum":"5489ae75fc168e43e96de7573ae3c93394479658","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1553525927.63.tgz","fileCount":197,"unpackedSize":426698,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmOywCRA9TVsSAnZWagAAc5kQAIzvg7BWJxE1MlBJYcJ8\ncyq1sfNyWXuEiknS5Hqi1b5LEwDySY/uxL0Vs3fCb0EnPM4DqvFmbc+oeyN1\njm8I5lz8emTv/629qSbRC4TPj41L+G2SWJcAr8BLnKLAssVWfbjkqCzLDTmL\nx7GKBQg6HMqZ6KTxK13Lxe9ZjveFCI7fWFTw0MZhGFOizi6XojeMQ/MtdPMN\nBWAPfF53JxLKkAe/2wsegU7nWmAv1MtDC4Q6yaKJ7mpNTO+vxq/0ia2ZL6rF\n5sjB2kEuMcc+A2f3LDRz3Un+d87lM14qJgYtzEbZLMR0cJ5ADs9r3bXjWDok\nqFzTGTZibbik11xNn28xf/VWmxlAEdUuBYn39HYu6EbsvZcDH4e0EdTgzqPq\nbWeiYlv0mbPyBRHJDfkW3Q32vw9F20+6gTzykIIeVFkddNwWAAO+yqVFlFzH\nAmcX40M1KVsI3CQyv8gzRCkd8YO31Y3zR6KLc943f1pvGYVIEQ7vKmXZeJR+\ntSbQJfonY/cij59/5qFTLOvBl5iUbkjBCJJXHJqs26GCFqW5c1L9Dilf0ykO\nBauK28cBd4mIqQPz3iy+L1qMZjPUenvZLhmTa27nNg5hdYvTEsRbuQWU+0FQ\nLTOiIAe+jB4ysp9GCtO/i0DrkCKYSUg8dMeGpbeDck31D4Ebnkohqd8NWr58\nOJtD\r\n=O20T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCW1FYdDVLfNg7Zi0oa+D7vaDMd4r+AhjjCQsEtml/lkgIgKqm7R2gfiD62ZfXzBNSajX4ahIR4YJwxCk6pCzv5SAM="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1553525927.63_1553525936218_0.46380392726451825"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553530687.112":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553530687.112","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"setupTestFrameworkScriptFile":"<rootDir>/tests/mocks/globals.ts","moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553530687.112+bfc509f","rxjs":"^6.4.0"},"gitHead":"bfc509f893c499f430dbbd6315d1c718be2f96d8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553530687.112","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-PgjOLJVhW1m1+2z8yaUfLB57lj/IlFH1/hwFxxAX9OInaQNRDCdXJ/5dadnrx/eCjMkYoUHi+UURjHlaVOd6OA==","shasum":"48be22fc30b1a673cdf938c11d12919f25bdf364","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553530687.112.tgz","fileCount":197,"unpackedSize":424749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmP9FCRA9TVsSAnZWagAAD3MQAJkIJp6K+my53WvSeQhR\nMKNVPhdsNFVQ0Qbvc0f883MszxwJRVghl8lobcBBAMaz3TKKnq0zQDDqXxpN\nhEFsCTPJ5KGtYvUzU7/S0ImW8UmhwHKyD0ckfFx0vUBpS5R3yQ1IdW94P0RW\nMyCkpVCd+IV69nmIWh96fi0WNON1xxiANeDn8gtaqaKfQ5d6zAHGkADjLFhD\nVNr1rF3wh73n1w0FOdiLaVE5aDWlrgGeNo5gWJyC9+36Jsf9lTyWNCjdZXEL\njJ2HZUm5mLTAvkBHXPoHWYGqVHyrUjg5GqpLFglu8w3WgZCbYSlOjYXmEQFo\niQ0GV+Mv9DFmG+L9Y0V+AXtgTSL6mYZSR96GxWWrGkqjOc/3pytNZSRUM7zI\n2SCAw6+BwR2CInqB4SoJ8gr0mVmNdYXLVMfqG6sMWTixqnRoS3CMpKtgrWg8\nARag93QN6R1fm8E1R/74+VwbkSmr/rziD2JcriKWzQ4RIrqZSIirig9T5DEw\nso5K8/o44iNlr2SjMOLCt5HA3VpY9vQeX79R1Aod6aZEL5OSkBqxXOXzCunB\nP6koUsJ0MXbtM+tfIsoNjRetG5F7uoxf0TrYnQoB79MDUiGphwpUDSptIsT6\nx1XyQOpJIUstUFgFIpziC0uNqr26gMEErlufp57DSKKtoHEsseoXvXKK9Z79\ns3WG\r\n=zKGD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF2o4gua/FBcZ4A5i1n/JTjJA49KAOzFlkx4gi58biMPAiEAymx2v1WS9cLmP9yB/cA644xNeFmJ/UTHyQdrqcM32OY="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553530687.112_1553530692755_0.6104024090993092"},"_hasShrinkwrap":false},"0.1.3-alpha.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.3","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src, tests}/**/*.{ts,tsx}'","test":"jest","coverage":"jest --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"jest":{"transform":{".(ts|tsx)":"ts-jest"},"testRegex":"(\\.|/)spec\\.ts$","testPathIgnorePatterns":["<rootDir>/es/","<rootDir>/lib/","<rootDir>/node_modules/"],"moduleFileExtensions":["ts","tsx","js"],"moduleDirectories":["node_modules","app/src"]},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.0","rxjs":"^6.4.0"},"gitHead":"787db6a8c83f0e4867e13669a29abf1bc08d0712","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.3","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-43K9xERugiDoxkeiq78iTUgj2R4QpfIHmqRPqQYaqjVEDjxFP0Ai7PO9KeTMieWW+OY2ntRPNrhSO+jht7Dh+A==","shasum":"7e3ceab07575a0580e44bc113339ca86a04cadec","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.3.tgz","fileCount":234,"unpackedSize":460829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmRqbCRA9TVsSAnZWagAAazMP/2i9Ywo8NoSRX4qS6fM/\n+CzXt6V498464k1oT630xytE3lelVei9S34QPukViSsnEzK9VIUGDepYNg79\nQasjX+oh57RRKT69UV/J3D0lrpYAT8d84evaI3/E470kD11DLDF+EgCILANh\ntXLNLnrkrElue+3/i2ZFZq18s7j9SkZZfKuEpzl9b0UFQaxkgAf8jQHwXA3G\n2SHeTNJLEkvDXuzPpDzwJFFp87gig2KydmAJAX/OYRyWtFFfwy765Swj/Idk\n190CQh/GsM4KOCozLm+pRdg++Qn4Vj8MjlRP5GFsj5SCUoucyvpKiKS7kN1H\n29rhjOkRRXbBWGeGYG44kXVhMPZjEkWmskdKSr8bbteCj+AzL55QfxGt/rfd\nkR1M6bcDvnRXVbnmR6xRjKUE4HagmTtmMhC9o9caUYRtgTJSQE58wWQofFV2\naUfwOyxQdJMK/nddsdm9W9rJsOIsz3iyQmpnRuG1pnbMJ0H3PUHsJyd0MDAt\nmBbOqkWoFf1BbBqIZeQhzTLZmN5hg0BfTOqRsZGaimK+7X9mRTYLN5sHVxeY\nMIER9QlodsmI7d9eE4zwlg38jNW3phUirDd0o5yndZ6N+x7mSZd/vpNaTAlq\nsq4YZ5nAXYSmeVN7AtPvfbQVOFzkHVAW1ttgQuN0Ddwo3Sb9A+n21LLNnkjS\nVYpy\r\n=IsGZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCphaRxj0DHnWukftabUCg04rXk7UjgjIiCKtSl6Jr/oAIhAI7OGuyAneJBFGz5HHcylwTJgh8mvfp/+kH/nbF5L0zE"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.3_1553537690912_0.5756787314050944"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553619268.119":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553619268.119","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553619268.119+3ffde82","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"3ffde82522e83f32ce1a4550195bdcb8f766fbc4","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553619268.119","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-WeUhq5Dc54cHVOO/GwKJBVLVXrxl+wS7RdqW7CeRUbXjFTbgnJAaEf6GleeuddhqfqWfiGTDVRWzGsjQRM8WSA==","shasum":"0906079280a349d74af17fdc0b18dd58b0f0e77d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553619268.119.tgz","fileCount":193,"unpackedSize":426523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmllTCRA9TVsSAnZWagAArdMQAJ0oIftqyCwLtFtFtWFg\n8xGBthvY7xDJPJMb1ueF897bn0YTnqlThcjEKCRYnJmlPJUY5c7dXbRDydnt\nAjlAFesZfhBbEJpmyBP92sJ8OZgHSK6v3x1/Dyri7mpm7P43XQ928EJFzFih\nW2DmBbKRRzud6lQd4+P8hlvxUcha4bh3jfhSdmmAaals91F/b/EZgxqkiYQR\n4E7hsFbqMWtKlaFi4EHfqss7s/RlEa1v8t3PEOfvaJbqB1bHbGBg0HsvyLo6\nZV8R6SAfIewU9wsdALIy404JrWTLPIH8gNysJ2RQSvWYAWQaiksEO0qMiqGb\naIFHCEjWYfaYtWI95qgQGS3e5T0jzWaUNFGiEaAH7So4bMhYM0QsCZ3lE/SW\nYoEynDeD5AXoQnMd6qAjlx+lez7PUcjEZB7bqYBcwxN8FrHxdCBG60fd/447\ny46IaE6Lc02U4ghnYcRJL69K027sr12ox//Pl32kLx/SrHOJwdNiDNujBH9V\n50Gfy380Q+x4FRZuezp+Fj3d1JFaG+m6ZhaxX0FmbRpyY8p7TDFU1TBXCzAY\np+AvyfCYQRhxGx6FStIYepDikWuFKxtKxWJMOSBxQal01whXitux6n50DqOk\n99jhaASIgiN/dmUuGXmEu5Peyu334iyrWGqI0xk3q4AhG/TABl5MUmq+jDI9\n7OYy\r\n=R/YK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4uL/0RnLC7uYe4ij9NlL1iZXRCZ4PwfmpANm/c0N+WAiBFp8HDd3jKzoN7b4IXqNq5PeJ3HxEsLdQp5dlPOlXdLw=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553619268.119_1553619282942_0.6051645771285501"},"_hasShrinkwrap":false},"0.1.2-snapshot.1553668620.64":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1553668620.64","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553668620.149+69726d7","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"69726d788fa48c0ab76d825b4942f7b9420ddd27","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1553668620.64","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-JnmIZVbUlAAHK6jigj2W6usTdMmaBGYMtm3/8Wv5ysgj59jbuWehJbiTJ3yEnvIhPw6CzxOlXuyq9bqtM37VWg==","shasum":"21a4bf557b09ee96dbe9c1af13fdc1aa04b55a25","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1553668620.64.tgz","fileCount":193,"unpackedSize":426642,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmxoTCRA9TVsSAnZWagAA9cAQAI+1ykVWkQmGzeupTMZ2\n1CnjW9+e85+kb7eB/eXrdeWLRB8ZbUSE+dbV9Uilhcqg83KWJQYJMH6vZLO/\n/IjciFQBFUEURTZfWP3jFxAZuKILfY1+Jv1r67tu0SVMWisuFQGvHaMrw8dw\nEF4UbYzaaGWS/ofoyekSNu+J1lLBpAKUKU1ykx26tJZmJODwgvVcXSKFk/1H\n0PqLdh8woDa7t2vsSzTlAmI2DelzFj+hO03w37qKRBTE91DA+be/XEuiiDO0\nKlcBdebfee1Yzbwm10A5+sinjS030lgL1l2369Ns8MOEPEd1xVZFxd2+1GHt\nK5P5htaTVhV9XLRbytOhmWPZOnRJkFrrCP/rmxVCWSBa2TBsomR1s6J+vd2h\n9qblpeRQJarMOTJw69W813I96yasWOCAjpjT0/g9SlL8MPuO0PxTM7Z0+oXg\n4v8zZVyteCz5OkaxF2465PDK8OPELPU5BMfo8XyzWDOfcmy7U11Yl776vK5a\nADj/BHWD1XUWAqkdd16lDGDd5iJGsYZBEQUgTHEPh2Vkk6dpHxzVeE0qjS0z\nngySAzMnnVvg3i1X7V6IUcLQUEjgKemAbj5M/XHY6JfoDwc/5AQ70lAGlvvq\nQYevG3EMqBC8cX7KWIwrZ3YFADCGsQuid4AXSqqQ1zSegOTL/5Wml/0s4Mus\n/X/L\r\n=s3nj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAQEKORoXOCzgluEgYY4CMwCTeLtbMo07mW3poN3SSxgAiBR6A3dyFgbAYURNQn7t4DIfQrVod/d/E3MX8rkGFeLiw=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1553668620.64_1553668626613_0.23999545832702807"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553668713.121":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553668713.121","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553668713.121+db53108","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"db53108a03615e6c5da1e5ccae78077fdfb907b3","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553668713.121","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-srbztsWCbEw0Xl96L+1H1Q5VlayeIE76OtNtthoPHourYAwzmXGpPMGzHpRCJRP/pBDFVaSIHbiXTUupgoTC4w==","shasum":"6353ed2eb426c96807017e3ae3a040a0e9e43dd9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553668713.121.tgz","fileCount":193,"unpackedSize":426643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmxpvCRA9TVsSAnZWagAA55UP/3QV5KrQniNI7N6tkUjI\nTXnf0dXmJziBDwvwFGCdZj3EprtubVw235hRtVJ/jwD9q702vVhOO0SGDYlr\nb5S0SXZaxdDOYHJAvw1nntYVkKpd2gStuyuXNldPpofqFj7D9qSDltqmRFL0\nCyeePTJBJr/MzCpFtxLtulq9zoZh4iz1Xraq231UKaDh3CEKhd+oZuzHlEXX\nTU49oiwq3JQatN2C99oBVGnpP3mkbPdHFeYO4SElUjatBSIKs7FpN5QAp9lS\nJD8Wb1a8HphfUP6YvSSo+7QytNV6gkwxwR/HATqATsQjRo6avundqibLS4J3\nJtX5C+WPkzvg7a7ebERE2ALr0q27MuZsePUcViwNIzup6ZIQ8rYHY9G1vCeo\n9H7SeSDNuWRCQ2NjkvD0igBYstszw+qwOub3pTYQGZ18myyHq+XKeJHlXSvH\nujUNlYmodslWAFEKQyKNHRdIwduoNTKew/e1BqAI4OCmulQepDjPeKmH8Pcn\naRx62Bedw/4iA0XX3jZgVBpP1po0rTvpuakPQqy7rGnArq8/CPoh3py+gJbb\nE5vx9AtUyFpksvoCJvDFUPFKvRmcnmCQbLg3COHJ8VoLSBq3aDP+OQTlU9H+\nK+uvBjJaKtwaHHuZv1y/VUIZdqg7XW5pPbHYcQImTAqzNM1yVZId+hTiH53D\nCNDj\r\n=nJ0B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxElX+bgORLT5GUi/ClGcqdELTVXurgiB45OTQ3ZptIAIgWFHy3ylxU9wXMPnOLy7lKsO/UhtjT6eutxkdihC1lCM="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553668713.121_1553668718922_0.2532703144327695"},"_hasShrinkwrap":false},"0.1.2-snapshot.1553668724.64":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1553668724.64","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553668724.150+c0f2670","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"c0f2670d229e81db882478530a116aa1748155d2","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1553668724.64","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-hDRpepKm2zBPFv4+sOuhtY0Sfh46lE6M6s80EhxQ2R8B+CEruYORxzOJvkbFrOp2oLWFOlEWrnDzLrXqx92dVQ==","shasum":"9b55471976acfe454e7f73ab1a34b3a538052b07","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1553668724.64.tgz","fileCount":193,"unpackedSize":426771,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmxp6CRA9TVsSAnZWagAA+WsQAIjdCiHxiC5ctjrgCkBy\ntWisG5f/3l++C8exCcN8HzmWSA2fo/oGNUW6kb42KywZIuwT/hv5tMt0qWqe\nUqvcZOurLc7g7RctQvtI7ReUwT+e6kXfheykEEKAXvQPlGQdtIoSZC0Y/IvH\n97d6Nq7wQFcT6kAUFzsnIw2q+J42mK0WAAhfLY/EmhIzUOwUvg5AhothMSU1\n1LYGHPdL1keuTOyGl2gwjfY1Vz1S2kum/bCzX9SUk9l+xxzQrUzYbpSAhZRm\ne45ATcVFlhj0e1MPp0kQev4mqgco35+FDCon0x2mHWiXLcBcBYNbweEdXP4c\n7zHWgGyUOUP+gbzPsEtMWfa8qzbwWGe2ozElmGJcDHA3J4oYqqc4nI2Vh+BU\nhnLeJTjMKcdS3mPOHg9ffiJChxv/VpBqDZMDCdeiVHIQaHn+6Or/KcS2eb1c\ntaoaLzxsAtNLjAKBFcYVerdgwLVejGSjnM+UYwdsj2DGCOnCmvo+qYFZZ7tq\nEbChVBaxdrg/kbuwQcIk9y52/bYYEQaA24TRVxxoTpAdxsBhPkN56JHB/n5S\ndIXmzt4iht/lgfSDcrg6SpEYmQDN/aqU9oc0siPPIjurSS9/VFIgG4N5ldj5\nzIyV9P9s7muwWhzML977H82vRdwkv0BcKNETG6Rbdx8qWDhZQfXvuhTvEFUU\nhhHZ\r\n=px2u\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFwCwHsyl4R4utjYZlU3oaF+kwafc5QSuBYqxOBYZzJOAiBsxG+Y1HmJHMFPQ32YwRsu/HWq4O7bwZEODGmHs3xodQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1553668724.64_1553668729946_0.5874506866262961"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553668728.122":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553668728.122","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553668728.122+bca68a1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"bca68a11fa722c71cb674b608b247afa855a61e8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553668728.122","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-FNGsY1heyhBfA8phhOB/E69dLfq/jfYnNW+00XPjymgf3NhxmXPNs7eOAnw8zmHJyz1mKT3B4YO/c0a24nXJPg==","shasum":"e7568522e473574e4c28e9084f6c3ad00691456b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553668728.122.tgz","fileCount":193,"unpackedSize":426773,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmxp/CRA9TVsSAnZWagAAeIUQAKBSbT9+AJ4BlynwuRco\n0JlX31SwxA5XNFjnvWqeX2yvPYJwV6x9uae5rVkK02EXceD91vecsVx+5v68\nP26mR146iCvsozXsaxjbbvSu8UHXfGzIrYeYkeTzm1ewdZEVlA9jbUdAT+pK\nVgjH2tdwTTjEZfPvDPLJCZx0bk/vPpbqqt0sMT3yRpGRaaCHJJefTRZbtvt2\nOsXu4PHE/WF0ST7pey6FUBZUifRH8IByvA17zm647p98q37uOj5M/mi3ieIQ\n5WsElp41vyRc6NTUoX2EhoI4Ao2tYh6yLfDM/llFX3PWRiWi32Csao0oDWt6\nRYYBzwzBywPtTgoqDB5xJ3XMylpScv9wf+QWMzo9NmOEInyKUVWibb2wP+ub\nead54qsAWRCkLtx5WWcWyFimP+w25TjRXKzYFYsW41bfyil6WJHeQ0r58yWZ\n9TdE8Qa2hhJK9t9wSfzrqk+OO+0BaiaL/CYIsOEFc5tsV9kSK1ZHyu4qnhbb\nOv3EaeEeCMTdOzk+eilqgJx2qSok8o1biOX5CC7S2sie6I//FG5ONyOlxw4U\nF2jsre+h3VXftQhTnEGNE1Thh6QMC0T9B51krWuidXcjssV7i4MNEVVQYjjG\ne1GpXjCi8e1Rs89HRdW+MTMXTKFjlffTMN1TOn3ym9J4Z6eN1tqxJ9o9QA6H\nmz/H\r\n=/i2g\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAtvimcQdXm7ka8a9nquZQT5bQh4ZW79kueSZ81Nb8uCAiBQrmUZtuD4BzT+ASgp873A8sz7xrTYyj+06THqR6eisQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553668728.122_1553668734408_0.8227932953809673"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553669516.121":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553669516.121","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553669516.121+3ce9909","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"3ce990958ed6f2512ef230c4c2bc6c1f1089444d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553669516.121","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-1b9Qh4J5XH1mzxs46flC7lqNBbnyA7zYSfT6x9F9BRQ3Kl8eKeFvPX2uhBswbIAg8XBERKytBSrMd3bPnOG5Lw==","shasum":"66a3bc15213db7b0de9f04060fa09b7888f172f3","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553669516.121.tgz","fileCount":193,"unpackedSize":426325,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmx2SCRA9TVsSAnZWagAA14kP/1phYMq5ocrlU19Ke/ph\nRT29H4LZsOpymTZY5oprfB2BBMVYs8HGUPNjH/slfRdBECCKAFO3+85eB3bX\nvxPZxTHmpThrlzvHZrVobrvtoWKKTcZoJxgKPGH0ddyMvIM49PCzDCLXFTZd\nDhMRRfcO/LqMRq9IxZE9TnF4Q8wFiVjW0zbfo8NyMxR8cjcTJBiuUoFN5HQe\nWtDtjSkbFdHf2+QpzgT1vlwnK++ZYPeVlD+NhNiPpYu/yENgNpsJjGVG+Uy8\nD78tvvlLmK9q/97h5CTF1vppK644qb6XMe3OZYM55/wePjoi7isjApnN2QEl\nZV+8jeYy1Phc6bKfD4PrX10wLBqOE5zpdEHBi052GlFx2mdtqp2CijLdoYSK\nrSKRdnYUq5UxtMdxMAFPQMPCKRGAB/bQ1MEiK3Fo/kHCrdi/fDPNRjQTpjWG\n41RiVFYgrhJGi9R3mHy8+iNb0GKMQG+hxfeSpiCtIdYNtfuQmF0ee7G2Z8Oo\nsIXkeuG+129Q8oOxA6ahJ1lUDYXrytAnpyfIMPrLlhtFJYVKgCqpxryfpk0/\n6A4WAnnaml4B243Rwq+nGrIq2aHjqOYKk+Xkt5agAY5HCBRKQPNhRTernb5C\nuEEG7jx+iC/9pLUFRyhxusaCBTS8hovwK1T3Al2LtfsKetqmKs1oOa3nYeBq\n7r2g\r\n=gTZX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEthHPi1h04qJKjUfUvjZL8WlmyLfAq6zhwZQ5EbH4kSAiA8bjR6h1pGOVFytYCEtYZtZi6PCRuTqnt/b6Ci2E3MUA=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553669516.121_1553669522194_0.9657634554771979"},"_hasShrinkwrap":false},"0.1.2-snapshot.1553669522.64":{"name":"@scalecube/scalecube-microservice","version":"0.1.2-snapshot.1553669522.64","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553669522.151+d72b9d7","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"d72b9d774ee82aaa1064e5029f828b0ba8d4ef22","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.2-snapshot.1553669522.64","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-zPsxdoBNcbIYn8nacznoTSZsPpJszVIPS1xdkj+9oN4toGz8ioEMU2y3GrtlKq46IDBUlr1OB9500GyM6Zg6ww==","shasum":"adab4ff124f2ba83c314e6eadf641d4cb907d8f2","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.2-snapshot.1553669522.64.tgz","fileCount":193,"unpackedSize":426324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmx2ZCRA9TVsSAnZWagAA7awP/2MjazGWnpLiZ/M2Nlzu\nG5R+Cr3lSBz/HgFEFebqeiF8i/+RBkuURAYBMmnGunsoDqrP7gVKVlBFQ+Ky\nS3uRSYRf98Ppx0trcDQM8QGsOfANe9qK0buUswjPiUlAx3PZHgqlqyB5dhuo\n/3b/ci9ZRruouHVX3hMMl4BtfjYocTphxRi1g0ddvb5TVDX9DU5xreQ6o74V\n5Aa7Hnqlphxvu45kEelBfXzItmppSNtUkzDEjN9mkYRFdt9pjUmReJr+ezh8\n/3ZgJFdVJdafrqZfieUtL5W4SxAoo//n1XJJUxcjVZXZj+8+Z8vqG11wSSLM\ntXRhJNhN2/6Dwvlv1t1HzGwl+TG08ZjXY8KARXMMXNN1IkMaw3e0WL2Z+GFd\nPuhrC4KV/kSo71qHcl/j1py7YmcOTHlzooa7torR3Mazo7WCngnEtdGb61Lo\nVQi9VdXSB7l8Z5kDgwDdHIk/n7J1AKAZ6xqeS7bUz6fDkQlrA/SEoO3Zbw82\npNskJ85QYSZi80uFEVLQ7Wo2+yu+czja/LNcA4LPk6ASxkb0lj7eDRJ/C21X\n7nNsZh8DreLEKNNFaHR+SO+BoNh1b99GvPavtGUgifDfQcNurhOD/Dp7xXUh\nt5zWmfhwDPYB+HYhNcUzQmryZkUzi4aKNga/aJ2UIK/SHhxQerp4tM1wmYwA\nYIpr\r\n=fNFx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGn3d31HZMjj2NHDCl5Erwkv1sKdYVWAZnby226Tlv+wIhAIIEyd3mhFXhE4IuEWEDY/ih5fmdjqgUhnDne/Jdv+Jj"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.2-snapshot.1553669522.64_1553669528939_0.9682038971928819"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553692588.97":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553692588.97","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553692588.97+e461649","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"e4616490b3763078b0047aafed899f6ad4e15974","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553692588.97","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-GdFqQlnQFqCEq1xCfR/fwxbszjSkV3og7MBswqOMVdAonjKAFMTl2UAnieH72ViRjyMJlsX6TKMgHWA3We9eQQ==","shasum":"bf3f228119d657dca19cc1f21d49ec56f3bca4a3","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553692588.97.tgz","fileCount":193,"unpackedSize":426324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcm3eyCRA9TVsSAnZWagAAfjIQAJhXYw8dHFRjyTFlZpGo\nxReRPEV3cQisOdcxT4X+Q5gj+qBBwC5oF34P/tcWk0huCqX8AiLYEvkeGvgV\nCTsb2hy8jmr2YKHmHxVvXFZpbX/IOcikmiSnD15fvdOQUEXeSWhyV5iGVkFL\nIBW1x90ktkxov34vWKJ/0IyRP/X0i8Ay/rX+rVtNiBqQ5WPtvueKpkRaXFY1\nYvp6ERWmziwpsKfHPVi/nFv2/Z4hl0X63AdE67gpaoM5iMsog3ZfxX+6RF1c\nIhTwl4KUIRWsLwcor9LPaW8aCyVNDSTg6MsEubny4JZvkPG3Qjkyx2T5oved\nBcAVGzoS1fO9fgjomqqHXNAi1QlSCAj/KGuNSu6GlBhJyuN17WroC3mg5wW3\niwrb0aIpFf5y+s3lUlUrtyoM1ao5h493qTvy8kHOWv0wHGV8vLvxSER7ySym\n9JEbTc+KiBpUyat/kSUCqjjL1rgCxxmH0/4WjlbRGoSCwgkbXQmGBSAGpidu\nKUZ4X5vcgicBltYzRteVKtgBs836kvpnO6ZN/PGpD5+Rv3MGgOSia6nPiG4c\nobdN1g3PCrIPagy4IQ/6zqEH77ZWD44LWDS3zP/qNq2NPnGH2C+/UjTrgcxI\n5jFOFTZ+IL+4jTv5u9WBOfttfSQyF5y9q3VAgfBYut5Qmtc0Lyp0psev3LZd\nm/XH\r\n=vXe2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+PgIAwLhF08WdM9n/euvhz5w2N7/4Jdsuf3z00OQ2RQIhAJIVEzon9de6AiCDFWFMr08dph4YaHwa2wug5qBfVnCE"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553692588.97_1553692593992_0.2797860133943717"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553693204.95":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553693204.95","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553693204.95+0de0f79","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"0de0f798573630dd700799fc6e237b3e02667a10","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553693204.95","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-NsWmIalG2NTBI9g7w6rgxxkzsfRLevtXgjxcMid2AjEkvASyvppjResLC30TASELn/OeYX4ZnehLCwn0Ysf3TQ==","shasum":"e96b500c0588a71a7151032e90080a490245d35d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553693204.95.tgz","fileCount":193,"unpackedSize":426324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcm3ocCRA9TVsSAnZWagAAXlsP/3LYhwA7SZzRcAiLx8m+\nfdCXXPKkQ6bq1wfEnoTkTSPrFgAw11yhH+mwrD0xk6Lt2xzLCu5yQiD0Dfe/\nwiHdlWD9QjHgXQ5ga9dlOer2PNroZQ7jSI/DDI6BBKhRsJSouAkS6kuonvga\nnwz+YkgMwcStigHMuQNnGs102ttKTRddCqwFzhtiQ9vZZDqcpJZEvMRNZaFD\neS9Ry8TFq2GMxexjWQ8OuGf9TIciKrUgwzhDGeTcZwEUFjHyYceCW6MAQWEO\njH8Wv1r6XhV8qbx2U9EwF/iZiob1/zDSTMxNxvvPzf6UNRGGiwQUoXplPePT\n4Mtv4oTf5v96PNA6VQ2bhkkf3PLzC96FP7TiCKwRkjNBpZGeoz0CHyQq7DAh\nZllmK/i2sMMcLZlw36Z+fXlWawuEx7fbIUsf8FZDp/syu65iBulpKvy2rT+p\nbE4mbrwP0tRRWdXFY11WwfnpPHKTOC+gqXkjHnNsfvxfFzzAGW0yyLThyrhL\n1yKjW9qi8XoVZqirKfXS5bKGoFAmjXUa9zmdEdWBIrWo5uAYsMmAwQkR/3HE\ntWlEwSLW3YdQmOLEjckwDuKkn+RL4MOfk6ustiF8kk9q8+jiPiXZMqSVXkwL\n37T3XST65I8QFeFPWJH07hNW19h5FRn/d3lQl64ygmvhI8Pnd9CKZjNell61\nce8B\r\n=7kSZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBNmAbVxmnS4N6QRne/sAubOw57yaWbkVeJku/IayMA6AiEAkS6Nj4I2UgNZ0HtSyloGpr2alaKez/SRxgRIcVu0wbg="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553693204.95_1553693211601_0.3232921262437176"},"_hasShrinkwrap":false},"0.1.3-alpha.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.4","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.0","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"3778df7829e4d0c68ad716be36369688968b1c00","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.4","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-qhooCB/T/4xOND9NcNrslTNCMxUVQhD69A1qYh/kCpDzNRgvmracCLu+bAAZ7rhNdYintDhLcgHUnvTBoWLMyg==","shasum":"a59e6e77a04a8f824556e656612fc3bbb63462f5","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.4.tgz","fileCount":197,"unpackedSize":433272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcm36JCRA9TVsSAnZWagAAK8kP/3UVoxjwFGI+GBVqvLT/\nQnnO3X/fiAaiy8kESH9jPxUvRKwT3rkrGjk9MmSnr0MZia6AOn26BWyktw9B\n00WmU1CRtbx6+ciRfT5ogXhRfYIwuF7h1ZVptc29h/X+09aO1R5i+0R5+kQn\nykVPbIGpvcFzPDnQ8UoPh3iKgn2IACnwnQf2fNrv+5qiE1/xcRs4BMHx2QQY\n+Bz9vZbIZ2ZKup62Je//3E+2V+1vTwRDAa4hONY8GlqHkBIX2a6eGDSQf1eG\npyO9bRBGtq3WtYjqWgI9EHcemmri0jc8PfuM9ZXcMPcIpTkgrgDL/1uroWiM\nUXtklB3aj32AzmOKekIWv31oV8rrtdTYcjmxAD/QyFsOQ/8Hq4U6cfig46o/\n8YqcGbTS6/x/755mf6ljtNQSD0KvmLdrl+Q6lx919zTNq5sK/Y5NJP2zEQ0g\nu1ZO0Yn+YOsphluY+cxWsMDsJqC4u+ZiPyVz+UGRs0LXKeM6xWhyMH/6jYPl\nzScKvaLaimHaspUkHcWIzm4p3LnRxDKdkE0N9a19BKnqbRsDXUVsd13lgPC6\n6Zqe5ONHDgiXQqu7DRbNTyR+B1ENVYRaKsXeSAlIWYTiVKvFT+wigBz22TAx\nDlYVUMaVoCcNd3z5DnYGIhL2SkY7yfaDifaOlhJDmxm0troUHUTYd2C/6Oim\nMQP3\r\n=JdNH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDpJWWH72PxjpXeb3JMFyaiVCSG9OMIjLYx//ggH6OScwIgRvLlzE/0G32AaoozL+USSsgrYogCBk0iwWWgCbl+y5I="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.4_1553694344421_0.7669137921121736"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553700586.176":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553700586.176","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"clean":"rm -rf node_modules","build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553700586.176+6108cee","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"6108cee4cd937e46043a514b40eb0d4c455d098d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553700586.176","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-rGASOtflgbsmgkRk+z+rGiSH9Cq4UJAnCx6y4eEXiGjTRxkG03LDO7hmLvjf3FG1al+p4Jg/IdgpjeWE09dhDg==","shasum":"868e5ea5f30a78487d45428b338216941b2ad0ca","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553700586.176.tgz","fileCount":205,"unpackedSize":437314,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcm5bxCRA9TVsSAnZWagAAr9UQAI6UIG3FKbmja+N0MU/E\n0ID1RL8SZhasdKDryA2pQbj7fvvuITOVbwtubiMQkQGeK1hqvnXAJIEmKtSk\n4TFzqrToWx/YRGrk/urddbs5YXo9WSHQcMFNlUnHqRQNh3niBwIMlNAtuxdX\nCJ0Xg16AcgWkmDKteabBbnVwvKay2yvZkCA5t0aKRsLxVJpRV1uO0CmOxorR\n82EVhqeK6M+WrMmYHdFq4SQjzvkZntLfBijaL70Pdh0lYiI2HqrrcEAThYbD\nHjp+4USlTa1IZqUaApdwvgXcSLe0iIc1hhFXUPGVyU7Qp2wBuEsPpQ0+7fw8\n+4L7Y5UQPnCNNFsikJa7S2lom/FvanrIr/FZRY3mWg06tAX9DGsTPcAsrXys\n1ZkDcaXi5y9q+6o7loZEZ5qFaDPZ7/B6NXyKJ+wS2qMcwRBmY0iX16Vq3UWy\nl3Gwziu8hCKCeEC34+Mv/0iCc/SNHntCzO0PTiHsyAFdt+pS4weWinksmUGv\nRZCkCCkO5uJWRbGcANjgTiAySsrIXgEKBhosLH8gDZHQbUZhkr4NIVolBBVT\nDC55riYI7BEBmre95Oxnz5WIp7mNLHsfLQIARXxqMMCQGj74wfzYs7/4fEy2\ndBBX1OwFIV6a4VK/hg11625JMFxAjZLfQJhAOUNg+8OO3e7EFe1HUo9WDzh6\nmF+x\r\n=je1Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBhtHhD3pEmIpTRLSmzST0ltazh08+mbNb6rD9InGnmKAiEAhn4Xr3VAYNI7OIOA3Jh+y+cDtxmTl4yAEh2iHICaPME="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553700586.176_1553700593082_0.5435735894882474"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553756973.170":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553756973.170","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"clean":"rm -rf node_modules","build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553756973.170+974434d","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"974434d1f73c1f3a2f8399ab63e28507a78346d4","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553756973.170","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-wWCYj8k9zEUDn+HnjHdf1Grw1a8/NMZQYAs9pG/t8FdsiEXfQpLQZ3QLDu5DMDHKK6M2MpDhHQ5Oxhi+VCpE7w==","shasum":"b0eabfae11da767249a2837c690049c1aa03c8e1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553756973.170.tgz","fileCount":205,"unpackedSize":437314,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnHM5CRA9TVsSAnZWagAAUpMP/1jbrx7vHdTniqLnuFq/\nWZCfHCsMbuOSt4uJlCIep+uPOwPa1Z77rCHBUHR0WUaLJTLw+QjBvqidVJn5\n0GeewO3EuMWoNpTghBw40Fo2+i6/C/rpQSHFG92YPB36W1wfCVZxdGo+wm2G\n9YlAdVXsh2RR0uAunsgdKw3ZQr2VX8sM4Ewv16d0JsogwujlZfDliFhMQS1i\nMTnf+KXjLTj3y6vWEwYiQSw3kGV4UpCh+3sNHH0dmay237mjvm+HXzlEV6no\nfjFcF98IyTYEViTu4sIwikcTJb65ob/Z7Bh6gjpCdEUNnz+hRu7Gno8xN6Ed\n+QooibtZGYSpVx6CHf872oTySY0m/gXirS+EXVkR6LdVdIrDTxJbFfx8CojU\ndvcwkYvfOabtzudowsQTR9TqE4HcO9UPefrJUpnBY4h+u27j9aG+i9Aw33nX\no1lfURFOO0NbjTz5ACnJmVVgNqlFlyCcgOCYqJHvcejkqNcfwR2ogp6DAI9q\nundpdbBFzSEkQPxVYXBG1aL1tDq4IlbtABcFncDE9I9j4EW3H4hie0EIxIPH\nbO1zEOMTvkM85IEoVSbrJg7y29lqJWwDv2g4FGoqYDeHdY/0bYQOmcGrNPr0\np8cIHdp3VrrPrNrVqMkOECscQ6maVtxK3pSZIsackwq+JcDp2cLgbdVniaLX\nwxh1\r\n=Wc+w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIECakkCEF7breIGZDCpXugW+bsSCHRkURnqh3nKHGxa6AiEAkMWGkLbIifb0u+z8sY7gGAmr54C0ufVwRwVV3eYMx3E="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553756973.170_1553756984867_0.3101660515344866"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553779139.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553779139.0","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1553779139.0+a7f9134","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"a7f91347aa635382ff28f3a8570d8efbd033a3b4","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553779139.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-NiIseGTEOVT/zgVR0baaB8F9sT1hvSqmKPDcP7II6lQ3Re+TDQfUZ2G7KcQgg0uvSkRa6FHTbz2PSwqgMxzB5A==","shasum":"a1e5b43257bbb76ca9812e6fe1ff83df27fe8c89","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553779139.0.tgz","fileCount":3,"unpackedSize":16020,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnMnJCRA9TVsSAnZWagAAVjwP/RBTplJslYB8KAm2DfqH\n2uTejpME0ZQIrPi7zn1ic1B5lyQrv3jAQCzLUHzmkAkNNUscR5LXdcFFBxiH\nCD0CgZeMtUArs7h9n0Ek63TY4roSJtpCb7PhPxj0xmHms83cZMzskcvP/q4m\nlu9C7k/xyaWYzJsHZlSsXIXRLQUaIGF6sxwvgVLZmzBQ8WxaVPZxTzTHjGCi\nXtp2gz6DgTgKBUo6lUERLJEti5EDrp2JsOpUXgyuPf7rsitMFfKtKsg9R+Xc\nEY3jQL1CarTF9BwmnhUZowpreNy5slxVE0w/avFT1tUxXqx5vapHKvxXi7lu\nfHpXq/dsVkROiU9/GkDHC7vigJG5nFCaPEoluW/ajLSsbUzrZkWhjQELQ2d9\nqV2VMYXdV/l2oyjEmZMGwNFDS2DWvTPjXfY1FIYYUg7O71G5aIVefmTCZ6xO\n8UxXXR0IbymPl3JvlLUX8DqnW943Ujm1x9JCBoWENR7CqddeX5xz0D+a9xTJ\nebe8HKbnPQKG5nnD85KUTqGllNDeRYjwHD5PFkwu0/cl4w1ErsSAbVoTFMPO\nCQkwPHMhFGIpBJUMS+UJPy8/VbSEnT1POyeXcNe4objgQtS8Kcdc3jDbTCRs\n/o/oskHipGPaDCyM16bEsdHRg35qi3Pz6TuG3rwQ3F5wMRPEfKYcAN+tdAWs\n7NlD\r\n=mX4b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA9qCvXhhOxvkGuwH8fQm+g58DzjgkG3omzFTBXqzm3TAiEAiaZyn5rHO3vSdnYLYCwFTi2j3j7pvyyCouZ5WStY/xM="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553779139.0_1553779144814_0.31446390598535867"},"_hasShrinkwrap":false},"0.1.3-snapshot.1553781614.157":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1553781614.157","private":false,"main":"lib/index.js","unpkg":"es-bundle-min/index.js","module":"es-module/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rm -rf node_modules && rm -rf lib && rm -rf es-module && rm -rf es-bundle && rm -rf es-bundle-min","build":"rm -rf .cache && npm-run-all build:commonJS build:es","build:es":"npm-run-all build:es-module build:es-bundle build:es-bundle-min","build:commonJS":"rm -rf lib && tsc --module commonjs --target es5 --outDir lib","build:es-module":"rm -rf es-module && tsc --module esnext --target es5 --outDir es-module","build:es-bundle":"rm -rf es-bundle && parcel build es-module/index.js --no-minify --experimental-scope-hoisting --out-dir es-bundle dist --global sc","build:es-bundle-min":"rm -rf es-bundle-min && parcel build es-module/index.js --experimental-scope-hoisting --out-dir es-bundle-min dist --global sc","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"next","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"4459e5548183f97b9cd74b9035efd3fd9c71cd20","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1553781614.157","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-zxhQcGKYOcR6Hdnyy4xqhkph9F8kYyEZp0Bw0nLSYeqC37L8LI2wj8F3ckvNouOR25qVTy0POuzlIG0myKzxvg==","shasum":"2c2e53edbeda1b09ca44588d1c47eadea5832673","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1553781614.157.tgz","fileCount":139,"unpackedSize":587883,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnNNxCRA9TVsSAnZWagAAKWkP/31hUgie9m2x444/3gU0\nfmtcCfxgQ0xpAqtV3Po6ajY28POq+gPOeRy9eo8/xv9ptXvIF9LYcqU6ga4S\nZT6OSXUH5NrQbh/s68/gixn0FVJ6H9/I5NcnBtx39mWakpn5SeNkFsoj/C/1\nRZU4Bs8ohLoFLUEU0yOIRa142qC3nWmybAl/Wj65vK0HZrHLfHDuNtl+oq0n\nk3UfhZPUiKFHLZinB85/zxAv5pdjSG+CLiqdI8e13E2hadJJ+RefaikUEPjQ\n1S8Cqu/YCE308/FUP4wdxSKMJ91Ldp8ThpoZvOTbGx4dAvexI+qSZUm7jnzh\nFrvtvuVCJ3UJ+4NLPhK3j622EaiatFFbeBDeKJp6mT87i2HgZ/vEYBhaTDbc\nyglxqrVliAneBF3k6HDWRMpWlRW4vO7M82zDom3BsbgfnQZmOuJTczb9uSbe\nNp/MTMTzff1P1X4u6oWEPsXIS7Ryt4BClSTDNTtr0qm+kPXcXnNsxHCx2hS6\nOkwi/nFphdQpN7f4jIhSzyL1uVXJ3SCrudIJgBY8UGRFm5N0YgWPA8UMVG3q\nGNA3geaQ/J5wgeMgePlprGot0RZbc54howHBxJwjbiQ+RKF7gpCu/RJ8iqpd\nAfaFX+0EZDWljgtkVehrGY1oTabPm7yXnX9nqc6sRKYJzsPfFq/r/RLeYlnW\nKBrk\r\n=AFl/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFvEtA2g/7bBMInbXEjs0kLD6Mx9do9US+w38W4ZHkctAiEAy7UQMSP6sHzq/E+Jhlp/uYVbmjlv76alisTrB7dswis="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1553781614.157_1553781617041_0.5477884893564602"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554022676.153":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554022676.153","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rm -rf node_modules && rm -rf lib && rm -rf es && rm -rf dist && rm -rf dist-min","build":"rm -rf .cache && npm-run-all build:commonJS build:es build:dist build:dist-min","build:commonJS":"rm -rf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","build:dist":"rm -rf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:dist-min":"rm -rf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"next","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"23310b0126935b11ac211ab6a7810bb7daa961d8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554022676.153","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-WJKlp8+c53REr7b5T1pJrYGKN3j8jAdv/iBI/8Qar5r8bDaTJLL9WjjbRMgTvbNqfCbkaClDAEeuWIxqMVp52Q==","shasum":"d8c2171c805c64f41a8c805857a6927910eab46c","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554022676.153.tgz","fileCount":135,"unpackedSize":855232,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcoIEYCRA9TVsSAnZWagAAIpQP/jY6PNO5sMoRKQuIqTng\n3cMDq8AmGhw/v2EGN9WS05MfEf6j41JtA1lNMXTzpghAhXKjIVneOTS+fUgt\nubZARvV2rtHxGpWLixrCJCFXIXUDAV0oED3/YmvVeE/znJtQRo/WOg+UA9hZ\n1eBw1u6PAYOAfa0NpMYq30AnX07T0gzRB5j4me1ajEFtjkuKUzIOritn3hXE\nr6wMtrkBtwYsGZ5AogSZZZpiE5eMXoD16dqip7G4i6d06pEbydM5+dHyHuJZ\ns5Te/DYHvmcIyN1Dzwwq/u6bNlHvDp5sw2sNEb09sBZxz7cVXdNS0eSiNoqa\nqMNbn3giSu7kpY0IqRgW1L8Hz1wxTA+k8gIBIFlZLM1BnVWvixeRgbjkYLuP\nnzEQSbVY67LCHZGHphm9G2W7QxMir8Ih/K685FKDNOkVngwsbx4nH2nqQ13D\nVeH1fE2d0goTWZMiHzpgxWyCidKCBYUIz2t09jdH8Daj2mNHWnEYw8ij1cdz\nVYVsE8dnqAg+BpkEKtFp05sEYE33/2BJRS6bgyBXQsIQUeTxZxErIZdYEAzw\nQi1MIxQUFZWx4txTLKwLhLvRBpatZy95uolxC8epkP5bOdeSt9LrKpjb/4fg\n70m943vcB8CoBeoB8UjW//dE8KgLoGBogTM6vDy26k7qkmmTLJkXxU7uzLap\nETIT\r\n=lgn9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID6DaiZOsky98mqmk/Brre4uaWjCYbaM/C5vCblJDyBYAiBi/TG1lb8l20P3fPEzKtOUyoR0sr5YUVNT29FkWKxdXA=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554022676.153_1554022679958_0.60663901512531"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554026585.149":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554026585.149","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rm -rf node_modules && rm -rf lib && rm -rf es && rm -rf dist && rm -rf dist-min","build":"rm -rf .cache && npm-run-all build:commonJS build:es build:dist build:dist-min","build:commonJS":"rm -rf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","build:dist":"rm -rf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:dist-min":"rm -rf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"snapshot","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"3c74af3f3421e94191cae975c12f6d10700cff9c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554026585.149","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-MZj0vpB7XKC1lGWORFLqYN/s1xDztJGfii8YfvFD4jDgNSuAqucY87Ucwus52qEhN8U1b0V4/FNgBdS5FzazYQ==","shasum":"5b17fd4bc6baad006f52ba2551bef4c1aa54f73b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554026585.149.tgz","fileCount":135,"unpackedSize":855100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcoJBdCRA9TVsSAnZWagAAfLsQAKTydZxqmvQTSFx/xe7q\nOWd5QPIDFAX86P2/TRYUSTHlSXOMwkoLoajNBOS4mS/mPnQABF+gdEYfK8QC\nrQI2EAFRcEQiKsMK2NUCovRGnwf6DxNHynHKlTjo8k/f7XHIsaqetQwQosBA\ncicVnZfNz1kJinVpgCwNhNakFG2d8MeuI8fuKk/7rvAX32pa0gYG+q6Csxrw\nwTEyiFjf0Z4aZBGOIgHEhgCG2kYnMyeBuH1oLxYYdzLi1Qt7sIeGkAXj3t8B\npWjakqZ7zwvlFPDUxlKcD34Laxu21pnUXnroSyt2yJalc/nLM1RPgncEVjcU\nOIWrdYxj2r26VzY0xBjj2u4WYQDXFVMrFOfv+n/7NHRpyF+UAK9335gHyf+h\ndoLGE1YljGSl2C63rgbohgj1KffvjuR7pyWissAm4OZYBG93iPQMUZWgXiU1\nNqUiMUy6SbWhZhw3jrNz0YZoh2o+SVgPBoItYvoDCnMUIirh2LzYVtx3zho6\nEJPbZJKfITNifdyf/WT8rf4jz4eYWo9cXbV2NCIVO1MkbTTkTfalxm53uizG\naqUNQQvWHrqb0rh3d4u9R2VpHxw5mKG6iStO463Cym3OugYDFTEKU23ZJZQ/\n7L5ekcCPvUu1MJjaFHM7QpUm5CbS0i39hwo5pRuAZ1nQtM1uRdwYh5MxYMHW\nBZUO\r\n=T9QZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLj7VuLccWakpse+9azYWhhi1jrxuJta9CvQaV2KIqRgIgWCZPa5wbBZuAbJClUHTuvIUn9IBGNeLHh634Z9Ohzzc="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554026585.149_1554026588444_0.21086141509298617"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554035732.144":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554035732.144","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rm -rf node_modules && rm -rf lib && rm -rf es && rm -rf dist && rm -rf dist-min","build":"rm -rf .cache && npm-run-all build:commonJS build:es build:dist build:dist-min","build:commonJS":"rm -rf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","build:dist":"rm -rf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:dist-min":"rm -rf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.1-snapshot.1554034137.147","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"a951e8aea74dd2ebbeb93de53b231f7ec0fac11b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554035732.144","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-wxQprLrc7QfO9U+qMz1xhzWn2PL3LbNxu+FyEiWKqGzbAfV/h6HARe/4sHv8SpFdt4QuFbX9wNuUdeQWYD3apA==","shasum":"ef9a790773cf5a791d3c2487e6730251efc1b511","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554035732.144.tgz","fileCount":135,"unpackedSize":856923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcoLQYCRA9TVsSAnZWagAAGHUQAI/HWFKxineWlsA5Rqbm\nmimfmmgZ9aPz2hGj1gouVY3Rw/Rh+iMBhtEK1hufj+mEhk/Q7yO1YjndOYDh\nrXH+2MV6PxqstF+O/2ZT/trDlGzG1d9YJ1htJOGZ+BD5DBkiz4tsRY2SmYvi\nDU7itZfVEFJKv1d5DOSma4I7pI3mo3VRV5tajddyOigyqw9s/h1wRPTropB+\nLjZOXDD8nWYq0/rtm4ziczKkZno/p07FOxPlL/UyTJ+5uz6O/Mbjk5xw9bbm\nBBuKsaJkJmeaizxzrkr4xVcAT40aYQwtOgp8mtLAYSNhjGlH8J3dh6eh27pG\nY1G61waCLRYcid5Lpr1l0tx9LBQMUEBfv8uOH5zCakM9t3lKe7KOtS21sJyX\nCJajuqxCM7kANMF/rkx7nVxaQXmxGKgzANQ2V0kwddgxahk7WKxVsDVq7d/V\nRHC7KspgAYBuowKZt7QKGI/SuTxFs4nSuehGS4x+nUwIiD7jbJ+A3yaTMltI\nAI0YtAjJ1A1iqlfuGY4O1ZsUX8u635RP8smPK0Po/HYEDCWZykiWA/h8oK3T\nc66ujdGE3zlOTdMetEgEEG750icTlemsXiR7htTi216qI48ziu5WtFWv3joT\n7kVV6qy7okXPqy4s6ThWEOyLWPhy6L2zDvUD13Dr4fBgay8Go+XeEoB+78se\nqmom\r\n=3LQF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNQmG7dAA9KrmVoacGisbqVOTqZAQvH5kNjuC10ZlAyAIhALf7joIntH2pYQ4vx33yhMtik3+/C/5uC/lSEbKb/39D"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554035732.144_1554035735733_0.7038661914594979"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554110164.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554110164.0","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.0","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"6a3a6a85e07e415ef5d29aa682c9d71a29d66c55","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554110164.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-TvynD5L6ROoNpBsnizmp1iQ+koouvDog2JarLUoigwdCnggrwQ4ak5XjNMM2N+Z/sEsvsyKlfdkXr4ddsw3XiQ==","shasum":"83db2db3c307dc7b651c29c299bccfc754693018","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554110164.0.tgz","fileCount":197,"unpackedSize":433295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcodbXCRA9TVsSAnZWagAA3OkP/0EFpw3psNg5pgkjYvP3\nUV8Bk2FDG9MzlGghkC6tfOPxetNTPQ9mQog7R4+95WkK10FA/To13c/Pc0NR\nVewQFh43HeGTkjePvUYZAr8DpjnJOrrozYCh0luS80SueSFW7rWroTuEAbai\nilGjJB2JL0K1Ks8tAPmxdkwBcOvg2ochVlSn7S8aiMI3OPj5mIR9V026+F/d\nvFMKIIUqsyCE7OPQ8+ILk3LwGYqjFd51fkLNWcnf9hq4hMeSfdjxGmH6j2vU\nRs3qQcDjQaRUfVfrQLVw9gLygQXjyEvIIt4nzb7bHeeKcQ9BqCGgJM4L+UzU\nYbqsoYM8spv8rN+j1HewAKtEwSj/rLYOHbqZr/LHpudU5QFWgECnMfZMcbnR\nJ53ryQv40Jmm+Y31bnAMW+AB+Uf3Y94MLFcWEtC/czf666fQsJQBMrgwfj0t\ncBSO8K8iD5BucX9pR6TgGeroxRNA0+kSiFiHQ+WpjoU9qIC9qaxwfanP5cOa\nIKZH/S+oucn+VVHdkuaMdLzJ0vKprAYXA/0aOOxhPZzf2SfuONvw4sLZjcDJ\n3pY9wTaPLodKkSPK4TrWSl1STNx11pkhjBwCb4dwzDSafv7FacvxUACjRa1I\nVzS815Rgu3yCWtYspU2DOsnTE2Tuxrt5JcNxCoztu4CPEK0fP0zs5JFrklxc\nTQE2\r\n=6xcM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgN3Wuu3V/rSsjVJcpcJTgg7dFFd/ZJLKIpU26PMx8owIhAKMp0AHpNxWROOFxl7vwI2woI39LUfyhvrt2ZZ+sQmTx"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554110164.0_1554110166505_0.7616894541169323"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554111669.144":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554111669.144","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rm -rf node_modules && rm -rf lib && rm -rf es && rm -rf dist && rm -rf dist-min","build":"rm -rf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rm -rf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","build:umd":"rm -rf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rm -rf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1554111669.144+d587404","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"d5874048d6812bff3cd25ce819838a3ae6e4d212","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554111669.144","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-77M9qr16jfwoP8OJ9Xa68PDvdu60GCzdMsnCBxoRQkxFOOIuKqKC94nOht5bAe3RN9KfxI3NWIJkOaHEbXb6og==","shasum":"2e5dd2b016b1d94e33cdcf211d5e33a9e7dd2fa6","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554111669.144.tgz","fileCount":135,"unpackedSize":856782,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcody8CRA9TVsSAnZWagAALrgQAJdvKCDMcTHlf7NGEHSf\nUPLjP5CnUVW0D0IGauX6a4ycUZpshMQqK+4f3JO3qjDIWvxy93prgqmoSfIr\np1SGrbzMeo+KRIk7X/HKfuKT2813v+jUkC5yeiBPqTIQyK45zEHDzrv9KrWh\nmUVQ8zSSWDvsMdP9+deW4vyWkhDs+YgHT392SvWFINwsS9BZJKBXQn4uLNFW\nF1HGiFBOUCnxOwGeaULPMBwzj78fC/ofDLR4bAh6LM3+D7LQUuuAaa95MVna\nVZfDee6DIj8kzr9eHkP8zXSonm86pWk69kXW8sTjt8Dch+KBxoYxJQRepcHR\n88SMp0KVRPNJr6UL7qEhyQogZs4RxhQysbDoVy9Gp5/46Vo888pFJLD9WU36\n7/bhd4t3qxt9HhEduzF84mISgg8WkW0gy70t5aW6ervaxvWgVwPaOrd6Vk0H\nLwnBW89STniDNTA4Gzo15NugM/EBlCpkywjDztgsXir5n7eWE/KSBjJuXQFm\nCU6w4ruxuBLvSfkH6M58qhOnohgugXe78mX+j/Oswsa9l7IMpTA3rmcaT4wu\n98s0+KmFlUqaPPQLW1n1KTLOEmGbmuS0k8nNnQOM/Pm0N9N/JOSYWo7Mv1e/\n43jSoF7kvKmxSo17y9VEby0G+d7QsLi47zV8Do7M37v8dhg0NWdhKx9nvI71\nSHMx\r\n=ckaS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGFYFg/al83DruSZwAFEtxwV92kYMG+H5Dj/oAV8bmDAIhAIyeTZcXje7ouyv72U7ffrOwd2r0pId+yPLzrx5FP6J7"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554111669.144_1554111676405_0.9298897439690723"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554113874.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554113874.1","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.0","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"15be0b9dac9e72adcc8fa025c5fbfa8f773a2146","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554113874.1","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-u1b3ePL74VMZcjFNG1+OFZGsS+oEPPS0yvnpSlXFQzha6F/BAc6c3dybD03cFYcGX/wMzlRqagobzJiEXsG6XA==","shasum":"df6012d3b1677d9244c675234283ce54cdf81d97","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554113874.1.tgz","fileCount":197,"unpackedSize":433295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcoeVVCRA9TVsSAnZWagAAGjwQAJ8HebQ4+wjoj1w+zK55\nUzX+WUTelt8CnftvfuMX26o6JHDl1bsee7NwHto9wORyxGmN5lw691f/DGxl\n8mYjrb6Mx6xdppP5Or+IjhRR0lsJfv7AmRqA8QSYWAjoOWYzc7f1IncHp4r4\nWzIZjkVBTTqyiZmne16Qyr40gGYUIVvIBDKkNsQiWq5dZA4LkupFZvxqQlDQ\nA9oR3enDxhfATV5wzgaGOuNveCSqKh0ntqhaRK8h+KyadzGifCi/dTHv4PhR\n7J9ySOXyokBJHlirsTfyLz92e86zvR2VutarRc0IydftXo//t/mHBqL9kUnN\nUL1wI92H+BkE4aMEWorYG/po+05MblFNnpQXTnAtRPPhRbP4U1VY6A3Ig90j\ne6YeVfHRiZLbZtF569bTpnr3seaiYWyLygCwp2dx5Y7qevK9O2YK7jN8t+RH\nUI+ZcI0UVE2qbLJs1Fy/X0cWkuFR04Wr36sLmCEI04JiJKHoRjsl+9odLbV3\nlUCikg+UlUrl4/gPhPglyFtW5+l2LI71HRfVl6An0rXTISD96rHTbwSZ/5Do\n+w+HggP2h/Vi4Ouyt4nWvvjN0Nse5MtzySnZUSb+m7mkJXwQFe6CWftkCebQ\n4mYeu9lEt/syUCRHyFbSV6chmKRiBUpwUUQgk0TCOZQEKDZ3UAEezIIjeGCn\n7Yk4\r\n=8sSD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmO6fGIl/JXtzEh+LdUdDRmE6vgepfJEi9ekWS6fdofwIhAOwgwkpzL66b5W3qBWQ739Kh3YMTOpBjCXrqZFXYkXlI"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554113874.1_1554113876939_0.4360510577620482"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554114155.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554114155.2","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.0","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"6017a43f491a8377cc195a5a8826cb8b4958779e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554114155.2","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-4DoAip8IQSsHm7bBnchvaSLqs3/aP+AlVbmGEBpufc9Dc6EdASz/mpU0bXK0Hcszzy2CQDCvoUba1QZ7opJuCg==","shasum":"7aeb86a1e6f91fa63a8bb93c87e4a776b1895286","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554114155.2.tgz","fileCount":197,"unpackedSize":433295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcoeZuCRA9TVsSAnZWagAA2GgQAI3hJzqp6VcGtX6gxoZ+\n0WD0iWUNYCk7L0uQI36aFbZbrC5tROsNSylxrd6OPBiR56vTxgvoTvZZbF5s\ntrZLeyvasY5+OFCne7Wj0TIqJYv2ZHzakpVYZ1xCWp80R8APVPjIJLNNfnp0\nCKoqpz+M1vxG+ZEGkMh03YqsV8CJGOIIC7Cnu20lh2VqzG/W+PNhbFSmvqxw\ne7y7bh7iIle2PiJLHOTRhNHKWZdgdBBYmYNTqN9siavnvaGWkgx0Tpqp5iAy\n520WU0zsHsKEcDBE7rLUweC7StUT2zjWFdlPYYMHwSDzBBFNvJbsWnKo8AH3\ndzrdfdjK0u367aXLPYLO0+M0lJilsUpjrf6aJIZb6Nky5zgCj3+SOpWlgqUX\nFncrUI5yfZ+D6WFx5P6IWTMZhfjPyVnUlv3iq/9l6UUVfwG/rfgf4aReUO4H\nR2sVm4Yp67oBn0gGPwMITHhoRGdLinjD/RJ+/2XIL0gSXxXz29jJqLenLXqT\n8Hbwaye4PkMhyLurm0OjlwDZOFjFUSlPG3FRiZO8RBtNkz/FrM7vElR81/Gy\nfRGUMMMAAmInTapwqYnVP1PNgPFLP7zKF8QeUqTj4rOwoGiNC/eJdoV0UHgS\nmDUkT8/S5vRfLW7K3MTwR1TWWsOdK/gd7knpf+RNiohw34g10nqZnDFHmm7g\nfxYy\r\n=tP2/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXf03aL+Mx5Gobt9c0m87kN7yES2aG88QkkYronqNsZQIgJPpfkyOaj113WE+0yI7fxI+lGQPIUebDfjLDhlzgTIw="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554114155.2_1554114158194_0.9612606105181887"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554114287.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554114287.3","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.0","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"bf779597a1edbb609630d08cc054ab544b74ced3","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554114287.3","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-YJhgFsUYT8ow93cPZlcFd0pyGxEVcZ2ToKRbD84GsdsGucAk7Z630FbCnuVObyTpH5c5ngVmiF6MftSTl+r8nQ==","shasum":"0fc532438d16615ca1b57e7dcb34f2c2e16b00ee","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554114287.3.tgz","fileCount":197,"unpackedSize":433295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcoebyCRA9TVsSAnZWagAABhAP/2QGjwC7MGjhAyZPJf0E\nazGhMoQFjUQlZtx0KCCTN/hrmXhlvr15c/rWig5XzRwsoLQiZ9sR4WM6Lsmo\nMHqEGCd/hdqfVs8Ty6ewxUh3ldiwbsWrjSHgWY6p9pGn2Hgk8o9lH1/TWfxk\nSjTkfYKmiMTjURcWKk+p5VYUZvPLvWXq/z7FOk+Ybi+wOwu1U8Lm+jpFjkA3\nVVr7mX8x+xbSzm0DpU5JZQLdGT/JW2+y+FEkCACc3KSR+EAZcIm0hWjYm1xh\nl+7NxKG1nA10j27Vp5TeWrvdtGTblS2VIKoLxABOImX6dIMkhboSrVZWEIsI\nDFxjJogu3mKihBn9/LPy/eH7aNln+jKLenZU4jCI8jaRKkQ1VfvAC7ybD8Cg\neTdPBCQRW7K1r10PXs6qYvDxThsm5FbgZPODpgdnbiKs6ZRyuwFMxghp39cL\nG7Hr1EkYjzVPgmXW939mTMroBowzYOrtk/eRn4jmjlpMl7/MeA92mQNLL7Jn\nmHingDvOCUJC6sQVxmKAYflvaGnLFFyPDmA3CBAoNMx/ryXUs3qlhP1T/T9B\ntw1DzgaQKjjuqIMJ46EiqwTy7t9lPI09CdBJ8B8huleLI9sZa+Qbw0rOOMl3\nrWhz1HM9b/yObbc9C2It3RQlloeo+Mkm7b4dbG7OQ1DrRFGhsvHKGHJnW4L8\nI52r\r\n=cJD/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICcx/bSn/5LlBC4o7ZUsFByIbEilFL9rygHxTQabzh4PAiEA6XRVKNk7NxOHbKYQqNM51HDbKE62JKFJVggX5ATWrn8="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554114287.3_1554114290118_0.6032766092159243"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554116209.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554116209.4","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.0","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"69d7c2c2767ba9fbce1452145487662bcfde2678","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554116209.4","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-S4pgzrjP+UKrqSakqZa/GePZtE35Nu+zU6aPXoPHLNv/u0dStS+L4TXJkCXYVAnduyITr12MiF0kVtTGCAMheg==","shasum":"51ca4bbd9fa40f85508d286d9d7801d598171247","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554116209.4.tgz","fileCount":197,"unpackedSize":433295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcoe50CRA9TVsSAnZWagAA6ysP/29sfz/7x8ouKqo6Hd2o\ni8s62heJnqkkaFJ4mRY4bF3glMBYtUNcPlqpFKWrZH3bkn1WwHDWeC392Qpm\nP4M3oBV4WV0NVFAaLBPP1UbPhD2sY3Blj1xddw+oDRgNzFFWtITfCO7kppc5\nM1egOA4EfD3k1yWJbh39CUtLEU3D2e9KSCnmUX9FwA4aPCx3It2cB2uhBlXk\ntWoFGMYNsZoMoBnUlfMYNYpHHccBSV7Y2ATCL3Iak5MyDy9ZKqkWP0kfxhqI\nGrx2dvdiKrApsk+2HD6PXkDkR739oku7e4IrUXO7b3hK4Wv/DPVhQSqPGryx\n9MhQKow/zq9BkSiDMJEGmGLXrxLbM4i6ZVrg9XJ964ZJ28LMQG8sblegAncw\nD8OWmM87SAJdD3LlXO0m585Kft3D+mJUCNmzTVZuI16ukTId1B666AJWep2/\nroTOqDrTmGxrVkg4DrIBRu5Sce3h17Lscbvg0ttJ446FbpG4giuQSm2jhLHm\nBzvjRLMz94K4xIDT5eRZCxfLsy+uAYTYmGW7dehIDSZYUtUn5355KVMOLvBz\nVJ8LJgwqonq1lsC6UiPZ5GK+kZhmyTq1IVF1uiQu6ObVsmYji1Gi8tRiKv60\n9zG9KBlgGdwOfpLe4oqZx71xoaU3csmCwT+12Jw02EnLSTA96bYx8vgz8iKB\nGBgi\r\n=I1gN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHVMHyKXBiOMrCGrQpzgcH11l11Gu23yi9ZF0nqaUT4YAiAujGef4FARxhcSyVeTGXI2g2ZPALyI6ke6ax55vHKYHQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554116209.4_1554116211689_0.7086074353243177"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554118660.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554118660.5","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.0","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"1960797a23bd7ed595224e44ececf5456ec7b9b9","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554118660.5","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-DehRprmcsM8J/1xKOIUvHUmqc3WrtliEb5e6RwUPPF2wQVV2oTBvt98M5zjxKHfrAfbVYIQuK2HA7ht6fCflUA==","shasum":"5e53ceb7ada17cd33c7cafa11e90e20e4cfdc300","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554118660.5.tgz","fileCount":197,"unpackedSize":434426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcofgHCRA9TVsSAnZWagAAxRMQAIbxe1C3IrqdDSxgvaMc\nLi9hD+uX4vC5r3WvMV2bSOue2NFh6B+15URd81pXmYAFf+vpjT7Gyh9gJ95/\nvC03HCYDyRshsTb/TGxNwb/p107lEGTPvCYG1u9xONHZyp+8i02FRqyYTaXF\ntpMcXdGOoDtzJ8nwzkjUA8qn0A5aQXQsMFZMQe9DvguRI5WRfB7yMamosdIe\nqKYKRLm5zt0P/Kg84MzNwE68LEX27DdJxjfFfw7tWDH9pkWpb9F5b8LD/htT\njIRjdPS0t9jQXprOT/AQhf2anZS9Dj1WjHYuKAXcyyCqEvD1bA0x7J78P2hc\nVsMEO0FCRNkoT46sEqfgRL1uRSasvn/vom0xErw/dyV1qmu//V5KCV24qJEn\n4ywtpE3ZCkQ/dHdOwZEnrTJBSc4mgT5gnwJVGywnZyAiW4UUhYRCXC+InOXq\nzYJX9KZeqt6QchJfdu01tzX5bWAmlrf0DSFzO3gocBzLkFBQaM3St7vlCxGm\ntkaB0QfuUZL5KsP3j3errP01Mm8Tj5AWgw84teiMer7cxeQcupzwaH/G+K1W\n9gASjpa3YgHdtpcLXCmAbE0c+oUalmyW7Cbc1as0DTLp+kKBTiuXcnE41XnT\nssp0P6mBlYX+UZKfyRcijQDFuZoshTq3md/GUizlfANCYn/jWP8Qd/3ZJK7z\nJeoq\r\n=tNKa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3N6mxVmhyPWTOfWPue/8YTJHunW3nJt36e66rlOE9TgIgI0uCR3tC7FuSmcTgHxuFdBCGWr+w36o/Qwe+JUu33i0="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554118660.5_1554118662504_0.913588506423852"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554121691.141":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554121691.141","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rm -rf node_modules && rm -rf .cache && rm -rf lib && rm -rf es && rm -rf dist && rm -rf dist-min","build":"rm -rf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rm -rf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","build:umd":"rm -rf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rm -rf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1554121691.141+f87dd9a","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"f87dd9a9bd7cba15b814177b90046e02f6ed3798","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554121691.141","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-SOcnzQPrPzX6IVfzOuW/O57H38IA75lMoCpTjDDuozzP1NKH4ntwltLgw1Z5BFgWctjZk/MSM79f7e91mVeKCw==","shasum":"3c48f7406745fb99a503f541ec715afec9d7de3b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554121691.141.tgz","fileCount":135,"unpackedSize":854950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcogPlCRA9TVsSAnZWagAA+pEQAJOpl7Qpm0+bFtzsJYyu\nEgpkPtyWrxhdv9zKfOgnh8xtuGfDwi8Q6ZDLBbeCaDOK6KXi2FUvo/kNnMg2\ncj3WiJiv+vsnR/rTqCE36ZIdVSU7sTMZsk77mZSJN7zgDkPFxGfTr0UMAoNY\nan00SSZIFKji+Z7uxIuq1C6i1KrOZPUwbsQKxDNsaFB0C3YVhp7HY0nd3Jqy\nKGmRs5W8DU+UMT2u37pGoy0mqgXGyBukJH24uf9oXC+vQHR7VDqvhN+mcv3z\nPx3y8y7oLJW0OIln4vrh657oYYnSbq/Z2sTV/jlIhQEtjZOse+jjoMBGJOxb\nC1DtX8eV4OXDbWbS0PHIu6kULqMLmThndfyWmG61mtxUCzjxjNY/Dz8ulKde\n6mbYK7Z9fsm22IiLyXOiI+MhpLsu+ZT9cAvBW8EQHb2SB/2OBAYpa/tPWMym\nppDO35YkJfUl5PW9W9k8ct4LDCsSOJLSq86QeZ9Nx57XvU5zXozvml5l4rqI\n4EaE4Aqym5Bue991ZnhhvPcAWLZfzMGO2FDLGha2PTSeXbqJT9WW9uYsuZuu\nrUnS7ZbwQI2m3bs+0cFa2Y8bDI3fdANob9t6vp/Y00qwGNtjP2kX0ydTn2UL\neiJ1J7lgBNG+Ye/6eN74XJ2gMSST870yfueFW/xadiKv6/1e4FHjAVnx+3TW\nWF7v\r\n=EXgH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHnOD0l9F5UgnnsAuyRYwvQ2uFWWhA0Q3MtbWdOSvZXhAiBmDGlif34Ll/YzkByr6bPm+6HjixWp2n11krVcEVAChw=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554121691.141_1554121700534_0.4002233318688744"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554123164.138":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554123164.138","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rm -rf node_modules && rm -rf .cache && rm -rf lib && rm -rf es && rm -rf dist && rm -rf dist-min","build":"rm -rf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rm -rf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","build:umd":"rm -rf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rm -rf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1554123164.138+e670e49","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"e670e49cbcee838344a3be200844779126bacf82","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554123164.138","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-LgDPVr4HxYHV/x15BY/QhkF/Cy3gJARMjnPJ+X7EUN9ogmwkVqDpzDfsbXm1Zm6tUyxRj5sOtByJhfMkq6/4kQ==","shasum":"b5a4e8f3efa9c0330165226713951c5957db0e03","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554123164.138.tgz","fileCount":135,"unpackedSize":856796,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcogmjCRA9TVsSAnZWagAA9O4P/0NZoK2ovkc9kxuaEZ+6\nk96JMsoqro3sLKa3L9AeTwOidYLoKpyJzgciw0Ae9e436Rkqbs3PMQ4oOOvT\nLhiZg5xkJvWYGN+MXGirLKoAgFP9PimByYaiHiF0xv4oW1NkENxxr4NziGkg\nPX87E4doSEZqR7SPVnrI99isAtUsNG1dLL3gkAb3oE48jYmaQqTz75a5b0DK\nsy0MU6cF+1gz5Z4bsQHG6iwLzV9Jdedu739mDIhpAkmKYMeCxzQdpnXwiZJ4\n0vnNNa8JnpzoT0Fn110K2V26NDV9259YjP+HWRG9OCBLBJ2r1cczW2xyohcm\ncUok+avSW5casjVqKLGA4p3FYXO6zR2p6cd8rk+0KC85oTwHgPThCCH8zyTK\n4LdQE66dvK3PPxa/yzmiH0cXwZbVMYqZsNQ6OOWtpit1H7DE70S+N+MqOWXI\n69hMsD0PCDMookRQJMEBSf5ptpF5cH1IXrXtGqBsJh2PfDTfQbjuAtKt4Ayh\nEpFxr3e4AS6QGkEGqV2atpzbEPTkludInRVxT+KcpXSQLkqLOnxAuGlEKO4S\ndvlnP5Afi9knNfjtio6i/O7KJj5LTRjPB+0CZP6RXLWiEF4SiMU0VVSQmfOQ\ndyZKmBFA2ruMKBHxVz3fJ4UwOm4DxZiKZtoFtK7So0SRgu+4PrEB5ByE2h2R\nHW3a\r\n=Lp18\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIELOFumYylUrPvIRytoAXoNMkJ0dHd9WBfLLpFZUPtjlAiBBnScI4i1KgDJ4a/xrPZ8SezSAivndKWIFwUvUlcBSwQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554123164.138_1554123170939_0.7712180887862718"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554123288.6":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554123288.6","private":false,"main":"lib/src/index.js","unpkg":"dist/index.js","module":"es/src/index.js","types":"lib/src/index.d.ts","license":"MIT","scripts":{"build":"rm -rf .cache && yarn run build:lib && yarn run build:dist && yarn run build:es","build:lib":"rm -rf lib && tsc --module commonJS --target es5 --outDir lib","build:dist":"rm -rf dist && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist --global sc","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","format":"yarn run lint:fix && yarn run prettier","lint":"tslint '{src,tests}/**/*.{ts,tsx}'","lint:fix":"yarn lint --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.0","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"4294904fc1214a4432d8c87e4a9bc9955d633e7f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554123288.6","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-S1RPuqy4Ho/eDRY7x33Ee4UGndqRQuCCp/q+Pf/7l7b2mCjfKxbQVb310NeUSGCntDsJF4Xb6B4D4sgl8zIpUw==","shasum":"2c5a79b409f33441e89319b051c6ecb9f31efba9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554123288.6.tgz","fileCount":197,"unpackedSize":437359,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcogobCRA9TVsSAnZWagAAxkQQAJXkbhp13i9n2eNDjgG+\n0kzaYrwFySpUveq790HwLIQ6hJHo1kFH/HyX83u4vVBt9YGAQAaUTwPs2ms0\nLbIEySI5dzhP4xZW8xuED4yeVxtQHr73iv/i5kgdsr8CNeY+bAp/AaFskj1G\nEHJakHrb23PXN81ktXulfW+gtWS8I00R5WQw31BV/jVeFTcyinXDbpsC81YS\n11iOWrz7hvUvKQickINW2kLKF8rhmZGHH1Ln71FKsH4AkVG9OdYHKeHWWu4o\nqJ05hZbfl7Ywsg5wglHOc5K164CqO8LYyCgGq+3G71dsh5Weh6i59JHkaEjB\neAJ9/zOYPc1C+O9pTA2BkGE5AvZj4wPeNJqZAZS8MsjE9PBahgQAodlxlv5W\nXWZBy4Z1WkyiqbGU7HfMeErynuAUbtuAWRRFkrHFq2uW0uRnqIvdcknEgQIs\nVW9F1elavb3G/Fa1ii2/E9NJEi2+RpdXa+tjhGwKsYQV7sNyaCumfW2GyFeY\n+hhWdJpqvLk+pizEz1DS/zF4QKazJ4X+OMmlOpLNghVu5x74PA9u5ElziJRu\nyqIYSdKGcsBRdjL3HNLsAIIptqYr/Ft4nO8xuQHMiJafq7TuIdFMQy0za8K3\naOVqmgc6A9ZnL8z3n3po3kLnjo+WnmdMErOwtVBosy47OQcKh2+R31bBRJG9\nsywj\r\n=qEIk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDIImwtzpDYgRjush8vwDJa4pwx6MjIGgFyZROOm+0pBAiEA/o7mQC5Bh02qPpTK6nOIspXnKWj0rtdXlhDZ0gi9d2I="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554123288.6_1554123290909_0.49702922578766673"},"_hasShrinkwrap":false},"0.1.3-alpha.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.5","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rm -rf node_modules && rm -rf .cache && rm -rf lib && rm -rf es && rm -rf dist && rm -rf dist-min","build":"rm -rf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rm -rf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rm -rf es && tsc --module esnext --target es5 --outDir es","build:umd":"rm -rf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rm -rf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"7c8db9053cbdb43075e9de1fa36f9a9733a367a8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.5","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-I3cQYa26cqAU8LQ9QufcVblJDuU01nO4AgVZDFp5HxeeEEuHMu+N2nmqOlF34MytCR+DmtCaxjor9QeGWa38dw==","shasum":"03a76c537bb313f675dfdd426fc9006cdf9ead5c","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.5.tgz","fileCount":135,"unpackedSize":856754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcog2GCRA9TVsSAnZWagAAooQQAJJfIKRFn1clFgcBGZCr\nsrY1c2L1iifdYd4FHwapPXUE103ZPH21kNi778dcCRxJbpOoqrHu3KJMUsEl\nTJ5p1q0K3L5z4ceotdvjgX+xFmTyPxa0GJQWc+69NQO67A3W0FN1QM63r5tm\nMDgA9o4gOO68PfCYXRE6vafgcm4n/hiP6YsBMGXFxRJ1v9l/naDcm/AJMJbY\njxpqrUan0uohzeGrOqGBXDlkR/58oTYMM4+W7a5nr3xqoJae7xPTLIJRZBCB\nL+tJBCtClEY0g1dLRDRbEzQkG8Y+pyVEY4AMQTqGG6w5FRScYC9xO2HpAYTA\n0Upf4hzXPBFwPkPp+5rHg/dqVrj8lvfBquu2HbrPBgF65YbzWjBBqggeT4F2\nXF3EHqwtvLFxVZGxwEtXp1DKrQf+hN5hkoNESe/GDhuMG6ZcSAaAytoaNBgk\n01t+c/zGgmXh10QEYwrYjkYk2r7VCo/LOpT5KdxvEUG4svQn3Yr5azhkfoBv\n8krJ1AB4L+p+PySE2MpN7Q9UsTDXIfRvrL5DUbO2EFh0fOvTW8267K8CfcQ2\nO3deSzyBbsUo7FgXDjJ8JOWLaBLavQS+nZ0gVHMlkA8tFnlz95gz1TY6oOHF\nJs/N8EuwzG5ceVdMOTdCIz2Z9jDe9uUuF1M6qfIo38UdbuWYQqrYT7xXHMnZ\nE+cN\r\n=3kAg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICEntwIfV/aLt9PjWe26P/DTF/WEqKqXVC7aixXiSjUoAiEA1Y3v474oRetw+/VKlyDsEcyi/DiYy8pigLUaOQJ2o8Y="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.5_1554124164772_0.446685403657074"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554124803.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554124803.2","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1554124803.2+51f4590","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"51f45909c56a61eb1788345d24515a1f60f89eb0","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554124803.2","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-ZTydIxkHFRkRoIRX+xve2KirtuRyIlkFgm/zQScdMrB7QoM3OtUdC8ogOY5uOoFVQLeKG6dUCQV1tiSAF/KWFQ==","shasum":"c6198b3003a865f6890586f22c7e617974414aad","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554124803.2.tgz","fileCount":135,"unpackedSize":856802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcohAKCRA9TVsSAnZWagAAfRQQAJslStZ4P4FS7m8rPQNB\nS6dPV1qK75LXGZFJ5pjNmmyL7n9vZyH3acvec8+7gP1c8YzAGR3/lloIySd0\nNjCJFtDjadag002+oapiMaDlKQkLpZJII20wNNTR2EDn2pWuQvIiDCEXbel3\nOxL3wSBjhFY4QPksk3hnj9ZmL1QogHeQNH9n9Vu26rmQChfFmqx20IVIMgvk\nxDtvgqxLykVwGiuaMV1Rarou5UzAjgoGOU3cnjulSd7C358GwMLxEa+NsL4u\nT/Wpd/GA05QsP1K4fl9b30F97C0qM8y3XTRqdoFV2oCf+/padFxRAnCOZFP1\nrgpgot0x32scnOsajhT9q3kATnPwIyT1ZZQ6uSrJ38ChIspUXCiTIlNOieJO\nFi9o8B4gVzwi+o0Q+u+p7tGwGlp5M+rdjaN8h4tnUz9WK/F9um6uQIRrQUBz\nIhMDr55lk8nirXUoaTcmsntLab+HD4SA81UouZ5q6nllS5cyUN1FHvj3nqqu\n4G2JswBgEA/cFyQhGIw6QkhPdrDxtWcPEM/ra6Q1OxO+ztO93Q/I8WHE44lf\nFsBdHEULHH47eEwqYJkpL+M2cTphCKcZXWu7LwyEsd34g+dSMKkFj++RPQXY\nPEZqJZb62up/Rf9QG24DBihekm+lGCIqg1RJwjwpVyotEOcHDaiGVmn5dV2Y\nCORu\r\n=UyK2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHsMYruTmUbQ8+eiwiyFZXKuhmzVMuUG32UtPPkBZ/zdAiAKfaM7cuDQiQ+xuKdz8lp7vyuOU3ovSb2qoa/k/iSrZA=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554124803.2_1554124809752_0.05538731647455841"},"_hasShrinkwrap":false},"0.1.3-alpha.6":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.6","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"6f7aa9e26db8d9cc71366cb597d0fd060196fbd9","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.6","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-/3zaTr9Z70i+CgheTCzQnUxyv/uQh6Uqt3Il7rhMF7juDYy/Bid3jjXxBm9BxjuFilVTmd5XN98diVByrXG6kQ==","shasum":"7bc057a5d8404d456c452a445f9f289eab072adc","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.6.tgz","fileCount":135,"unpackedSize":856764,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcohD/CRA9TVsSAnZWagAA7SwP/iFdO+evdwsbc/OxgbsJ\nPPAd8TI3jko0j5EEPOCIMQLKoagzzUuu+nISAE1t9kjVBgKmohqmrK5ILIF7\nLfZ8yhgyl9kKHKqJBusLtPKBp9/nrlGh68+nwQr6X4Qy7R1UAP5iwObYt8Hj\nr8YA00YQY1t2kWPF2WekqxPrtWSC9KiWvRrRJyFzxhJjbT1noiWm5j83nVgM\n5llxsK3bqXzi7tEYM2/mCrh9DAu9oXaqdc5WUtnJZgvBd5mN+DEO4U5HDCdK\nyiQRaKpbj2bB4TbjjVFb01Vo8U1pmiQ1qf37Xhc9/unL9w+IKXLLn5voaRVI\nykwYmRzwdTJ3C8b0nyx3KTrPfnhPuY5noW+3tfmUphXx/7eUz+WfgSKBGZP9\naQKQrDQ2atkUboA5t4LL2cxryzr86uyi9IOYTulviElGptK1kwCn3LL8Vpdi\nBYZhFSeuAi3FZvc2tPchGAi+eitnw4bU5yAFxFYSpOj+pq/WQoi0Xclfoqh0\nBloZUe++18kcV4VFKPeZNmQ3g5tiA3aCtnx86CviLlRCAu64XcMOYOdiqwJD\npKbl0GUqii5tXmb/BlJIfhe3Gb385Hb893//Kk2ijwJLnSLO6DukvbS4rQdJ\nfbl0/gY3IzuHqihraLyryEHsYtDJqO2Jhr7piIja2HySmlfHiC6P8GPHHZj/\nv8Gn\r\n=9fTb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICRU0taDu2idDXCpJ+xzl9LuMML7pWPUdG8NRTiiycmLAiAUaV4Tpjoa1IO6Lzwgn+do9r11mfDFBJsjPfD6srxEpg=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.6_1554125054333_0.4138432531502525"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554126900.9":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554126900.9","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"12e335da63414c785c869f50eda008f36a9f5672","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554126900.9","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-BpqrU5FTC68k2liQvpH7ej+EoxmyxBTWOGKc76ZGf+rjDneAdrigj+QTWecQgfz1UhtinaKqMC77VHjMHWFZYQ==","shasum":"420d2a89d2652e568ff0c90d892a67bac62cc803","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554126900.9.tgz","fileCount":135,"unpackedSize":856776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcohg4CRA9TVsSAnZWagAAeNwP/AwPI1cDenceYN8FUh2R\nirC9G+kIH0c4kJ5iKWVu0CabAMfsgtsvj9Q/qI3fQkLZLouQ4ZLGL4iiEd4A\nxuK568NVITmnE27V275wnoJkmfdY9jK8LhkR3UJaS3gAg66Ibbs6nHdI/n7i\neK2m8Y1NhaYPbQrrWnl+62U6ykdGQQEeksZcP4c0ISPAzY144yYxwWDIV6J5\nf10C2esdz1VSkdha4EgNV5bK7j9MBKVI1R3go4HnCFeEfsWz7nIJamV9zYnF\nS59gjpubn2/+hI/jFdIrdE44DbS/J0gfyWFBFjRrlVAafBZ3nYjqtGYDK7QT\ny9BNweM4LmPdLY9pMdXILY1UVnwx64BBWtXfruMD4mohCiEKx08VSAV6b3sS\nx+IchtEFoFMkRiimJdMept5k+JrKfm5wV/ZtRWMQ8DNRn1h3EfcJkc1m/2in\nwPavqbSOHZR3zU+GTFz9EFQB32ny7sW9jhNblMFCzFzTkZSvsJeWIaLvcceQ\nCRc094/3DNtgf8hjiP5hgtOyzU5GVAC6gc9BA9wg14crqG24DztiE0Mg+3bI\nmk+bUQnL5xS8VPcPI4SHSvKoPRRftWZJlkAPfdP38LZQDZ87Te9ivNpW0JIw\n+F7YywZyN42dhWdOxRY0I3On8F0ZqZBuzCbZLG2/GS+Z6LRjQOV4aWCgspax\nOjay\r\n=XZD2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG1ZqEhJkdKgcRSdBqlb69wJNg6IZSFJCLlQEvSg+Ws5AiEAx7GucxkdKpZBJ2ypFxn5rWtNxTg9ISlSlFP/EC+M1wA="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554126900.9_1554126903221_0.02101330077858865"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554127129.10":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554127129.10","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"a5421f07c374403a1de6870496effaf75d70bb0b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554127129.10","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-lV8B44cUeEzjzq/uJymrU3gd/JNUoS+dSEfqe7XseVhU8j0sy32EtQL+uQwpSSzI2rpEF6T16qELDP/u0Or1Rw==","shasum":"c2328d8993ba8214208baf8d453446694dcbcc03","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554127129.10.tgz","fileCount":135,"unpackedSize":856777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcohkcCRA9TVsSAnZWagAACQsP/3DcR8tgrwvMIFxLdcfW\nUGwgzokUpHC9RfgrkLlMaCLDrg48KwHpJxpQwAEoVbG04qrtaVuHhmGgFPhF\nsCdGfeyL2ZgsKACyfD+J8wZeyz3SoWWRFQdyQtNA9VqCrMN+vWOEPTu7ZY7S\nOHS02e1zqZat9B7+fSXPcLJ5LNllHyN7PQEn7eYEQ1moh5ovPCrDQ1XFEXle\n3WpjR4FGwOVlw9FbHRB2daQNKqeJYjRvVaAfJacpNN/0Xa8UeOrR/miSfdJa\nIk6uSL0mHq8shPbkis+rqFfhmabKnAMugFs6xz+kNuIUR3n5BAjG7zpr4h3f\nmcm3tE3qLYomFBljl14YPHd3osUF+oUZucp9O7qYWGeCGMKR6LRDXPkPJpeR\natEZ9etuZLghnMzMMB5k6UK/cqpT+WNOZs26eOOGDUWY9izJR7zgLoCkp6vq\n/DuemWBkYzYG9DJEwxddndvOpaXrID/HAMjmA2jxol3TDlpZt6WYkgrL2XRW\n7KlsDJGoIPIsoRIC6mRg5sQTzYU4bw3KO4qB/ybG1Ve0uYFcK5QsdM+79GNM\nAoStkvkOwm0sGw2BtUNMws/9yyY9cM7vySPH5h/XqjzO/yYCgb2HB+/LDdr3\nN5oK4QkNIDlRi3qE/yFqZZ/VN2DVXcBQWOxKrhN8y/Xi95yaF9jf1mJEyMKt\nkL8v\r\n=2c1U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA8YHdpzyYfD0aBLl02dE3G9IrDjlZIE3s615lxJcBTDAiEA0i/a1T9a7HZ7+zMBUQZgErLvTxV8ffHKdO9G1aLnyik="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554127129.10_1554127131805_0.39960248354456285"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554193810.11":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554193810.11","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"9fdb01fc09c3c131a0f48a92d35c31e6c3905093","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554193810.11","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-NrwzXpzA1vIKet/tP3xCdFuGoz0VfIFP2TQwuQ+3vgTQbdpTPAz4+N7NcyIfpyZhRlv9BPQPi4glH55xnso4uA==","shasum":"7d028b68bcc1b97807a02d01feda913d90e1c8f1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554193810.11.tgz","fileCount":135,"unpackedSize":856778,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcox2VCRA9TVsSAnZWagAAlNcP/1ZTnwrUVZjBi7e5q1zd\nAzIFF39LDBZTxCQZ1R58iXLiGNufzgJla1+n17cUrcekZigjOItp6V7DsHXi\np9Oq4V15fj+ikS78ccPEq7upD1lWi/nmTfNKdB8lf11isxokhnmNieXm98u9\nXPtYTos/aYEeKWNR8jaGd3HBvO8Rrt2ewfx0USQPeVTbyol5c/+NaTKNHcM7\n29wpbyVtCRgKB9vSHlGSQp3fByywW70Uknc+/XPuaF/Jj6SuWHyF5oH9pzLt\nZkmJGm5bUUojUC4VAWIsFifl3jEuqQS9CnRY9+r79kMoonKy8424N4yab+yw\ny8TOA3pNLni/ZGEmH3Owi+QXi0JxRGJhyULIh6CHOdl3tjLvqAqBslYm9i7Y\nIOn0zCSb43S0H5YkEg0J10g7rJv1ZL7X3rZB4GjBcPsGYtIXBp+CdS4iswWw\nEuSu3gcBSGSH8QO4J5LfUlDxch2dHd8UyxU5QL+JFV2/sPJGVsz3o9+QwWPT\n+SUgmX9v0XSNiT3NFj4ZPbBw2dc7itde2E4kSnHD3oo54yiRnpgmCsSr5opG\nC/5URHOefNcwQkmkAMT2vk1gZ0YzfnJqgzrfcZkNIlm1Ymd541PDg6b25RrG\n1NR6pz2FPKMMlTbOOWhTxVlHxXXzwVb2bBO0W5U84TRup5K4XBSc9JFFQF24\nT4u+\r\n=Fdjr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHsCmGB/i/WWo+ASsvFnif2VZu/HSBECdnWyYAdT/h6wIhAMBeolCnLobJTiVrXPQygq/K81gzgmcForkZfBLqqmUK"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554193810.11_1554193812877_0.05962897432396441"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554204953.15":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554204953.15","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"fcbf3f37172b029c3d0b51e5e69bc4c02be79388","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554204953.15","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-5kAsDv3uWrbma0JE/YFVKr8AmAZluFtc+tQvLIXV4n1aZ5c0pvTNlamUfO/zg6qSKGyRoWq9EeoyM0daKl+YGg==","shasum":"756c2cfd41ad76a7abf3e8ec6907ee62b8751fcf","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554204953.15.tgz","fileCount":135,"unpackedSize":856779,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJco0kdCRA9TVsSAnZWagAAVEcQAJwiU1xVjaKu793fZbqD\nJYAh5dTzQCJ0VVZzZ6tttFFJpLAAM9QYqEW7V4qdVdL4CgO4w/+zcD1vU1DG\n6WhGRMi+bgSW4U5y9NIGr+HSCSjP40NFE0aErmtJfLUwDDY6NkNaYqT2ujt/\nBZfP8dsQZtRsfsi+wF6WOQUbLRGjveLrwWBWleRx7rvo+UcRgxSLeYgS5Lmi\noNC/pveCbRz2S6cHi2kYjKbvaaI0e4soMYfj+ImDvN3qvYYAgFXDXQFzqFw7\nOkfMd8YvaOkHG8YLAFEqmr0ic3Azrdh+L/MFxa7qvSsQI4eUbT4t6iDXHRbt\nuVkI0VGjP2plmJePp9jQaZydvxMZaf/d2ly21xYNGlCRaO9n2ivzMnMf4Fnf\nxQLxKS5MbMqlODFzpR3z9ktl9b8iBQVrWNQ11CkjzFt3j9FU1C4E35Dti6+f\nPeCur6by2Pqv7CAVxqoMG7cfUU5QpGc3Kxy+5fEmsJxVLEaAuA9KDXrJmP/p\nyD+x65nl3oD1Mnm+9Q+3gLR4IRj/EzlAE9kmVUxE9mnpfR3iTgrjri+6jpF0\nheJ5jwdjYF5+4t/vjtnuYeAV2T7KDAm7ZPEWGoU0TTIfpL4yFjsVdeutEiZJ\n3vZJoLn6if4T5FMhyV64ADqwjJSkwIq0UXLHIW9I61F1OO7SyDBtaR2rTuit\ngDzR\r\n=66H9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWVLB2bdD4Yer6/pDvTpzca5zIKUCnLRk23Ybwmd+yUgIgay7oFb8VLzTb+XYBQFKqda/7Yxaov7YBpgOzSUtkbhE="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554204953.15_1554204956453_0.1444306873525707"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554208063.16":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554208063.16","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"5854f61007b3eb8eb4bee75b463ce7fccf28177d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554208063.16","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-BCdloefwXrV3iDYiMJBR7J+nuFAPHH1iJwehJJxzcgbiWQuqLbpot19eHxnjP3KK26bwmWlVRrlbaAPU0gayBQ==","shasum":"122acc21b0f3f08b4ca5288a4f9561a097bf2be4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554208063.16.tgz","fileCount":135,"unpackedSize":856786,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJco1VDCRA9TVsSAnZWagAAsT4P/2/UUrhgtwWq6qObjld1\n08Dgg+43A1zos0oJQdTbjKF1+ovo26pjhkWI43fXyvigz2MGHsi3C3d++QhI\nJcR2KRLjwobj34o4DJb3Nk+pUwCmbhGFCh35WOMlf50l/BAf4UJwwZz++i0o\nNsj2X//Xj2bkxktbzlKhbKQARyDIX0eEGhH6n5xydK5tZkKQlUjXYfzopbMN\ngeOQP+kjtzSd5+3OZr0PDw76zvI7aX26hJKElK6/vhmG7Rt8seLf4aTdeKBf\nzAAmS5xDGlwJIK4GERKeznV46+J7rkRsSl+I28SjEQralimuDjCJTC+bNyML\nMNQow/+RAgtMAqOpg5joYbTn7VTq+TdcH/hgMx0xbg89oJFbdJDIG9tfUeSJ\n5fjgN4bTneyiQUY9gV8q0k/V7CQtMPPrTbNiNzk7vg4nRifxfnS++ksIK3Ae\n4h3GjtoLn9rMPIMbssse48wnFYtk7BTK3dq1tfGZ1+6pGHLZy24/eADEtgMI\ntyzPMLcW9GyrjPwWkDgpO7sZf7TarW2ntI+d5toC3j33pImlKk4VU0Hq3zJ8\nEb6SfLKl+PP3/Cjs4BpNdYmv+xAz8yuuJEES6mIm8gfpFQ8KQjnX2nML11LQ\nAFVBS2iO8ac1TaFfs0BmB+88g5IkF3GukswQjUfruyAr37OUoQmfFwQHLUKr\nORUF\r\n=I5a4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7o9lEM4B7SvadLBlK1zAO3pbHF2krxzconhj12xNThwIhALJjC+DZ7r035smmHpShU7cg3VWiR6MwyrCW3jtIrm7M"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554208063.16_1554208066500_0.6431066174068047"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554214232.17":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554214232.17","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"c53d2c13c8ff7db3b3075ca97667666243e27b5d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554214232.17","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-qgQleNTgcRQDTe+CYx38J58ZvUvSL9kwOR311jWxBz0fVVUGdK/HyJkFF/POkaUY4IDx2b7hd0JmYMyFt+nHZw==","shasum":"9fd84d3e7320a086ffb6daea7b46527fc016565a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554214232.17.tgz","fileCount":135,"unpackedSize":856774,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJco21cCRA9TVsSAnZWagAABVwQAITVtgif6mGBkpyJ9Bgx\nvgB6wAaIu7K+JmMY00YCAPO7SWhY0cqJcr/mYilEv1ZrXOUV8LvV/lFT3QEX\nqthuTStTYzeNjNs0S/DF4cXu8NqLORGNCMg3/ltIJe4mwp+YUeTncXWUsM1F\nSl3FTjJVzdT1caFXM+dcu9WqMdfFZw8lBFuIwbxZozV0kBq50U5paq3YIevw\niweA97BBMHn8Xm4jtJO2NWIU/pAvi4D9sZgv5hqW0HWoljTbVFajkOC2l2pg\ng9mB6KLU/OqWODsse9J6bdMlVWS5uy8JXHhq7aiAtRgUjJ+iQoZzxHqS5sR5\nJfchuzswA4/bmZ6G+j1NdVA8IDT9yJ/4TloqgIYtzNYeVz9QZlCkgr6Tbwuf\nB7qQfWqeSIFnD1D76X9m0JGxHf+ZpgG9HxuZMFi8OjgMHcG6Ix8Mm+FPjz+0\nw/1DjIEnZNbGji/TaywWhiUbZpWUgtrsGTWgIgDfoMpxzm75yilWHOe6KqgW\nUC5VlTxC60EGbrGaPiy3OfrL0gk1iDE6w9DengloY/eRyL4wvaUGk8+PcTJ4\nhxw/cEKCUgFY7hIYzNnIZosUtGegl9qI7Rzsr//Dm8GkvukQrXTr2kSYFKu5\ngkgB3xFpPVbnKqf2FbM5O7SInNG6RqpnEgxdoTVrlGZE7xIYTGhBj0j/6Ko4\nuiZ6\r\n=vb2A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3Ys9MTjKJxbUS9Q3usMuJSj73bL3pWBxd3bcK4GDgHQIhAOEkZQO2Ijya4DI03o02LOOv53IZAJdmTOZLZ/kzafnv"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554214232.17_1554214235389_0.39848121234119227"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554286254.18":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554286254.18","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"a70627ec661fb688347a931ef5d8f3e333365bb8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554286254.18","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-aj4l/8VfArV0oRSpNHT6jA681vv5FceBHu4fIMJHIEwgIGff/Bxka2xMhZdwmCppo4VrK726GbfSxlQZ71abGw==","shasum":"4676cd141bb7ce82b4e94b42264572a0c866c00a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554286254.18.tgz","fileCount":135,"unpackedSize":856776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpIayCRA9TVsSAnZWagAAUKYQAJsBGV0zMlxLhCO74crp\n29iNNOs8MORgNE5x6WikhtvWf1eHRha7TD710w0HtvjN234WeTFiyKZJherR\nkaICDIDXRcNLhl2+0fbt8q9Ol2QLwQGLBHwKZEb2rMV/2s9UM3ceNkJ6aJBD\nGd1PKIHE3lX6Ssj1D7ry3l0+TzCppe4stOc0i/PRakMeSBK+i6fd1RQGOlFP\nsmWFMis2GUGCXp2O/AQDLbub4e1LBck8eKit+rZlIoXQY1C5SQU73C8ihOD1\nhb/4yZc8Pz6XP9m8GSkUYPPn0UEuixy8us2aayvp8f52+09KQhOmpWeEIEno\nsZT2XIVu6/pAe811fLtTI9Z8U0jtj91iRdRflntYzvpOLsazdgWOh05WrMq3\nmZ9pmW5QXfhFzsbY7Qsi825lYJ14j9GRMhf2HxUvrvTDRCtVctymhecnXGkC\nWNsShIbketaG57U4yS7VOCTDAxuTUUOAGNErpCQg1Mkp2kSZAsNhVqalQ8KI\nXHVPyT0dfus6NXrj3ec4rXDG8RIqUAdebHoMir6FRJNibezyHyiXe/+RncNz\nuCaLl/+855qs7mfV1w0xQwUpqxsFYkBXXOxj7ZKW3zBBbXD5mkcplYDeDSaN\n5JITP8zmbeuC9WvfaZOzul/pQRh0XSXcEGJCgOCV86iLFexLNEUP2icJc12q\ntDyM\r\n=rkjt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHu+5rs2zZHxAnlWFHF+nxotTnLoEncLRBW/qz/mbpWQIhALJsZ8p8POIRE/hJfLPKVZpjDO8bFLXZrk7d3AjUYmFm"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554286254.18_1554286257683_0.920895278473463"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554291845.20":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554291845.20","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"d3f4a49f2e1308b4027af1f74a50a78199025d55","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554291845.20","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-J7G3dOfAJb2H0QssrJT9wMHBYVwSzMcOyUzuWaeUiXFRRBGyUGUShszAELAH5Ok8TWZg9q0lWGtRSJkN+aV2Ew==","shasum":"a3d9fd0adaefb977845a93340f4cd279e52d7bc6","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554291845.20.tgz","fileCount":135,"unpackedSize":856785,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpJyJCRA9TVsSAnZWagAAfzAP/3yXM0JcnwE504n6KZzv\nmT9E7TPyRr9Pt6sGpTbsuW+mBJQBXBYFX2AIWOsNIQe13TgvDrZRFW+HBwAZ\ngWy6fzTCNs+ygi/RfleyaWlewLuoMZwPOsziDRzzaABfc0aelxfOkxpEl/MG\nmES8juPOSd4mx9kvsEUU4D7SAGOSsoljs+gKdJU62DTyJxPw9U48HeYGkgwm\nTa6XsK1WBCJ0+ScVH9yRHUdO+zIRm3Gpz+qiMozp1vf/cbzcMZQEhjotg8x4\n8W1vBHu+g9cnUIoWi6SH/t/EvP7d0gSer63qSHCY0M5rL0doEvhZW9mHSqMT\nBUlpmTX2tdBdtqvOuTfvLPC8zu1IF+31FI5xF55TqFXRg++1iTMAJBiSm2qc\n72pyLkV5Jh4E8T3aBgRvouQ7IaCoiTmV2/OxQuc57Crkolh5TBKHgJ5qOxuL\nB5sr+PedEcQ9hho5JvDO8eUMyjAWThaXn8RniL/6XR7S/8avS3gLPYOpjriO\njdVSepN5V+Z4eI0tBx/N+y97IN+VSLrdDbzQBiPjFFzq8yVHHbL42DkTdy8a\n9XLXux9xp8DdfCvqjBfIZKwpXMrh/DdAjZ+HOIbYEHivnG6iPI5pHxJ6KIgx\nzDdb2VK5ydyhdoamZBzmCjwjlB3oz8RD/38413SaNHv3guqDjOGrbHrQ0ffM\nyRT7\r\n=Sr5l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWoXRNoz6n3Sojg0uX99a5XFjihaIdU76sIRwaSpfTOwIgTWkFS8hO8EtxEMflSaPCO18CbqMiZHYEeOJ7FbvH+Mk="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554291845.20_1554291848293_0.2461554122978189"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554366721.21":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554366721.21","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"b747009a833469c80f35ab3cba866363846000da","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554366721.21","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-yOdLBX4rYZFI22ELDFXtd0yyaux71q5ywNXbXQZIJ/hV9tHSsmLEtnqRt2XBsqZhgkE/QmZ7QnLxOFAfKuMEpg==","shasum":"b1f4492f199f095261ae2c5f15a8dcca7f549a36","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554366721.21.tgz","fileCount":135,"unpackedSize":856784,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpcEECRA9TVsSAnZWagAA/4EP/3uo1I9OKF1K1/oUqkZP\nMit13xn1G/haeww6/WQI+X6aNDmPGtX7oS8wVrOSG6rpYxVmBRAp9VopUHis\nV+mRq5Qo+2FAf1UV7Ywn9niIpktTLmIKRUE47UXKgJopmXO3siOxawkg2COc\nb9mJ25qOGIWSVz/bmFOUttDubWclq9UOyCexmaqEoaMkseHgus8yEl7Elp6W\nfgMdEiXKIjR3BzxzKetnG9266Xt9S9XUwPwOi6A5JQiZ426CPeZGydjB83dp\nc7zX/eQ96/MkYm4IOYtWh1nt7sznNT8K23pxL8DNPXukm9ygtCararAasasT\nF5ZJsnixfh/rnqDLWSOvV1wFzWLNsvfc5ewvLklcyxoEsuiLLmBxQGib3ggA\nmM2G1jO/vq2CsBIVBwZkB8xiu9xuRpSwbG0bh5Rfy5JAFif3EdWCBtUi89KK\ngfYgeq+GdfsgNhHIiOIefLWymZz967YvT2c2jXDkYEEjTleQK5i+Zd2Q5EDD\ncjkXsZYS3LIETWVnQmnCDugKfZq+YVBhFRsQEGY2acBLnykdTSpWG0yjgXPK\n5vvcZo9NtCXxk1adHyKodTIxKkPXpWgM2Q+0qMvcxMQXu5aSApz/h9OmdMbW\nHvjNp7mteMGTBalYHYpzdll3auqaHCLO9kVsqdpv4CgX8VKp7hmHcieIW4ig\n21iu\r\n=XsJz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEJY+gRSEjjTx7a1VhQo6gS8lt9ccJEigaJRSREphZlwIgTuGTxLKMb4exDlT31c3z5FBV7D2786QYf0UJI6C9Od4="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554366721.21_1554366724281_0.22089063925471208"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554375824.23":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554375824.23","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"0068981ad2991aa40266618101c5adbb969f1ed4","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554375824.23","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-/xNzrUBOT8RGuJnRXw6Z2cEfivwsiS4sx7kLrfHHTkDOV1+vI9qafREou1JSU7FcUZlD7V6ynZzZnAf5e+3wMQ==","shasum":"b56259d8361368b8c5b8ebd2708c35ab7a327d5a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554375824.23.tgz","fileCount":135,"unpackedSize":856755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpeSTCRA9TVsSAnZWagAA/EIP/0Hv/exdrp30moRs6Clh\neyOpS0v8xORbsPz33ufJrk4EELF+DVQciENEqWrsVXV85GbUxWYFSFI8DFng\nfO8TGoFqKbCudYuzN6EsQNpxA6Zj8ZccVOn8Unf95G9weHPv9lKfrcdnBLL1\n7taEEpCx9GhHIRWOqXlalzAq8z6fR0Ek92pw2SypDk5uAdTEorNAH4EBVn18\n+PxsorN4zrZv6ZRBZJVZtrgf+vSd7bkHjWE4WCZwyaPxjvPKtXJArx/30KYk\noRGBhYGspC4GlilpD/hB5uDn0JT0xs6k1mQHW4vQTGcekUbn4BaKDnsaAMiB\nubindtaoy9Mk2x0WuivO3lGB6Zf5c6XfPbbW+0w6S7uqVCauK5ou0+aXW40X\nBkg1tFkNeRWD6Ma+MKve7LfJl1ZSDCrZMSQvcMMRbTnn9qEnYLXzWnMP826W\n0GfbhQzzl4F6Q8qxSXsYHl132FEjAqNul4nNAEJMmxsgimtnx7NrbAAFbY4Y\njqlyL+7kFEti3ILjns/qjp8aH8mmtzAV3k0VEobZ5ecNqL/8m+FyMDJ1bxZr\nVs/mXvw5jFYnyMYYrSZzIIaE7ekxhHWFJZ0mTYzNnOkyk8qfrE9oZjMQ8n50\n4+fTqtIs/ElXvvcs/brTX16S+J97rYIm79QEqdujUDXrSrzYcRj0A3p8J7C6\nCNIV\r\n=noZA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDzcDjgaKRTdud3/kYJBdq85e1KMyTw4slrdImI6x2BUAiAlxGFjwUqkje4wRXFSlS5+Gn1mg1D7c4SUqubAN4QIfw=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554375824.23_1554375826981_0.5510892834021881"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554391177.26":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554391177.26","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"6d6ba4d5c03290e5cfe2a772556535a6ecd99c02","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554391177.26","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-jinEynwA8iAUiBF5mBCDSgv8wpBYbw3gldqd0dslO4YCcnAJeJ/y5HxuZZF4qGy9ougr/tUYD61eJlTbSx4ZGA==","shasum":"c5ad9996c001ac0ca747fcbbdfee1812072d62f1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554391177.26.tgz","fileCount":135,"unpackedSize":856781,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpiCNCRA9TVsSAnZWagAAR4cP/2jM+1HKsJj7KH4KHjwe\niYZhN7OLf3WxPazxY3q6A3D48SLn3xMkTanTzt9+Y7yRrgJthtTwlZqMVAy4\n/mZhwcCWGctXDKxNCJookgLFXn0QEyF0v3UZAAGtgi8lJULITYz+do4t05yW\nOvldEIgJlh81T8ifLG9IwtHUD/cJPIR+ig28m+40cEVReCXaJyaMsfF+qPv+\nUIzgUcnvMKTzA3W9ToqeTot52JEGg1IzC/AUsuDpnN0W45msjgcnJoKqToMp\nhiPQjPoLS5sKhSfDDkXRAN2qIq2B4VxVTmKa8pxNSOuXdunPPWDJc1v6eZkv\nEUcSVB4cDhlTUz8Bx1S6g+3Adds2zctPoHhlqaYfTUgAcOGcHUwX4VnDKy2Q\nWC9pWxYIuWSW+iUdXKrGvxeiLdERCuil3LemlvuuUC9a8Y+zmPD7iNMmn2g1\nLThxWXT8bsK2iJbXCEdr3P/koSKkLBYfBn8I8kw6K2ccgtrNqQ+qxB3xNgDi\nysdWk7CLfuASlO5cXWyIeR+E45n41okG8OnWyHDro4iE6uA0RKf/KvsABe2C\nFkyQFvgUbUKAWOO55Vmi2XedlEvbubZ8cYMtUlDJYqf5wW5AdZVvf441jDTC\ndFeT9+aYDTNYnJguiDYNe4pf9+Om919TonVVBYfasbBxcMqmk6Yo9Rgv59dC\nPRU+\r\n=xpEg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWdW90QhrtDs8bqOtxUXBLiKvHYIGC2IT9sACxK9UjtAIgb8ysfBIwfCmQXWpEWG8BQ3ni3naTCCOANRGWxJRNrtA="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554391177.26_1554391180647_0.432503348250848"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554717186.27":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554717186.27","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"a79b7a34dc93369d3b49171aaa5f3ba6854f2827","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554717186.27","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-ExD/CJDN161tUHenU6oi0jqhrwTrUzOnWmgSt3jtUpkzWgPcO6Yrb4WmLI+TMyaCcJJs0a2jayR+How5SBHfNA==","shasum":"9ea5924d1aea4593369e65a4f7e0259434bb2aca","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554717186.27.tgz","fileCount":135,"unpackedSize":856776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqxoFCRA9TVsSAnZWagAACI4QAJXIiz0RhctyJz/5TZKw\nzLL3fcbipDmCi4dSXjrlyhfz+R/J97U47loT3rzcYiz5XfQ334Ha6AeDJveJ\nAiaTF4YuZF24U1DcP45uqLXXFp+hJiHW7PuiDDlQLN+gRfDDbNI6eg86HfrC\nRpAGdlYj2Ev9rnahMuc5qL94AzzwBvwgqp4ctRhRgTXqX3iR80IuXjlQM+ZF\njxzYQBkoSXoegvLa0QR1OiNzN1WwgYE2iyt1uq0AD/UQYo+yBZINdBNXGtc3\nzpzG6bXXvU0pCSmkLo00XANBvoKqJEQKdpavwc87uSaOSDkGmDB9ro88PZTR\n+S69RmuBA9KUZtXNYR6EZLupEZF+c+TS4z5DzT5/PSiaf5TXgsa87u98+ulL\n3FxN42RynrIGlYOGRWZwoQ3F8tfCLSNbnZCHNjSCowLTANDhJyi97hZMyN0f\nkZJQQ23TmduX5oba5eQqp1vAKv4a3xfr5lfa5/XFJR3mncJT7aSn4/oZ0/wX\nJ2gype6Whek+i622a29ef5u0i3Q5/cVesmPdZKWMjOb1d8MZOssgxdHFMyc8\nUN9c0f2xDLTgKC7VFXPnssTJFruts47FesYt+KxYuJDhN2fnyyR3y0ThJvYJ\nln9Fey9+9/NPNDGAwlNiMMj9ryI7/7+yBXox7SWE46pW9ft4OEu+COXubQzv\nHv6w\r\n=fvXH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKeWAPT2ZH3a8ivt4TW+FfgTSn/3MBaTPvgIhbcGL6WgIgfhFwFCEBmwIH74q5AaNdAPeEWnQCcGoV6aHIXyntPRs="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554717186.27_1554717188736_0.6930912224154508"},"_hasShrinkwrap":false},"0.1.3-snapshot.1554992524.29":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1554992524.29","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"f6091f953b8821b8044fc843766860b6d985fffb","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1554992524.29","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-3ys63L7lMOqNoSDySLPiRGUdDvVkTg0XDDUGl5vQt/zJBbhwE/LaCRiI97tZrPDAralR9FNLyjmZcvjbydS5ew==","shasum":"e379854b5d10520a24aab2c2b812a05c9991f61b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1554992524.29.tgz","fileCount":135,"unpackedSize":856777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcr02QCRA9TVsSAnZWagAAft8P/0ItPr90I/i0qsxXqCcw\nJTyT5yKAGv4wgbkFS3/EvZZsxM6yGhlZL+VezTnpvkV4Juhu+7eNvL7kdWvu\nUWsdTslgnk7f22eA0B0EBQj6bI3ppaV4NMc/bta3VP3q/vbhmR71xA608e+a\nZbfX2LeiCtPTpX9BZ5AHxno3zbaRWc1t+4IxCJW7h4rsinPeaTqtIN27FazK\nU8bwDio7gNKWezucgU/I8Qu+fv2264jiUedMzzPzx7KYy//JZYO5ohCcPppX\npfzdkbzekPY++4Na2Kv4tRwTHtFP8lAifixh+IYl6mn984AoHMPBBCFCFYUm\nRu/hGC1c9DhFGaJOur7K1nNQxhciK5G2tcRhFrY4shwbS4UQ7c02jq0WqBFC\nmPEyhi9sjhVQ0ch5vjLgZVQLDz5bQAs/VhJyGGDJ/unrZ5/VP3tYymNQVT47\nhtwzE4PNdIvXWA+tnipZG/WffMh3ptBzk5gN9FDvAw2bQB4x6mKU8VJH7EuS\nJ3SVfppxCKwwq6KMKYPPP7C2ptGuLXozX0G5C9h9PGCgTNzQE3924ZAcnrvD\n3Sc/U+1uNSY58DhSCvSJeMfeBJVXelVr3YO9qx+OTfNWR70ZDYvVvFvUuD/7\njSbiXeB5k23n2Ssu/p6fYMTQhwIUNQnzumgaubyf/bmVnLjHkk9m97wrh72E\nIjQA\r\n=EsQ3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC/h3t9vb+D982E11/sVg2XwHyLs9FumjWHXsNm2uIJYAiEAikmt/DLENtqPjnJyT8SuCcLCrPGiM8oqg5aae12aksE="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1554992524.29_1554992527347_0.34018878553422827"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555230396.31":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555230396.31","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"c0159bed2aaacfde2b0e4aaaec3956e8fdc9f78f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555230396.31","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-7mFKRnC+hy73CICaKouyQYFZzUWoF/emmJwV+pdkXh+ptSG/I/N17jKT7SmuYujxeO3OFMrUheU5LA8GPDy8hA==","shasum":"44570c3d0b108c9660ee08fc9eb20b1d730c2ee6","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555230396.31.tgz","fileCount":135,"unpackedSize":856771,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcsu6/CRA9TVsSAnZWagAAoccP/icGrxdD1ZgiPU7nmnOq\neQsvyIF5k9ovbzcQNlGBEYXkLsMVsM6o3c9aQzDN//78FWTGLSXbdDjXzQX2\nHB1ryn3ElPavpYQYdHXUyw5gzywrDh1bR4L0rOgDElC4iHYbFwWfygfMPtxW\n6fIQ33wxERYvCj9EF9xfReDaCGJIHyqPrXp9o4HqYOy5R4IlUcW3B/i/46No\nkLUQ0pbKPr3RQw4g0a/I9dDliMNiBZmvR8pdLvDhCjOA6KcbWNatv/NtPnT1\njD3G7X0O1WAuKhg5zwwAwidPAf2Edxb1RC/5UwAwRxWS78VzRD39cglIl7CN\nzK5lYSnJeA2hOPHT/sbXkJ9EEmhMBjy7mvdEUteFg6bJBWjDwY3J/svqUFrt\nM2BD8hMK4pJV4y47ltb/ju5GhfkIhJD/wDe/IPqZoXiNk1aFBMSCWpMCWLOF\n9inIZ7tkQSAicxfotd9mP8z8r7pR6IWiZPO58zGcdnA/ySqczPnsAbaZDI9Z\ndmbKDsjQP+un4V9UJ8ddAMDOPqiH7Xrl5TJTMfacsqhQuT+QsMxFXyrxDno7\nBDLTui4EJiTO8lORZy0dABDceEvqC1ftI9Y3fVtO4/mMwL//7vpUnUswm/Xr\nh/dvUubW1nxLI5jm5IPyOg87m7ZvQfifHAhV24kHRm8HiI3s7oK47V7moDYe\nZ98O\r\n=65Gy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChK3Lnzf0+Fl+gkyCXsPWCQK/QkVKAwQjJLH/tKEUv0AIhANWG7yKOn+CEwmcf5s7UFtixDurKpzlyynTwnXBY6kP+"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555230396.31_1555230398991_0.5691151204658738"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555234895.32":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555234895.32","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"0e3c0f56871dcc0b87a4bcd674f3662c91bc77f9","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555234895.32","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-gCA9kYXSXIuwEgm0AJjS992ugottlRYu0jj0aYiX/Xv0Wi4lswZFROoWzXuBfMhmrA9JoqliWvzrvpqfGjhOhA==","shasum":"7e1badc5771b3e9396a66d770ea4d58734869fbc","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555234895.32.tgz","fileCount":135,"unpackedSize":856775,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcswBTCRA9TVsSAnZWagAAxA0P/jd7wyj6ayOFUyfXUh6B\nFwRRzDD3VJ/yMK0W+kEI8EowR1H/rB7MNNPt36YWUOxcUcUWQNfe2hHBYUUA\nHurVLALDdsxMV6Xilrid4So7+bEjiqTSgdeaFMfuuunshE6AmXFnssO4rwSM\nV+9Tsj/7lw5cQLdZ4JA0oV4ni+a2QltHHqPpRYh4SAkvg751HDBWSIO1odZq\nWluz8bsm28zT04z0/VVs1+MeD6LkIZ8P7AksLWFlzU0UgwRuLsCb2v6rbbht\nbTcvNvz9LaYBOUGoQlSBlZPtHjtvhto0C89LbzRV3gY2Z0mRSFgL9RzitvwY\nGbvdQvPYklaot6c+SDw5w/h7YKgIfhjxxT7KD6YboEeeEu4XZOzVCo3zDZFE\nUzkQy29O2SY9MYEFhFgYenHyMDZMevB07Pyn/RctAv8uMkg2grf8nuc26qb/\nSeEeQEDJy03kFgtjUG5oeP2Nx+r+oDgPvkX5oLUkB3R5Gb/GMd4msVY9eHcA\nYGutcoxMA6vMPwhZWfsMKiy8lZAFzWduGUwnkUvBhYZ7JzoCpIHFGxRVkZCY\nckMnHybX2e2h1ZogOGEfnwJA+KMlxptMPZuBZwONnHzKOexqKOi0NBMfsIPX\nyylWNn+9zYkp4BCeJ8kcJ2L5Tt8yqm0iJA8GLub3uBikDjwcBX2jEH8wktff\nID3o\r\n=siZ/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEur/ZRaPZKfD5vlG0GZiE53XlXG0S9sgjtQ15hHn5TzAiEAhs79nHnjfCRF5cVsWxVBgoCE6VG0cPvKez367gfkhgs="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555234895.32_1555234898479_0.9550449945214623"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555236719.33":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555236719.33","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"5232ffeff82c34a907e70096defcc5f51b92f4dc","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555236719.33","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-SQyVqhMPztqSFj1EJQNREz15JUkSeZy5eIXvvkR4XBxOPspxjhBejdd40uGQlrOdA4AOg4MwBBv9eGc5XupnVg==","shasum":"6a7ceea49b615646ad26aaeb1a9bbfc2011d6b7a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555236719.33.tgz","fileCount":135,"unpackedSize":856801,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcswdzCRA9TVsSAnZWagAA1XYP/idOZVSTr8VB9P6+fJyg\n1l3ajGr7uFZiDyHuctKpDE0wlJtMrEiTwtTkrkT2at0sNVnvO3LkcV1QEG0+\nUC3FYXu1mvFfl+vT/Lq/1oQ3RnVMim+xurmy/qwtSNHpVloY5jAhiOxBXtxH\n68J64dTYofH1FqWrkDN32vafwlkYS2v39+aIEg7/rDEpUjo9PGG1u/0WvwrI\nucVY/1+iDaqRvOVAD4+RKe52abNkQ6orBtKrg2cGQDiGUF2l3vo6MijCMSPF\nkS9+H6dBC0uvNwEr99Zk90jT5M/tLWPrjjxIupDzRZS1FQRKCU9Z8sqY7JJ/\nFAvhHApQB0gUJ3zjNdgPlBMiahKlW/0I67BlckbzzIBEPsDnPlA6fM3f7Uv8\nEWUnX2meng08H8WEvXA7H5yC6C+GS9NQrGEzBvwCv+cBWRTTi8fm6paMuaGM\n5UiXFLODcQux/TvMnNl33lyPXvmulh4aoWgUem8ndsXzPjEWvZA/q/aeaz7y\nF+AHfO14cBfEBF+Jev7zrG90DrMmk267758b9i9aVjHUTGdcfuTFKA7RH+78\n1tqwjuBzc8w6wUGSsUtnwhh3uW7YFEB49w33oLm099YGQ06YK5o31OdLvz3g\nYvhSneeP53nZeO6j1dzSk9KA0YPYuFdTwCEMSbz4K+lgXjqxVLWDflfQovRf\n8CwR\r\n=M1GG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCf6NkMsxhb1SKwis7iFAQ9qcONlEyjiSh3D8p73tntqgIhAPyyZOrOGsVLfuoYV6PDItWpfMRt/ZV3SJCGLuA4fZO0"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555236719.33_1555236722651_0.37440725769751104"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555237581.34":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555237581.34","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"55c4d2e010331fe541ba5aaffa00491ea4a96693","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555237581.34","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-umiH2Pwr/aN/VaoRp7seFME70rryw0Q+sXiXlyqwA2BMmebgNijww+jLC20XygJA/GeSqA46HL3NRJt7Ds6N0g==","shasum":"9efb2e268bd9655efc1efff659e579ba4f43f815","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555237581.34.tgz","fileCount":135,"unpackedSize":856778,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcswrQCRA9TVsSAnZWagAAvPoQAJAzRO+RqNPA8ndjBuAI\nWnTXdcCmyEykB2l9g3OzTdnfeXFkO/UHxdyYtbLiD6iP1/fshoMpJztuOx7D\nf1iCTG/zzmX15AndFZWtejAjBXP258HbmWSQyZwQSYt0oeNRsTr1Ku+DaDca\n+69cP47ZsG8IaQaVb26fZBaFMwUujlw3qRsB76eox45B4L1ywz+RzvrNZvkw\nT8op4GV/Up2uaVyQ0CTr9AY4dkhiiZnqY7QkyflOyR+M/M/lxxCpYCQwzT2c\nhuEOR3VmtHLhKlRSvquC4bCNiv1nHcpFmVV90NsO+DDEgmOTBbK5l+I+As6J\nu30aIPubL7A7xagh19C89GX6MR1fO1p1OK3+ijVXgCCcgyWqpo6bHDJrKczl\nzDkaCaodN15rZLSYljsf5tVlRT7elIs6tuEHWJEdYthype9upl3yEqzFP59i\n0Ma0uqWVYLhYrys8Tm5ORXAai0MUWV1LTqAWShxLXpq0TpXsh2fWid0iMs80\nffxnJll9gXI+T8NxV2xyaoraAACkIK/Jaz5tRO7VVjgFnNiXUZlwdt8/lwYd\nwhIweVBa/8KTAKRlUzRqqEeR18Tr93A5o6gqSZ5shZPKw6siheaZQZmiCUXw\nNuwCs7SIu88kxtfAEr9NHk3+zPXVsZkK5hfjEAHFcGhCDq/+pC3esssK3wnB\n2lKE\r\n=2Dqo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCi4mkgFVV3+YTMKZ1lMR5qNcp0DEReVOKzCY3F79JgDgIhAOU1dGpg0/vzBG4hPoFatPT/umTieCXqeyEJFOXbdYQb"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555237581.34_1555237583290_0.9897272946495512"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555485719.41":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555485719.41","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"cd473ed0e90b6197768a97d0488b0ba448195da6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555485719.41","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-6G7mIjVzTtT0uL7ExMaEJxm1zWVLv5dEOYwztjiv2TQKTlOCjEGUS9lFUSdTOAD+lZNLrI5gIiC5hDDHn1e41A==","shasum":"7e9179b0fef4389eca4dd2168934e0805b871a35","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555485719.41.tgz","fileCount":135,"unpackedSize":856906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcttQaCRA9TVsSAnZWagAAgL0P/iLneX2wirIGszwAi2wO\nHW9Tw4hz8iF1ZVZHCKMGKFZilZ4X3d9Nce8+We3OrurT5u13udN16UT5F2GP\n6IlAWc1e5rPMxS5aYjx2iqbu3NGhDum/VkkbUyclclWIe49IAwtwjLjreane\nK2Iq8f8cwuUeboj+BjGpxcJX+6Eu0sDsOM5T5H4OU27OM2hNURQhSjKygnTZ\nIVwNjiZ51Hj2fd5ifhcw39+PEF8SHzoHNavvGjZHr3Oy2PsMG5LFeEVdiuA3\nPrvPhEVRbOyQqlh+25Si0nMgiqZRcnDAXKsMN1d31B23KkVYP/G5yI/XBJZc\nCNAbZrg4TEHenX8lqNUUl9yJ674AUqFBdRgf9rTWcfZlFkXCoFp5XH2RWeKm\nh6jac7/3UZFQrLbLK1v+ZIGLmPFScdkgm+MtOqOyMvYCr55lEncDhTovW95e\njWvofB/5SPdCPyv57jcT8HOIeYFvycU3J4zjONOixgem/92me7+hSsdKH9KY\ncepzYzQHD6J31PKqhRTIDUwD4lZpjmY3IGXe6RGL8xNg5JlvhyqIjkaRS+0R\nVDCZTJZnQ1Cg7MHl6Sc2F0NAhhz4ISbtI3pqjIdkJTg9uLg2YaPZeMS5yGvT\nEFoGBgUJegJ6UwdVPxFiRbVj51e5M9KjLtTkS7NwZ9GnB7gMv9pVBfcZvmA+\nvM+q\r\n=S4ql\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFX3OgVUq2+bAFDEDAEAe69Bwm4PHTWs1uW/RCtbvrLRAiEA+XGQroDX7QT/p0MuQir4/xM5HuWEVGFKHlkmjyUltJ0="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555485719.41_1555485721914_0.2058876985077911"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555500869.43":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555500869.43","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"0cff2f61c6dbb639c6bce7d138f79e94947da940","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555500869.43","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-9gPSVocttENqUHVSEJuQ6PaPClMbhWFHOSlC1Oxj3L7VNdBBFCivCnB8sfp3rwSG3+V7BqeOyQcs4HUgLj4doA==","shasum":"f3796d12c34a7ee8b10d3fe2ee0f97f1c3eae2c6","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555500869.43.tgz","fileCount":135,"unpackedSize":856905,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJctw9ICRA9TVsSAnZWagAA5VUP/i0l/ER0fnSeD/2diA7P\nLNy1OMmL93t90bQo/BFHPiuGxDtQU2/UQwHmqxv1Z3xGUK9VnwXKlX8kqY0a\nhIkeAm/KpwBCjSncBgi6xuBZ2pRQdU257wG/+QZmgb2wCkpAZHlHEE64B7/7\ne0TN+mdwIZjVQ6DpB4CS+26XeCNODL99QMgDTGrZK0RNBWf+8oTqGe0bkG7C\nZKHTqKjqys2r9xDHxQhpOkQul0D3neI0nhbJhv1lwSME9G17ToX6Wd9pAcRX\n7jDViQxY3FZbmm6HyDO/Q1TzLqIJu1O2PVJH9Bo8DdvPF+fWyhx2PcjDxW0l\nYHocdmbAabBvAbUoxYSREXRNn6og2eLRaK6wxcud5lS8CGDDjf8mkAU04ISi\nRKnq9bx5C34XiJ255KVdqCvYYXvBJY5o4GQCZNPUleYt8d7OnLeadZV4nbvP\nz5WPnaHwSw9eaf9CPxi51ZVycxZXQscVzjbAG+d5QwIW1DrK/uXDf7AZUuJo\naIOg+INYKt5k4l/3LmPNQsRHX5uMRXTysni+mMw+9KJTw8bYL7gUiHKWLFpd\nnzW6SlZouPaLCtigXIBRtwOPyG5hHE6hJn+2wvnc20tzHtN1qc1jywgdjSX0\nY9XmZkNBl/BEGKCqJTcar5jrsT49mQ/8+SdvAb0Ax5YNqjmi1CbUxSGptlVZ\nYLJj\r\n=cIDQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAg9Tpax8+2e3VWVcQ2ECF0/x4pQYynzTOHj1Kx91YUeAiBX2eOM1icNhl27lsUOmVaqq9bGGu2hjsSl81j3bvyyzw=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555500869.43_1555500872426_0.6188640466789239"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555502500.44":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555502500.44","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"c8578d98275d384eaed7ac0f766695967e5f93ba","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555502500.44","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-rM7MczdWM1UdyUnb4GQAfX+eB4qhvCSWSc0Iy1NFS0FW+Mi6/wflWPVqHPALyz4iwYqGbfLXXXdDil6WrLfJRA==","shasum":"94f0a104a7fc06290d045bcb1725c57ace8ca8e0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555502500.44.tgz","fileCount":135,"unpackedSize":856893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJctxWnCRA9TVsSAnZWagAAdOQQAI/JxU5tfHboct5UlwNR\nfNnP40Amfeh6eH41PfUV3FPlFLXXlJ7pgWdr/+D25AHJlcVpx+C8dYl+U4c9\nFJJaDE+KGH7e0pRQNYdEwSZgtQIPv/24kDgE+jb6pngmnPh6VrpyLFF/cad0\nL4D5bVOMOYp+/zDUQz8BVSfIJMWtf7cvcraPbkD0veVfp9irHm60vbDtC7AO\nlPlAjU+7PvDARw0POhZKj91Me8rwKep9PI2g3dFha8a7qyXKHQnUN7l3eH8N\nI9dDB7DXQfUtw/A9SNseEHp8DCXng3cautgJHQmtGjPF6p01TcZXVrbolbHp\nCGtX1xVq+PGFwpalT/grcgb4ZfOz7IpMCaOxXiv4i/iCp0UGaQmkeNHEb+np\nnrXohPcEYTuLjY63raSWc2mGxdKXVctVajm/yZ7leGtJy5jcOOwrKeRJUr6j\nfn97Zm+XtmWhCIqZ5P105OLgiJI8GgUsWRL22vTX1Ipej3OwmKnP91xwf/eT\nMkZxXElVrC6Uq8FvGfq/S1E390nipgt2tKddU2a4bnKfi5ixhcnkqd1Wy5lB\nJCSY3za7naYzjuApWHFSam1Ro/i3pYmGUuzTJP/umZEsS0Xfb7LTIHpN8t+R\n7fqJ1mCl1NdDL+T8NX6NCmQqW1+gYSJ5QhzGdIQDRIjoMkBIUX1yjP3hzhnI\nYuQ6\r\n=Cgzg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGt645tCKzIyMafoBNhdgDVJ+l8RTY3/H/6EeiMcDqxqAiAU1ec69Dgogj1xlH7iuuZ8rgt3nhn8IjqYaqSVT33SEA=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555502500.44_1555502503357_0.31908298574767135"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555505080.45":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555505080.45","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"da250563944ef46a3054d3138cae6366a64955be","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555505080.45","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-aUvL7czeTZFmVxPnkl44LD7+Z8T0J9Kr/EjAg/gjJ2LM8P4W88GUapMqFCHOwneAS0lUrNLUNuKPkt3vrRAXIw==","shasum":"c1d82e673f176e5fd18e4d63443bedb7b7a39d64","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555505080.45.tgz","fileCount":135,"unpackedSize":856894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJctx+7CRA9TVsSAnZWagAAYCwP/3QbIbo7FjKXiIcTbQNh\n9EhcnG/uAPiDcLlSH7JWagO1I58sLM4gNtPkLeJhwtrSFSQgsbILpbAJ6adP\n4UrB41etosDBm4Mbx8M1vZhD4aUOo6+uOVkEU9J7g11NVvzqs6aJ+x6Hr8QA\nNVW07nIbLX0QD64ypVXEjw/ZxxiB+f1+6JUdYWYYmwVF+YIVMElVQzmG9GeC\nSJxs7eZVOx3vhc+mj7SknKjIDM/rYbXo+9dyNrou1+nwzTX7nUI9JHg2SoQ0\nj9WDwSP4E1rnO7wdqPNdnl3R9HFG1tIdCztKZBGPvLkHJFHMzEeHMNyjdR6i\n20c8DFmviyLXMKcBLQBO70QXdYKLoLfQ2S1YDxH6ie5igtM1eOinPJB9nXu8\nnd+4q5kpmeYCbT7qm8UcUNTiNQV5TLFbgCB159reYRzlkXUqAcVq7bwvo4YO\niNIWSGiEPCO6wr3r28/wtYehqiSDO+A82soRfDZQ2gA5Iyi2oyLlyEHVPmHL\nRjUWhImuhHBqgCuwUwADkUuOLhmV6V8ocUtwMc0lFdACUBG17vwMpIUHaCBT\niTo0cVS1n4xsPTJkv8l+hefrQRmuko904DPFihoT9dpxiPma2o4jXiQVcE+e\nZ3kwM1sjv58AlVmyBgNeiRJ3NGvJ5B7xT0vrlD8MrfrBjI649oz6nADFTLgv\nQrg2\r\n=kgJe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjX6a0yijUZuFH3uhcF96YjVKxXYAO5baY25kkZZUTcgIgD3RHudl4gQyq/X5NrHoPVrjtL0FJNiFKzETKnVpYOwM="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555505080.45_1555505082901_0.8865129378667786"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555508990.46":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555508990.46","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"f0ec9e7dbedeb9f01b2fafea788eb568881bee54","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555508990.46","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-EtxHdcy8rgYmqQxBlRkviZARyCAcwTpCX+T00TFsCJ7oW81S5fssdv+3ZsD1Qi9jdknjAifUNkr6f6k27JF5yA==","shasum":"b7e5292b84d09aedeb702529b4d6a3dfd86ce442","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555508990.46.tgz","fileCount":135,"unpackedSize":856892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcty8ICRA9TVsSAnZWagAAeEoP/RL7A/6SJ1/AMSbexIhX\nfGfDOMl7iHHv8q7tS88H8N/CUMuu8no5Z8ZMH+LWvX5LAGIaYygipN/kYY1Y\nj+9umPO21cVJqE2JMzwlcRHxLCojH5uKXssxdPDxgrx24j8Z14G0lwDOBUfF\nmlm9hgLXRh3p47AlU5yQ/pbmOKD23hezeujVi8t5oOW9tFGLJZNjK+pLyD+p\n3YBoUM4A0ef2g/5OyYBd4S7SfWEAWDd9gSbnmX1pRjSIpfc18PTyQPaNnLCG\n9vKFZU0t9FHzOuLRtM3hZIL3XeQP3FGnWI+ZzZrWn70Pgm7N6vJkDKNNj+3/\nqbvmKlGYOAxIwFU8fqZi/0hIQosDHdJMTtB6+M6o94MEVm4pM0I3oKkZUycW\nFEioE0l6cwuW6KSuXKRnlRz3nPHaCLINnCo59bwi6MNl4943aC7lEzTUJh4A\nsQ36Jxc4CUHa3wK/hikZd4KYhSgProw3IWHLMvLZ3Jf0HtkGBUy90eC1B4qC\n2b8FN/3J7MH4mFPcAgJrNnUrSGugllvOQkjK7W97SG6EblzxO6/fmKrbOiLC\nXhIuixaUc3oWfj9/AY8uRaqVdHL/g0VfQ9VlBEgABiV0deA7TEu0jGHAM4F2\nDsVSIv5kmyYIaODW4pQv6iq63n4cKvMB2Wzn6hVjSQ7YygHCj3a6FtUOwr00\nEMwf\r\n=jax5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCS/0gvVn1QXj27UrELbH0j4lDkG6ZpDpyyPZFSv/WiXwIhAIv5xfSWLOPGRkb2h3IQ5XgsuqCuXXuYogqkX9yAaoG+"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555508990.46_1555508999165_0.5930122657654098"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555588613.47":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555588613.47","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"cb750025df2039700204062e2cf125b903f5f94a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555588613.47","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-MyiSEJcRPxX+v8r0srQWwVelexYhFQ/LkmzCiskjyR9grDofR2F19FpDWuxbAOFQgmq1uFPDd0NJqRC+x1805A==","shasum":"88aa4b3efbef075fc279730180b283bcd57ef4f4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555588613.47.tgz","fileCount":135,"unpackedSize":856899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcuGYICRA9TVsSAnZWagAAWmQP/iZ0fU8Qrc/4AQ0TfV7N\n1rOFn0/0JU+5zhVW50bFT3fIVlZ3cHmZRULhxIPmDxIExU2wsqlPRhpETJWw\nfOd8EVAryBuy1x0bPTOLsOpKLHZ2cNS6jRVRyJwaAszpIqWMWTL6o9vu+IiC\nHRekohphW5YIDIPFzcI9dSrLH5dGzst5QG4uL7xifs0snKxZqFpNJ1OXvPMS\nFkm/XIDTJ2+qF+xR1yAvdEGo2+kklZMuGBcPpILqAY3hK0b7UMRhkAf3/soU\nU/BQRk8YmqBV0i8HqCpnzDVUjDRUp4bd1jMfO32YMGxfkrQ4nEQiT29ykd7k\nGS3LMam3OTISMsaMIapbRQxRBGDJGLub8zoyWHBETA5myWRG9TgXHnoltH3q\nNyIkpwX4kdwkWGJ3VCuf7ycC8Bz9nMsAgQbgV/yk8CWAsJ6/Zl/S7x/y6OGN\nMGp0OUfzPyfkGN0jvKss8t87xnAhDg3KvWa6aauFYMbWoqs3d8HJAC21zOvE\nmtOQyT57C1PB30YNGzTH2n7BumGvGbTblvYloRLx26zyxvjp69Y949M2sQtX\n+sWvFA4gcxBThRwfPgqbKzk9/XgPA6GiYSfnMY1jy4hAIgj3GK6AjA+MHq+Z\neGXHWcaxwNPX1aAzPxfWPYHFGVuHvPJwA4CL1SPl70Wq1rRxq/U/ihQwrjyM\n6Hn4\r\n=0Bs4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCflQhNyp7ah9tM9hN1a8SwjQNsDDtxwKVb+0XGu5+BKQIhAIDc7DqpdDqboMQYewytVsXvLdmtqUAwElRtjUvO1S8y"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555588613.47_1555588615986_0.13425695110219893"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555912815.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555912815.5","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"f9d4167e919695032c8885e3de77643bdf717283","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555912815.5","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.3/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-vC1ZGvmMzddtSpBc3ROrkdpueGr3EelvwlZW5rx46yg6DJKvEXoNODbT4ogANGhFgbTLwd3pNhA36yqC6ELONQ==","shasum":"44d446f09f8bdeb873c576c7c67c05be0505f75e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555912815.5.tgz","fileCount":136,"unpackedSize":2818971,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcvVhzCRA9TVsSAnZWagAAPzoP/R/azNFM8oMMausfV7YT\n31ITkECPfgoAukM53gFvVPqWySKEg8nsD6iMtS6VGg22ujRcrbjHlu/bAat2\n1WcTgmmoCHmCnpLSQJpCcW0GEG1k7wkeczhiWQ1BBNu1vqWLGIfGqG7J0BuU\nFh7iyNGPomDHPwIf6fI8eHG900yU02kPGXvAWn8N5yeiU27lAH6Q2phm7IVs\n4SAUeQCZZOXmSxG0MN8aK+RTh0ITkOsIV8fbEdRMJFSY+zfvPvNDRLi4yhDd\nj3/RSUcvIWa/vf8otYNAaIPL4/+b0MZbh5a4HwtbTRUiO4SRQOIPWjSnGTg/\nVzKAbBPJeWWw7X/VUEwPROg5F+phu7HVuW7xIfEGapx9+8rOTr/kYlBYxXdk\nlZwVXNxs10wkO9wZ5ORzVeZ0HHTeYimgJVHw+tZmTmm7Omo5wSKL1qlXM2M2\nSu5yc0DU4M9kBcLRkhtCMlj4xJE6zFSc/y0jqzaCeQNFNIpu2QwdWjkwJ8+I\nsTV8xjksMpHg/If1LnruQrQ7xESLUXRnvMtleSHrE5pkRisNFoL956vCQFTU\nk37NWTGSStvFQenWyGECu0pgpg+/17mC0ujCKfg+LvtoYIyDV3+BuqZ4ud92\nX0pgIeUalCYEvXPZ1aVbqvUgLVoDWVqp2Jtzhw1xA6lGuEsMZcNCuSK7dBPm\n3Ics\r\n=cVcB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiubAJuEBqDHVAyy3fOLS2Rgtc0StWaCoGuQ/gkZid5wIhAJQIfjhgj5MLOMXF3aByxxpnf8vhQn5It7XSgD7jk8Db"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555912815.5_1555912818549_0.5814941233705271"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555916155.6":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555916155.6","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"52c14ef820e4fa0fa6c4983a06e37c2096f7eb1e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555916155.6","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.3/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-/WoERWmhflMdTYEyE1+/7S2Q10TCfGH9b3MuZUHN7okpOnwaHJZ4uHUVQSPjvO7yIK/glsGB2uef+gtQ2xgrdw==","shasum":"818f5ff2bedade8f4a8ba35bfbc5f81ea781f923","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555916155.6.tgz","fileCount":136,"unpackedSize":2820195,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcvWV+CRA9TVsSAnZWagAAj1wP/3rCMDMNACo48actyOeE\nnFbxXt0o/XhJFwuAl9Q5gkHKf2A2xLcjaMHeO1e+pZ52tm+MIfq708ktJQ87\nCfU1hWzvuT23SokLOJc1tHfrXejdn3y5dW43w88fhO6DyeY6eIbJv5tgKs/N\nqdsNrkWzIbPjlbyVNZdMQaSBS0QzxZK8W0SB4G0qyuSrilSJdJW3PEqefwH9\nhMzHRGzIavCi7txR4ZyQmZGZdhp9IqlVmYfHdEudA7qsviZHPoDztCND66/6\n8prL2eEOKx6JLa/yNoZJwSua04w+6a8/e0w4zT/wJTFxjJ48+Ua5UJuCLvaz\nkHdUA4/AM2eQw+HNzEtU4hhpR2ZCrOnMZWCULvie6chkw6JYgvVDqShGAAuY\ntmEqndlzkDuA+ge1BUn3gBWF4/DIlmJLNLoYx7izSQxipdmqL7Xm6C+cnxFA\niEU36oWSqgzeU0/KFltC0NWEGW7j9cqpNN69S3C5J/gcA1z4pu10EvCrxMkc\n/lr3s423Cr+WT7kX2H29I7stiBMP+lLZ+vVMnIFgbP8wyoDB+UpkqYr25GDD\nYmxlyfXpRrcg1N2+INBAVcnYGOXLs6zkCrKBiP1UxB/pxNBpYOsmLDQxRhCp\nqyrmeI4BOaatMLEmNgHqIrEnrCEvXuS0a/IvSSbtYhul7YpI08LMtHNZF4OH\nWzjJ\r\n=qJFY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIeO7joHI0dpIe20kfFR1ypi7N3GIFr0ZfvCXe8FIaiwIgM+PzJvV38yeA6KrWqr57wR33UNs03SbNILJPiM1Z2Nk="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555916155.6_1555916157519_0.43123707250107324"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555920276.48":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555920276.48","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"f3312e11a697437d75070256cd7b093dbfca1ca7","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555920276.48","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-ROiCnFAqRXWn+FpGln5M+XQcIdwoRzC6bS2XLb0FyCgF9njHZxgGD1BqX9i/Hes39gKJnKew8yEJwr7EL2IQFA==","shasum":"718c757d20b64e4e99794821613b93d6ae103848","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555920276.48.tgz","fileCount":135,"unpackedSize":856905,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcvXWYCRA9TVsSAnZWagAAhVQP/RN0Na9EaEqSBDNQQPtX\nfCb5U88N1FfFUkjM2OE2VYN1KDgKsf+ZkHmig2JIhTS3VxTo7lRnEip9Egvs\nAnEALNr/9OkikTP2WQNhNs67O143RcX3ybHZOgzAugPfp20qJi77RIkTFTkh\nSWvLTZTldUWglvQcO1qjiy4zXl/Mv9KAuk463vCkgv//hWs2uUB3QwXCZjGW\nbdRHFIATq6gcvOIMCC8Q4n6wdrHt//AvMgnyp6UmxcxV6r/j0QBHxEMElz90\nEUqaQlcVQpxkUFexG/6cq2kp8G+QbIeL43H5va40R8fTlreAY5dsR81KW136\nzNU12GVRfDH3OWozg5gNYyCTRlDI7uUYVrrfIDNjvGGqPPEphe2bYAaPLmh2\nPyG60z/HRc54+S7MVii1rkC7wIbLJinK7+GDwlItPFcKeH++D09pNXY1AjIU\nv2jL7wScN4lAd49uejCFNGQ70M7qBJVX8KXAbaYJYcwEqYWSUO8d3uqxW7Lb\ni8U09xSdrZG5lNSf4xQ7/1Da3hSf1h98pxDyKOBxWHP5DLNwLGTF0hWR8gmg\nFwVeAsIMdieCawSheIaKj/3SalskT28MdONqhjA+StCV/bWNB2KauIp19jmN\nzmTb0V8r7pKf456ZAG9yUlrhocdL3ev0aAJrX6bYgXkq4OQzVvPXiVqz0eib\n4Dc1\r\n=WkcZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUOHmlJYdgQaclaBQo+tj4n4SKzjgkvo/zCnBdxyjbPgIgdrgOYBLQH8Zre3ygBA9+FzqkpeR+SgmJKZ2sINHccQQ="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555920276.48_1555920278925_0.2903735941428296"},"_hasShrinkwrap":false},"0.1.3-snapshot.1555923215.7":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1555923215.7","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"93138dab13f4ebb168dc6bfa55fd6e5afda10a95","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1555923215.7","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.3/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-MVzxTEgjM4Ye4h2kRBgzZc/LztJrDbwW1Tz1utHDFU7eKvGcK70NH9ZA+OS4FGyJKN1ECwXrUW0kq35wCPgw4A==","shasum":"0802f8c3b572809d7a35368ff08e0899fa157ba4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1555923215.7.tgz","fileCount":144,"unpackedSize":2827535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcvYETCRA9TVsSAnZWagAABsAQAJPBQWLl9WhRamc8c6a6\n3AJC9NUcuKHjvb/dR+ys5DJHZ0dFVzUzEuufvzG8abjuAIBwYTKwXuPKpmar\nfZ0tApgKGp3Rv2H0a5Cf9M70/F+iDzz06Knz62TszShQ/pVZ9b0VQaAYIJuI\nC2gdn5unk9TYgFoksvSOL/Rqzb466/K5Yt8nqflMkS7UBnNbf1ZUfTqqyVBA\nXIqYnASMJtu1fAdarNDOYSpo5xHMH6os87MqzZSk43MMXYsAAwMJfWmlmcNB\nbqeUG8utU43Yp6fCSDnlMS4bIiNN5VvTnCU4MLhSVvD6J+nwt/wBRkjUg59o\nRV2Jr8LrIL9JdKKqzeQXkHkkUbFed+cx7LIE6uRtRavKSufX1EjGrJS5t5ZY\nhHyIE0jTXr6i9NYIvOirQwuUy0Q/rfubwPThCL7B8NrN0igesQGmZvzVBwjl\n8jb7fu2OwNRMM50f5q+kjXo+SGOToHTL7GLiQCS39Od0oDk3xtVWO+rAH77H\nsskZ7jLncKKCVt86QNizP8/AgVBRnhKzzMFnMnH1VBS5VXsxAMhbPg6Tolwl\njnyDdFYfmu3pd+CwkdqxRpiJUdy0p8YAZKSLYPlZ6VwNIfeiYhjvrq9dYl3v\n2FrObqp3ZG1PLT6XYEuOr39w6meFY2qY6/anFtzHFBASpAQqgXtaapfad2ko\n1VHd\r\n=9q8f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEDCkz0oSVbGVpx+Zhe45kObU7dR0rzRBhok03NCwphQAiEAyFknMK3A+XBsK9XsiON1oDRLS55CXzt61T9MiAVQaK8="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1555923215.7_1555923218397_0.5872736931327094"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556452144.58":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556452144.58","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"f2606ca7cc7209c738bf58768ff05018f848a460","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556452144.58","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-KhKBOJJ8M/bntf6A2F6Mfku3rsBj6rUrQ+NQw+HkNYGdxrlf9YkUIXl0zso1Sxlmyo5hJTwHIZZdltyWl14LIQ==","shasum":"d18e8013de62323e4620192e96b07a71484c891e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556452144.58.tgz","fileCount":135,"unpackedSize":857621,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxZMzCRA9TVsSAnZWagAAyLoP/0TXTcc8tylz1yMma4+Q\naHPaiEIeI8g5MQ05fW5ZWRsRnkW+UXgmpjajM+v+kNIrxP8LeOH7Ca1CCiME\nTUa+crKSl21M6TBobnZw9DEb4Jqctc15MjpwxH91mPkcZ6cnb+7Vt7V91byh\nOfBHWJJDwaVZ9Xqoeg3V5D/RvJTw4X9w9IhOAYd/PPCaD0dcwosXuIxkVBTK\n0zszcsgp3Lom5qpxr15hV7wkw1bs85N7Oi1Ryq8FGBsbBzQwXKFkc2JZMVBK\n4QORZsZSqHYa1TnqF81Z0wK3YJMR4Mdp9Pw1ZK7hv8FHuY7qobjOiRcw1KSv\n+/inDy12ZNuKmdDY8D3PxMkm5Do6hUMBmc6Eww8vRKl7Km+SowWQMDpT8c5z\nZQZeb8dn/RdH+eerXIEeZ9svumNuWM+2gBvd82kGc1M81shlGw7T2bdYskrq\nnFUsIMY4aP/0NE1QnG2Oixhyh5J3nmTAlkVE92rGWplb5cES5AJBIQFRlC1O\ndAKVZHzgMn/kLhhZm/oKSqf4BB01z9whsD1m/jeKSa+xO1UzvQri7+ZYejgK\ntWywAiADE3YH5XEDeOTNiPx0Wyw4SjhHV8cuqCQIs3PipjX37uZSlqUP1GhN\nyEYS78kAHOlz42Li0UcTSgf3RznRAfUk19kiP7Yhnln7GQZ+swwwLL2pdoTR\nGEEF\r\n=aazO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGKNLrYxMLkvnUjNpCgKHVuOTKxQWr/qDOkBcLiVUuUHAiAngi1tsFrFGtiN4fayhc/MNHKl2k9QEfshJlaU+RF52Q=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556452144.58_1556452147173_0.8501823864713942"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556523481.57":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556523481.57","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"6f36f9ac30353a0c26cb551b4e6dc53ce80e60e7","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556523481.57","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-w58hfZyShjUzYHU0ivphCldf6XgVs6t2ml4/fU4XqwWbzQ4Eo01++tM9mrpMTUX5dKD97rKZPkD2iwkeCMvyFA==","shasum":"c505c2ad9fbb3545bb9d80c5127ded694b1fd501","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556523481.57.tgz","fileCount":135,"unpackedSize":857598,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxqndCRA9TVsSAnZWagAAb8IP/A4v5s8iOWl5QKs0Al+d\nUqLghvLBkEPYu1CQMbzHdLgthdt6Nt9fYzed3ET5hwxpYFq2jR80f7zHjbHs\nD8Qu9UJ0L0oN0IsGnZeiSpJKNL3Mg+w/1M43oojBLz6hvSQAzVC5GRVy2sEf\nKrF2EumGugucRoKm5/6qW3QUNrn83x8MlTCmkaDCt6zesCSXdOMl2VwtpEi/\nfQHgwoUfR+wfM+zbTZQOF7tyjfEDQ6zFTuq1z6GaW+Yc0BShYmFcdow6gFXA\nhGTwkyg8EwOZFF0w7qLw5rnkbQPVsKcI/bsJKjtl/YUAtBummrsT9bLL49Gi\nR4xhS4lxzYJdPlkn8DCZxI2Xna7Sj5AbLrmzrZjfnvT4MTdYVnOWiftlhjIP\nCy5WC+sBxP6CWl4UcksDIylgmwgU8cpqY5+R5s3+jkESepDQr/DDNHXW2Xwm\nPVxWUMVk5JNgL3cHs/iC1XqJ9cnzmAHxfmAXEEYYb0nDD2ewvxO206LOBZ6d\n2KdrQ9mQ5huCZ4jYPFmUpJOrsIYcmic2rul4+gFWHcpSR6vrgOQ8SoMvLoLb\n0gO327rVn994gGQKen14sogTL+cWBEBfhBGsJSx258EMd/h6+qHZiIMNalvD\n3mK5LX6Fcrhl1Z1ey7ITtDXMqYu+D9LhHNXG7muOz4TR9glYSqGV5V8Sj3nm\nSsCr\r\n=arNG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA8iBJ7H8frBwtBQUgh7Edk0vqNZPXx6Gj1YvIduYCMvAiBnnNjERAg9LPcbeQUS/oesRcruxy88FoBfSTen8cBcDQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556523481.57_1556523484407_0.323581464642857"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556535916.55":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556535916.55","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"f3e522478fdf78c4771692ab908c7836b0adf328","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556535916.55","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-ciWeo+SW/SrdlOC8DhJswNhrdJ7LNck7h7jbyT03+1+OswCPsRN0wIYLYKPtGxSXPgCFQNoqk/9kkAcmmAfEEg==","shasum":"7f97f0bb95774d92f81f6918746b0d8d36775b04","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556535916.55.tgz","fileCount":135,"unpackedSize":857598,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxtp8CRA9TVsSAnZWagAANqUQAIaeVijvcxySrhWDwIwP\nlMD3Ye89LJU+bWMgYpNmhpgukNhkXsZzgaN3IeHCGlm8qaFfXT3vcUhltyC4\nAjMIllruSK/IMB76ngIbxl3j9UciK5YHdsDGjlA/ovEXVNy8ZeEVaCCRis8v\n8bx9EAzznTtMR3cr12H0XGI8W7bljrn9VnGe3tRuNPnwiORRI575gEiWkvOQ\nyTtP4bBIvW3mCicvjlBqoMgzIL4N1VPIsiU1RsJYhiqQF0fLpw8CysFDq9Bw\nL6Yzx6vnXRsSzV22r5Y+0cbzO9oTcAeBxfYPf8yTPtTc+eafgHkAwlB7Kkrs\nQ3qVcQC/AiuQAdkhaOgruaFawJQjs+S7Ps/NqnGibv0jDkej8LWI8MH1YUR3\nXG6RrSJpfXmRoUoAP1IQMdlX12HpY0IUBtRrGjNrWCfwcF32V+HF//7TqBPM\nwjzOHSsCV0+2hP+vXda8M0nlT6q3f25ITDm0S4ngBz+8K93ivEZHFKylT22B\nqNPqX3FimWyrSimqelwsm/0+90DBbx+GMK+QNI0p6NYiZ1+xTGOm2Jg8GXyU\nkH/icdsDp9nchXZ7823fhFEBgYjOdUNBkNRtX4KYp1GFj7isIoAtcDdpIcr+\nsMV9jEXz0en/w5Ug3Mi0fY0LZ7+Ev5SWuzL7jrSau11uXwAojfxk04nWPRZ9\nrkUJ\r\n=1uFh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAnKTH1Gta91PBXf490DjBp5h/OuVIuntisk0jx0TlSGAiAiA7IBWypuG9NXVZ8Pvvk/+bgpE5Ur1in6zpeOIr3/qQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556535916.55_1556535931708_0.364482854510493"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556535985.54":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556535985.54","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"a2815db04314db560b95d47d6ad2a0e313b173aa","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556535985.54","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-APWeysv1I/nvV0F40b72yZhl/itwVWqG4WwCNVaOo/K+y5PuwAZTuBIqO8EOPg0lzvN46Rgdui75273R3/OZZA==","shasum":"8e21969185799ed4095393fa07a75c10dff5024b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556535985.54.tgz","fileCount":135,"unpackedSize":857593,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxtq0CRA9TVsSAnZWagAASpIP/A1JZd7PpUCP1vuc9asA\nuH8uaDno3XrbIT5lxDuGDplBUAvywAU9WbkSmudgD87V7o9gYiWGudJINXdP\n8fasfEINSk5kbN4w3+Rx/RCo8Ye+JGnuMCTGGwAZJkCu/3idhsuxttgoS6ED\nPBde6a3scmaep5t4Gbk/N4taCT5z88mFlA3kc6lw7Ia+t52ycgF7DDAo9nq5\nsLxTqHjwq/1TVXs27fBwFqSZoEa7IMA0POT+pGXbABiiX9F6bF5V/hRf75Gv\nqPSo+xREauDmBvvuQnNWeFQq+zABv5koafHwQvedgaIkGtrdHu7qCLkIOa5n\nlyLmxj3/t9N9oWiG8K3TfbIa2NLSxDEI3umDvQtkVXPiZ5IR0eMpGskjLIL5\neZJ3fwIefUwjrkUtEZHoHpzY9WsNxHAym8QMakmy+QP1wuYDKQ8BXXmqdUhw\n3m2yNU/QRVxnTJeHAM2Q7gkGGfqJCZyuvugbQWOOPYIc3zSC8gcN+4oUJW2n\nN+MI6hhYmNMvdN/11X6y5+PMNS1HH6yczBfHtldOKNVVPqBpfSqSs7Pp3ZNG\n372bzYsZ+qA5ijDpGylon95VFSoiMR5/gUzYhEUY4Da5WaWl9CL2ww18evYL\nXJdgOT+stUQDtGkchl0KYmIrCGfGx+SCnuWlRrm3v8P8hNq+POAhPD5tQMh5\nRcIh\r\n=vq9Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRPs/MTGCjPgngeZn/dlHa/v0KGEZVFhVRk9Jr6dMi1gIgAbrCbDX+1kBYaMjmJ6bpd+lBPm/fFDxfVhs4eOgMg+A="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556535985.54_1556535988190_0.18783323354997195"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556540327.53":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556540327.53","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"3c52d23c2e37dc72978424a10f1ac3c41b0e7df5","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556540327.53","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-Agbp6svUQKGrSvZZ9+pOC/giNMgyV2Xd7LOHnDRXeVxosl8sucSy0iJz+nRgsEdH8+SwoEFZg7BXhWqXpEm3Rw==","shasum":"df490553547a253e2b08cef91fa88e9c76f34eeb","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556540327.53.tgz","fileCount":135,"unpackedSize":857590,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxuuqCRA9TVsSAnZWagAAt2UQAIpgl7jbbDjCMv+jN04/\nBEiaA9kKIcnhg7YL2cOSY7HbLznu0vudUBvVy/9o7GFJF3iM95cl7YzuYUrR\nJs9L6thmcnDLDZW+pBQV6zVz8e9ZY9SPPY8KhcO9p49wZG9COTOYXAnLJCu+\nHi32oz4VRq+QjND7qO3YXI1buaG6O0kOyMLv72K/tYRX4DZMcHFR7S1+TyHp\niLG7+G6R9jILJ2gmVsqnV7xxdk2Lqk3zHmIp5/WdvDlIxFVrHFgCW7BFpUiw\nTrTxzfWqOqsWCefS1gS0/m4hiL/6TMIjc3/zFHdiANJjKbNsTe1sKR47Mdr/\nh/Djx118FBeXycEyOC7+IR3GPqYUrBMrs5lmeJBeneRjM/WRZCwUte0PQ1Cu\nBfzJWyBfVLyJAO8DTdaNm85Q4Ke3JqnM8uzxUTyMW7Aiy8r+elaCGOLyj/yn\n5Txuby5rHxz3u8uUmRqZoAe154EdN7fUxO2KKhWG9iACLHbgbFhMaorrNKX3\nS9VZFUzn/91UL1P9UDg5p0XrYnTC++cAXFvgC5f29u45C+hdM2YIztl3AUKY\no/lMUbUXpC/zmiY9HsWIrUyUvx4dxyVRFm1sG5jV/pPxn56bvMGmCdh639j1\nssIH25nuChgiSY1DQ9dAK/qd7PBqUiq7XQV+3hfE9UQiMHMOudMXYIt4d0lO\n5+Ui\r\n=7RYn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDV1l7dUuQPUUbX6vsDlj7Yt2OUbDhflaQ1XaGm1UCm7gIgX9apQ3lOT6RLD587xEZlPNZSg5fRkAlcaqYohX2zNeM="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556540327.53_1556540329411_0.7294511140500364"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556540594.52":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556540594.52","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.1","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"c92e9e952919c25eac47c7f8f2f799a34dde9762","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556540594.52","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-zrEc4DdbFACdOgFKkHArRq322bZSetjVcy4XgPn2zmr9OpznpjVdsR8UapP8E4kG+FMZhvfUml/hDsnkR+lAXg==","shasum":"f2fc8d367f2c8b850edd38ca0c6aa813a2083c61","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556540594.52.tgz","fileCount":135,"unpackedSize":857577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxuy1CRA9TVsSAnZWagAAvjkP+gMdGXkXrKHezP2wiagg\nzXT5FoJPedBKzJuMgbPIoutojzdJM1/oLRgoaIVjmIUg9om3/laCOeIm5hBV\nwFEPv3hiuPh5MtZ9RJjsZvuq0AVyRNl6la86Hbgz2OiH8eem/BkMTZCr8tFl\nvKOKVAO6BpVIJZr0UUFfgT2nkhKgnnM3rK9xM9JxRtxvR+TxLtwt3nnP9Wab\nrD0e6XMTU6pmknHpJVfnvQ1GumA7+pV7Az2TIxkrgTrbvGdkRJmYBHID8c/f\nuaHZEHW230T3MQ9J510XdyTfg7S9Yq6xnyfA9pqLd02v2haX6bHu07N5ud+3\n+a7MCFsNQXa+DUMnmRtlILzYd0vCf++fWQQ1Rd1nOYgAV4yXLNH8YhIlRtOo\n8cADrROZhhokHSeTcUvJgsJRmxiHn7cAOTZp/H096E8HFquTvsky+OnwOjiv\nrv848ZGQfIIyD652hCEG0wP/mxy+7tIVwe00nWcmZYDa8xE9v+0jjhbAGalN\nTZby0ZPZQ6ggX0JhjMP9vUWDZChsCOg+oP2gKKPoapH5LcVPrnjdkdm54kOa\np07MDz5o/cMa+n7NpWXuij3Q18tU/tN9LfEE+FWyAgH44OPXH6foVuwhiXrt\npVp3yT/Q368ot7Vq2r9Rujmy+lialx0IMRSRTQ0XAPmOMgiFXwIpczXagk48\nAPyK\r\n=RJ+S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJV/DGOQNXX7+E7Fv6+a6SyLt9OhT6R+1MTd6/E9X7wQIgEoYVauiFU+m2mMcST1s6kqDcHSlckX+oazmLrNTSJiU="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556540594.52_1556540596809_0.2071159227667756"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556540756.8":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556540756.8","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^23.0.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"b8199c33fb96129e8bb7fba4fcf750285b1a8d77","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556540756.8","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.3/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-1HFBlTIpGm5KhyKyKltpb1EE8wbIYC7weK1YtIescp5Nt/6Hx4RXPzf/sNjYe6R+gmDV50AoMUGahpr4NnUliA==","shasum":"1d3f64b0c7053d082d39b971fadd93679575d3e4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556540756.8.tgz","fileCount":144,"unpackedSize":2827762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxu1YCRA9TVsSAnZWagAAWA0QAI87r8soXE5lx3Q/7F/n\nhxpPcMeMM3/WlvPFSvXmN/VKo/JrTxuKrHLJMhEFN0XiFDNJXSPu9GI3Skiu\niHD8kRS/2y3Z7DMfIttv2nBFddYmrnwevcd8dS0rXRXEEVtkaejkZE57/t0I\nSxLyxEQDLfkeIGzkaBitogApGf+FoqxHe6l3fXcQazmQqBlZfG7jnW4t1cuh\nL/g2DCsDx03yKEk7wZatLIhGyROe6Y2T5VbdOplOT5xxJATgtk30FsAsNn5/\nysBNqarh6bFiAvkO6iJHuv/LcOqHiMFXmTLzhCVdx6cQqkl/ct1Qo6pvQHBW\nDCRQjviUnIzQFePw02nbKKvH8hbHtCNXrU2e2hnuzkRjNyrWbpVuKDxHiP23\ndNJk2GeQdsjGj+DS/q5UCsirDWUd//62DunOeYGBPlzv4/V+B2E38Y21Z8uE\ncb1gV7ZbB4Ua9/UIJhjABXFydm92bmgwexsUsKgHwNG7Ucpi+y78grREVku7\nt7Zil1n70Ryujk36sox8z2swi9nu4FfsbF65UkHskJ0/yDE6+1RysaZL5smI\nVbtrdBLzrHFz5LNLPmz4EcMh6jHTNRokfe6jbMcZINz1Do2Phloyv2l1ltHb\nZyGZVrjYeuBRpjkuAyvQMe8KG1PBnlga7yi1iHWxty7RUnPATfniSLyKQ2+h\nZE+7\r\n=6KW4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCE0Ha1uTURA++tiY0+fQmRH/zD6o2XBQj2WSnF0Bd3MwIhAM4kHEXFn+3CnGFIy84kBRs98qYL1IfEAnXVqr6Z8ipy"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556540756.8_1556540759799_0.7727180615365132"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556546966.50":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556546966.50","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1556546966.50+4854fef","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"4854fefb7f4435b1b290c452afef02717e0afcd3","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556546966.50","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-nEXCNJMxy6cdPCbL3wO7mUJoF2nRbzMfnrxurPMclO4fTwk3lgiIpCb3S13p1oQcfq9CZ7+t+RlrynrjTYDlQQ==","shasum":"ae1d9e433958960b0f374d0cecaade06c5e0c158","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556546966.50.tgz","fileCount":135,"unpackedSize":857600,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxwWgCRA9TVsSAnZWagAAH8gP/iZBVgO/irtjgnLLa/nl\n4IyV4vnV7UNKl1HxuMtBpiMStXQ2g5nFvID7hNzd1Mr4eWNjK98vUAf6BeSp\nPjDupowy4J7tyQB1BkGcE3vNFRyp0zB/tHzZb7WaqrrPRZ7YK6fYM3ik5e58\n9D4iglCgEkjjpGubXlIKuPi4zqPrB6GayQtHTFxd6VfYL6pI9XmL+MBdGAPl\ngAIor8Vs0BOptNiol7Jqp4pAMBXRD+sZWOlU19IQIb2EjF/IFhYy23fE1k5n\nCKopza9dHba7TnjRTXtNk+4tx6jC8P/P1FOUpb7oSV4EORT/uTTLREiexHDj\nJKWXzNRquScnQ0wxg/QaYiMbUGC7t8kttM0ajgRg/2AFo9V8KoBqlaP+qGGH\nLkYiaVOafeW8d/Wd3oUESYx0iIwW2ToukB2cVZWbAE2JiOPZY+WTLDQkOv/m\nypRlzoaFEfiAdW8VFF9w1zt2xGMoTadR7WgYauno16zKi0oJRoHNmrlPnR7M\n7tchm891jpcFCMFCBebzjkILwpw0KspEy55PEIefwodk+wmlHKrx54hX5pn7\nsuHKw3RGo25+yV8Ag9sS52/8LOAcgRFXunDB4aaTehclH3i0DXFxVvFyOHH0\nnTseAng5rv/xpiSb2tu0sMPzLhrdQyshHxNljaaQDXwXInlshsiP0gHrxWNp\nrpIX\r\n=kUVR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcPxFg3sTrOI9855sF5kStwATctuMLhO7uPpGLogGyoAIgFPm1RatrVXIBBbGnsy+lzSQJEOPdSwvysfGlgKA32hg="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556546966.50_1556546976215_0.3284028162255217"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556620194.11":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556620194.11","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"71a2400c42ceae0b18b259179137199ec60c25a9","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556620194.11","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-rUVGThBEOQsfK+HwMAVTIpA4ANjRxgyOUd2NChslej7LOSiqznRDgVn7/mga146JlxnFHAGm3VyuQ/3kvaBamA==","shasum":"4bd0ec0f71f9ac1b7f8fe560097d7eb9aca2ae67","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556620194.11.tgz","fileCount":144,"unpackedSize":2831738,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyCOmCRA9TVsSAnZWagAAfO8P/Aro70QebYO7IiYeiCQN\nqBeuFqIqOlEIoA+fvbnrKFAoXo/Gi5ltcxHoAssOrY+g8+md45/lWXhJhtEl\nDPDCQ9pU7uprHdGqIcDKqsbj//4S0Js8QWDn6ChrCrlLVzjrf4WShEj8Mopv\nW0CMuO1syYkw6AYivX7HBs2id6B8FmiElZwiIcXO1JQdDrgcRXoAOK20vgOX\nm7IgA9rVGUkObN4pKJKpvRCbetXXWs4i41WvhTdL4QImphJbDnQuSyOQsivJ\n0LQVLC4O8OSTdyUbGwp84gPIpQGHosi2XvWFppN0tISPMNmVuQJ/tSjCLh3V\nZtzjXKw1GAOTVhDVSnm2iJupSzAyjkuWO2m6+tT6kxEyxnUtHK2FRpd7H49N\nDq+h5jGAHUBRCt5Qx5EU6E7Sv8kMzKerN6SaZsUOESxnCJ8DxLgpI4Y2dp71\nCNVlnXddyGVtdPPCM8GCy6lNvtdQDth3HCHBiJkbAG0mg4y62+jiRTzWodlN\nN8ebEXrF+3J+HE56dDTmoub0A56FK8JZ/56EwMlgZ6jqem8DLSaCFM1+StiC\nHe5IU2wJsyoN02bAgOgVywYtf+WRf97KG57utvoSFW7e/HBY5phFiv+a/Gwz\nBoAhP2VsKRo/LVqdIIKfhyszg5Eryd8W2wUKcEtsFOeYufVFSYqKDwYIA1CC\nrIa1\r\n=K5vU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmytHdX5oGTPuPHGy/eUTbK7Sj9XWHiX+FELILfTyI+wIhAO43VqkvncLhQbPwykiJF4eg3gOKdNpDlr80kPQ0VQQ7"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556620194.11_1556620197768_0.305534427245685"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556626989.49":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556626989.49","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1556626989.49+0d2e4d6","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"0d2e4d681b4f0616b6399170a9eaa0fa33d88dd6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556626989.49","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-iQ3pXMdy10xlozjQGONZrM1qTX6sqo0PjQsWVPJ6LmvJwVVYI8oJvx/WUmMW9rhWkbBssCAm+QGyt2SivsWwzg==","shasum":"9be62fe63d190a55f9c00a65995ba645048869c9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556626989.49.tgz","fileCount":135,"unpackedSize":857652,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyD41CRA9TVsSAnZWagAApR0P/A6MkEeU0UsjYkuiA58f\nQtwAsRExeXg0naf/KEfNDDR3wWuFuObMl7NHzs5mBPCzieatfoyRvRUP80fH\ncvXwwnToe9E5hArlfPoVvZirlviF+HfRiAfTDNM3daoBNbo321gS+mQV0Dpu\nrLvVE1viNHIYFxYrC+RsSb6ZqTi5SaelvfL9F3RlfnyHftfSkYFrmtBYvEIw\nVDGhVLjFwwhOCRLI6V0cb8yk7xGFXHO+RxUZaPVTnOUGLO62NXGeQ4B8q9GL\nl/p6Sf+GI/e6bKHJO4y0ZCIP6J88N0wvfJnhyTbAtukVoPp4625iA6bnZ1lu\nLULSsDCfkDDE7/jHmLQjcem9FH6I7SP/1CGVU4kRcv2Ujv6UB6q5KMye5xCX\nV4rkq9a1LZGQAENpkyhPJ9B/EliJ3leKdkl23IEYY/zzwwSSqVClFjBJukg+\n0JCgIu2/M27igU0l95X9MwVNnb7s2nFcOIi/VPuu7AhhfR0xIDDE2M1vqzRQ\nYOkmQMKoNcNIKQjEQZ8JprnWLX34QZY7Y5Iz5Q9VzhlCqrYw+S1Vh14fxrMh\nKGBMcD+9jFFZFlKU9xBC/smtebIK3STa0GT8ODJ+PJZpkPiOsXZ2IaW4zsSe\nMXA4P61VDfkFwTgyuX5YDw0lG12zBlOOI7ki0JWGmK+0xjf4Dois7jKiM3jv\n+zuQ\r\n=IHHs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvydeTsxDGp3fZEf8Ewhfx409z46EZRKV9eTrBwJ43UQIgYUwd7y1D5rP9mfpiKar2AjXlVdWA1jP2pv4c/qUlaKk="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556626989.49_1556626996738_0.650108799910966"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556633767.12":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556633767.12","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"b9a27a38e08c5350c9c9a94b2d2d072eee27279f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556633767.12","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-cpE6qLEShhDDRVBV/KBvtes9ayPV0Vwku9aqeDHUb2HkexwDGfkWkCMfDBnOXBsBv/R6lcAxmJtAH5t39mArkw==","shasum":"6503dae892d697adde21089677f30e82e313b2ce","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556633767.12.tgz","fileCount":144,"unpackedSize":2831739,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyFirCRA9TVsSAnZWagAAwxQP/RP3628msPKDZWPw5K6l\nX3nJX9ohM2JFv1nJ0D5+ht6PyNDGUuMtI/5Tk8ZOVdL8HRmy6f6QMrkD3e7r\njGJLW2kTzCGeG6ena+iVlzqJiJIfcet115eJlUpca5W74qTOAZI7HhvugeCU\np27NWVmV5Ei9KlRNYsA/g3hVVGREtR74LndbXf47966QyiIjJM+Z5rC0tSgR\nqWBYsP8b/28Il1Qo+LV6k9n1jGxOqdPrxEqORtGFhuCnLzqJDbpunYv8jhJu\nKp+ufz2jDTjUw1NsgT6rMJO/fWJesN0qc7q1s2xhvD9jWtwwBXQxhkOdE4wF\nOmJ1/P3AfwG5Nura4408dGS77ujEJAm31uXnY4Ky15i7CYfWsAmfaKcg8LyY\nFsePi/gZO9rMggBNqWtMQiZcxpCUUc61PYUrtGZYIrjyW6+qwjwl26t11rFc\nP7HLTYaV86KOK2EhFFxuGfVmqpRtWZUkRa98v1RNmr9na3UTsG0J4hpFmVTE\nguPEmadoccCoF7nDJYM77S7bCqMKqgD1OjP7kG6C2l68bdhAXFgGhX2j5u7z\nzno9+Xh/aAY13hq6ju/8DcWSzYu/H6UPUXFPOx3AHsmPiBHMRQOBSu0U3lrZ\n25tHG623Kls/+ACcTl7FJOIU8pehpt8Ki5Refa3z8GjAZDZ+Ggrirf7/EwZ2\nzchQ\r\n=KCLN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHhrOPinl71MW0D8uICn7d+VKNCwbGv+/PRKF4+KfveSAiB70nv8NM3yEkbki1kb8Qn0S491RVTzhqdXhoGZqmTHpQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556633767.12_1556633770654_0.8780165218611486"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556635488.49":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556635488.49","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1556635488.49+bbc57c8","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"bbc57c84d34c0464175144189fc4c6dfc9024d61","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556635488.49","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-0dsNqapuHCZ5iSFhv6cKg5m7OhdGE9tHDUGwjAZ4+TrQHdClb27W/N6m+bzv+hn8dokLdjeRlAsjmqXUl8uPbQ==","shasum":"7cdc4ecfee448f2bec3d2e79b35ecf09f43635c7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556635488.49.tgz","fileCount":135,"unpackedSize":857625,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyF9nCRA9TVsSAnZWagAAVpoP/RRpyEXzWpKzgRyfUrYD\nWlzxQ25tx4LrH4MUKjn9hVw0IHdwcug/bSrC8zIHhu331fBBlVdMT74gCa1D\n8JOOD2rXUOLwxFdleTfifdU+p1uwZeZzYYru+KvVeVJQWz2Fi83IbrMYve89\nX3XpB3XvapD8QpIHUnSNuMMP4oXpDWkrPOw4Nu8lCZykN878t1gYYq69BnzX\nN1nXXvApNEhVVH75GmCq2cK/p7xLKCeIcZvWH9PUEnyOnMDf7RsjetB7sFKL\nnyB/IHOPbu68XXn2LdWo3G9FZRCNKWN3uFhIttTEPKKto534jnpQBH2qVzKi\nRex6E94qfKADhMZ7jD20Nx3O/hqLGkbjwqQ6+VvyRSrAU4X6AfPEs+CrFk6s\nQdFmvJovuBSZe27O+GwKA3+O8Dc2HEZ2c8pzcdaqBis6SOclETlxuyvNOX4P\n49jzNALEinTp9lpTICcBLGYuSYy3Ex9K2H/daNFPGuCWjU8pFu4QHuxj8u+F\nZSNJWLQJ2liTYY8nTuxHRdcsvgvRL3R1DEDeS5CYhg/Dmv9yocyJD+UGEadR\n5gHxhxWgaJ5OOAZ9dA3a9voFW54c8vOptsnGDKTPcVFsswSbKYffpv1Jbv8S\nD3u51D6TLgkpkba1FB/ceSnu+6uUwh17P+imI5G7Ld3Q8JOCP2CGo3Xcyur7\n0nsJ\r\n=85k7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCIE4wCKRzNU6by6Ez7NBK94wh2zzjxM9upsgwmMqRzI/kAh8Wbek915rBPdlCgTJ43iREnzxOFAHBqTX2hS4FG5dl"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556635488.49_1556635494680_0.451751828379785"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556708831.14":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556708831.14","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"6bea5912905aac51dee3edece6cbab6db64d037b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556708831.14","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-ssjXseVSwzDQlVGhcTZf8Q4svXZ7LOuzQg6uRwYMz7/AUlekHsVDCWy2FakrcYqnxQCOtqmK8rpkiVKpogj7KQ==","shasum":"da8cbbc414753e0788da79145e035607d1f06768","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556708831.14.tgz","fileCount":144,"unpackedSize":2835703,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyX3jCRA9TVsSAnZWagAAhcYP/3IJaZ0iXhcC47AofpaC\nX1RUnBwIHbnNM/I7H2dqi+4kLVMqtLiGgpeRncV3taoOGPYBqvFIt+p0kwaq\nSpkFcLb2Z8ZpwI50GFjY7p3WO93UUjwu8EphjffLc2O7mxs3cL6g+lzNDMlA\nPD3f5CYuL3cp6lgrkFweDwitF72YD2l8gMsOEio5AeFxHWP8oRoJLWSluJZw\npdPmDmoI8af8EKMKQoGF4T4p0vUu8ia2cKJ5PBiFuSxP2IetKrqDAI+WGUed\nDthaVoLRopWG4Fog6vs6wvyBGMffPyhblkHzWBiX9nwVV838Gy+/VOX7b26V\nbNsc31xyBZsAap4B6cDrFUVRduWEPeYBTy98cfW7K8/eHqFmRngB5M0I5eEI\na6BEbncdeBbLqUkn/FpxmCENqxpJsoVSgch6ACH3zpjoxD2OQEYBEQp34Nqe\nEfUhENe2y6QE7TVy/mcFpA1Q5dCYWKPpVLNgulIwbZvJAd++nQaFQ4AT23Ag\nSDnd1SUq2S/5/4nDA5c/lO7kO4F88DUmpWyoBG5VoEHHVw4SdxQFaWYRveYq\nOBdLXsCsc5WfWdDostkEzj8b/+b0mDt9/ns3QeaAy2Ws4+ih3E9wcvSj8/bq\nWUypf+VSXWHyHfd7eJGWPCEfzWgiPwhjSlsj3tXcXiOtKEOg/Wkax4RBgG8S\n/OBW\r\n=4Pov\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFpVw1ivakcaEqewtNWHAz+jBRTzV1QlFKZWR8hDjhYJAiAPBtNEu6lzBmRlVYkZkzYfqDThoomN1CzVEB8Hqyzc4A=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556708831.14_1556708834883_0.9358917881962157"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556783006.49":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556783006.49","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1556783006.49+2384a6a","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"2384a6a934e35357183338edb23116102ff78765","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556783006.49","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-L3JF0fl+4OQHNGNpOlyFSKbXkPb21YOboeDK1aq8ooUsTUCMijZ2/JqEtHs3UXJRZZarvlvOpQAd+U/ocoQvow==","shasum":"beaedd089c27bb505eccf3db31f1bd9e20098ed0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556783006.49.tgz","fileCount":135,"unpackedSize":857603,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyp+lCRA9TVsSAnZWagAAQ3kQAKQtFQIA9GTCCuKbRhn6\nIgH9TjUfs4dSaGnPLQHKKdkjCaQSan2iFzmx7yysxcpcgcB14/tUrGHmSWeQ\nB7CNgoRTm2/fZX4sG40t6o+WYi8gSVJJom2J6OBcvyyVFlPjh1Me4dsZVuH3\npyaVux8dB/GMl9y8MaV2MzVSo6vKVFpZSj41jPQC9i8V/1UMf4CxZjiU9trr\nduNhMT0YiKigfjmAVZKhsyzgydRaY+6i4w0HBINRbu3QY35NdR1SoybIPH3U\nB1KKkTS3aydP3ekHKV9ZyeLvsu1F1WxiTUJ6NSXyFAyXdvOud+Wey8d76taH\nyTDa4Sg7Rqnrbu1dvEZfp0yhTHChPXbu6zHWCoz8wl4YZlRXziurmq7OXD8T\nWaU6fzfdYTyulUso82vEJa/Yt9YTy+RuE0YxqnzERy7s07HypU8oHw3/gmTa\nHwBOCovcd4qRGYGSsw/bCF5nhKm4tV0+uJYxU0KS49Dp4S495rHuyou9Is9a\nUXTTq8tPD2lgz3ELLL4HxLM0RoF5k3bJbXf+vmpF7j4iahe0bIJsxWZUmOrF\nKteaGk+HNjw2cdlT7cCrvuoP0rCG4SVE7x8re9EQ+O3bpbnXeTG55asvXlr3\ngxwY0AVBuNzQMb8ifs6iCpWhCrd3MLAPeOt0WDavCqYTFWoR/T9RIoqn5HuM\nmRlL\r\n=nEjm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICRVae9Ohwtt//7O9Y/Va+QiKALSCOc5iwKPx3dHgl99AiAJ3mE0oQMhYyCyourrnO05ZdBMPxz0aJDSMjpVJ+CToQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556783006.49_1556783013028_0.8105775257804997"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556789981.16":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556789981.16","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"5c67a9e82aa33164dcd2d42c6d16c033b7e3005f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556789981.16","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-i6b6QQ7Y4cYtW8Adi2Z8f0LqL/VzTAPoBjVW30RORXuuibF4w3/wFFmDk0J/TNrcHCKqqNpVNEGfFCKBdXBGlw==","shasum":"c3828c4df67e4e36b70ec3ee28ddbca81c5ecc3d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556789981.16.tgz","fileCount":144,"unpackedSize":2836057,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyrriCRA9TVsSAnZWagAAUgoP/ROXgufu9Bq2T1CG0+cC\nDF07AYi6IAb1e9XciSvSWaCkN317ySEDlxnyrVjROKt4Zvp3DHvTLn+HurwG\nI1S71TUfS42YmPxTvUKb+2HhWKgzqoHdFAZd6FyFa2vRQHG1njeT6AkKztZd\nx/57AeDdosbB9XUhiQmIwDQ9ZSGPFh2jym7igXUsuakSN7MFnnXGZ6ZGvkp6\nvqr4cmYl5q0KSNw4nAbmFr4UKuESjZdsLZMi8b0Lyb7fUc6jPOn++DTU/z6p\nfkVuTiOLCsqqKh21QCnwjsShHo1GWLT3M36pFSnXSGvdzKhVsdo5hEntk/Yn\nVUIRI5/gjp+c1iV8xqcWmgdAl95xMY3Qe9YsgNeksalAb7Hr7aT3sp+hQew1\nyHTB0UjhCTbk+HAQ/+Ytve5x4zp9Yd1q9OC6/Zb5gfiOV82pb62XCSO6VCp2\nyi7821F62LSgTthtmD6SepaOEKVnW3NDBU/050LYimBy4ddwL8YiIXrxHTVj\nxkLtIS5+NBqmNdvcAu5fmwcx8gOwNP4prh25OE6GESMwpeO/SpOvZxdK6mC/\nq7PdjOGE8gTehnlkf1j5ou4wjqOSGnbk48h6VCt7hU997Vn8s0eVFsIcd6ts\nd5eUFY3rgYTy7+lnsIyBP3xXKSpy7T/DYcqVDSc4QXB2rnYqE7gxaj/+jxFf\nytHa\r\n=1CFJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGqFYlFH8q4zy/XnXsuWMVMB13gH3Iz/rguNxj+sFNxgIgH9KguRzJYFukj04kVSuPtjSMFoMSRk1O+aZXGy5NLSw="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556789981.16_1556789985162_0.41174094633302616"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556790188.17":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556790188.17","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"636f460e2338974758506bb9cfc720c336427ad4","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556790188.17","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-sUpFAiDSzKOecOS2Qolf0J4wrQQJH4n059InZ2CjGf2bR5WnVMuD4tlEagWiN2iSN1YMIzFfKbFHMXmp/hgREA==","shasum":"894d43b6631288bb3408e1f7196c4695ef51c4f9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556790188.17.tgz","fileCount":144,"unpackedSize":2836050,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyruvCRA9TVsSAnZWagAAX8AP/2JnPnH+2IYpdnSbomd5\nI9uYCg1LJPuf6z22Hdytq5IlGbHxXRdtK+3kSQymx8ux78w3UDGndXqpWeHZ\n1vespo4TRKwuqWUsHsXGUbQl/vTCdyMDxsGWtc+ZlI4iQTKmdI9aOXCABYBO\nuw7nIQI2x7CcwyOwC7JcpL3bqABfvBiqcqSNdmQeYKLuT/VW1lQnZOQMnbho\nRU7sVzSwiTOTL+K1c99SxPdvVfPy92sPQJkQLAJhNuURLK6U24nGD9UXXnHy\nuKJfC/YOSZqIggQaeQlTGu5Setp6L70/geYa6Yry6KUH6yCiy1/o2aQ+c5v8\nXztKL0FYTbaSQ0FG2D3mlrA2rmIiZpW99n7lGOvNfN8JGkY2rWFKMUR17rOl\nRYitV9fzLUZ1gHpxRqyL5H87r/HgXIPsAuJUX6azefwL677CdYWJZ4v03IvB\nucDZnpGHnDOzIVVFe86fl/WSfssL3213ke0X5T/nS/7nC7pMbuPtTPnwoI0r\nwjRoBjKLpv8Kn5c9rfiI//8ULoQzltGFEQY/t+QJe6Nx6GCi2JbhkBDeChTc\nlQCZqyNlMlfpGJZ03/6gV2niYSzDhlg5VrzEneXZV2YlYCFjZZb3RxytX40c\n+JVxJEZiDHSB7CfYPmHCjeGxl9WypZorU4bBzQYGR7y2xzvGAW3Gz6gaQAfr\n+Fc4\r\n=PMCd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH+QCldHaGTO+OfqtuYeSx+jlcunrUFDpsRJlDA6d4K1AiEAuSKsGrmxH6/39PuEq165zuxLyE3Hm2oZkoJYSoKChWg="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556790188.17_1556790190864_0.22265619768313072"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556805319.18":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556805319.18","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"f079b35f06e6798bc16c53fd2de473ed3d105039","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556805319.18","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-XJ4MWPdoCuox1mr/h3LkNp7Ex8EjDO0NB4JO0+zuWv2vTGUFqqHlrSKZ8MSbUndwcFmDxslScmqhgF6CweH4pg==","shasum":"1c1f701c1ce7df61d815d395d36cdb5813b40fc1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556805319.18.tgz","fileCount":144,"unpackedSize":2836734,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyvbLCRA9TVsSAnZWagAApZYQAJ0L/EDp+fsI3TaqUMaF\nr6fiZETQWo12cO4ZjKy6ntWRP+1ljWU5HxZQQQYjrDcyiJnlBeKC8ctsYeR/\nxv88wVkXPpmtqGMuGQd5mGvKNcGWWPi+uwFIBB5iiEZrPLQhG/XU/RtQsKRt\nVroWRbg+uPGy8p2VppkRa2a02n8C8oc0z8XX4XrPkltAojbDUxCNjiDviJgw\nl4fblnPZlyvvU+EkHxKNG4WYgAq+Dy+taEmLsc7fVRS7/R/E29TUR4t9LrJv\nVJku7piuORXMxnRcBXXgcFagTELZ+QLygFj3GokJmjRktoLfV4sMP1ZkSKiz\nQEv7zLPCOg7wcFPtxigP9N1PtLfA21e0pswS01P2VFDl6LA89XZD/JKX+OyV\nQ1IuWzR35BGiiIIcGnlCXRrVdNEqrGFvUpn872jKW70uY93jM1gPGZad/yj4\n1OhQXKRk7heiMcXdjwUHL/Z0UxFubU3XeNv200GqeT50AZVk9Dcp51CCJPbV\nEdu2gwDg4VTQP3F2DOhLYxQMcF3cZTp9owjAGl7hST0umhscpvYmpsbTbkEY\n2cM956eg8zgfWwVrRzhDtlDVSsOcnXiqX8B8BXuIep66qD+hkWHf8yU5VaEQ\nkDO1vb6Ec4b1ZXrEgUi/DWbSPsxdISCZKzug47Tc1xPJe3Qk4OqcHdkZNePf\ng0zQ\r\n=d4Xh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC/a2FV1+UtCn4gACkiq+wpyolo/iTFneuv8TOOJnKcFAiA6mahk512gK2OSqbGb7MRFZsODf48M5V6rtegDmHC9Kw=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556805319.18_1556805323169_0.28747762288798984"},"_hasShrinkwrap":false},"0.1.3-snapshot.1556808531.19":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1556808531.19","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"07f1041963468470268dfbf31f4a7c0b1939a67d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1556808531.19","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-+p9BOXYM/bPfRWpDxBzjeJlgU95y0yCeNIylu2eDKCbIPjyq6ojzi3tuwk33TPBE9AU9hZu7F49TP7ZrDkDo5Q==","shasum":"a21c946fdf4bd6a1b89914de721ee017f35e14d9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1556808531.19.tgz","fileCount":144,"unpackedSize":2836882,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcywNXCRA9TVsSAnZWagAA7/YP/RXhX+XGR6gg2SNQmSb5\nAYemlU4HCQPdenXKqmY+eso+CpK0OT3KJEthjnQftyw1Y/RkFrpVr64POyky\nPTzojeFBwpqkEqtIokm75/6fdrs1Nx8RnT0Je1XtvTMG5jvZV2me1mQNJAZy\nZFkxruJfpp2H6s7hInv6UVTK2tjADUEM/vjpH4i9ynpg3/i3MpyQZKETyopU\n5KwGRpL3bYR7Bb1y8UpVaNwRCaZt1yBB7iXnEcZU/SOy4eKVpt9PD63GmA+w\n+9lJZ+evNJrII56O7gilJzjKi3jDoXQZnp6WKrEoWdwo/0KdOX5QYNcZVAE0\n2/nuMuU6uxQFZVr/ReKdXXq/CQScuJZvpQLBpKK8VLhGPCpQ7cZwLCEPm1Qi\nZUNDqGXiUpbkt9/TL/qQXbqhfhwCGR4GIF2fozU0cxY5uqhXBleKq94ZW+Hl\nN64LFlzctbdhs9uTP3IxjmstfbLqKyR1c6L4yABSs3ruUR9R/95gIdpfiV/R\n9sQwrIcswFRdAydv3pk2j0ZV+uzeXb1inmVhQ1WAkzTmGPFlfJY06YNh1lsW\n0F1KCIk/T3AhbxjeknLZ+UH14WkecaTvRR6eD1xFVIVUJf73b4e+xDf6kV3b\n74hKTxhCdLLHOEdBwwOBszuaxCZbQrhtG1jIftKtuO2AGAM8I5N+3D0Kdyt0\n12IF\r\n=Mx11\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIznicVux42HejEMO+eL1MAvUArkomRhUCRLYXQW0lEgIgCzJHxL1RGJJx75UOu1koHNTDbMPJ4stKTHVgPGkxVyU="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1556808531.19_1556808534857_0.6851782334813163"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557130480.49":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557130480.49","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify --experimental-scope-hoisting --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1557130480.49+770aaa7","@types/uuid":"^3.4.4","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"770aaa749a3c54f93c31044e11002a5c2f12c3d6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557130480.49","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-6X27k8S31oAl0NHdOqsN7MD+aG1Bee0iWK7j/cm0wvRl+HijDMk4pSMW8H9h1zWyenda3lYfeykivMuyS7pDnw==","shasum":"1dcbf8d597c125748df710b00fff7b82c7b07f0c","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557130480.49.tgz","fileCount":135,"unpackedSize":857627,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcz+z3CRA9TVsSAnZWagAAkc4P/iXaB9/0YQbHI3Y/ayvO\nnsOI65YDhyX7HxKywkYArDI1H4SzTwTqN7Iwn6HjySem7sk3klcXdw37J+sn\ne7lYLuhU6U3MDQzh+Kq9OYbSG8lsnO0YJ2vq9t0QYA5c/tq/y30iLJAg2QKw\nMJDAOGrzlvA62oqL4VEdoxHsN1z1fusLsOmIPDMMFsftSKuRYpPX8aArQ9A1\nv/YvRt+FD2tA9hPHFQNzbYbbK3ZTo1Yw87WnJ/HD4cjMOiVAbKIDrLeU8M1B\nUnvexpL4tN2poBuCDMggfX2dLvQwhLnD5nCUYqKbLLZ3iUduHXkJ8zsakiaH\nsnPwwJ/6a0wGMNl/dYEmU1U7IAzm2LfOdRcnLM7cJDs4R3e2eEjOLijfXZuk\nvYF82s3GtMaok91uQw2v9pYgmD8gwABxZHGrx1fK1sA9nirmHuHDEChMfVHU\nvySPJrWRkTQ/ZnNbUPaYY9hq2NJSJzVjQMRSvGgkOomDdj7UmtWNk3SVcvLC\nrNwgS1LSuKYOo+XDcrfkYRCFIKecYkyjItnJ2r9eTSvt43yJfVUhCgXrU6Nb\n434SZgnhmdnjr+gAHWWxOhIzE+/gQrqFMKqznX/lVf1S7MexYDe2AxwqUWG1\n97MKLHEw+5e9TO5LRDwRCYu/bQLXk6dNay/skIFaJivhUlYf/nxETlPRNT4E\norI5\r\n=P7gM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICHEzIsYS0ySWhulOHFij8k0XbeZxfAPWerN79p39GvgAiEAvWXZdndX2aZdoQjSUZF8ynYvobWmg1298iXpMGi5I00="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557130480.49_1557130486962_0.30195775050127804"},"_hasShrinkwrap":false},"0.1.3-alpha.7":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.7","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"81172c55f210163a5e4553d96cc79efae73fcc4f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.7","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-D9IwZRSpEMp1fjFxvHVlqMmSu4coone4GjrN6+IZyTO9KlXQrKi20zEQW6yIQYyFCXl2PrdUpknYa8ab6vH4rQ==","shasum":"ff64703c6676f2df8b6ead1024e0457871ade49d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.7.tgz","fileCount":144,"unpackedSize":2836860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcz+6jCRA9TVsSAnZWagAAq10P/RVTAdHK8oqn5XDHOV60\njxhqb7ruLUhowWRxGKTgYLOHxAOee72HDUGUvW3dVfDeGOv0MLZGsY0dC1bi\n4kBhrubo5k0GeeHmpyTXkrAY7K9c8G6z8QL4j7OHCfhbKJC2yRzTlegrggFy\nIQbUj6618oykTdr6NvMfEZAMeaGl6N43Zv3jDIZr7m3ZqKzhpk3cpoUt842J\n/RKz5qeqCy0NzK55L0VJwobdiSRK40YwtzQS8o9fCx3rwFMxnuz3o2B91ys2\nyJjfWsxElG/oFFBYf4JJRUzQUUlxlK0itXnlmnhHBFnelW7alW8PxNBDG9J9\n6mZUHPgx28CE5OQFRcc+dfV3WszjdgpL6i4lustM8mdRGFAM/ltE7KTgAuqv\nsWP0a2SR6j4kJAp3S3puZREQ1Pn3b8k3tUT2d7bSTYMcgUtZTXIz+Y0M3DuY\nnSykWnkixMXXdeB4iG5KDnlWQvCN5FSe9K/gpgIYtOmZYNOXptfYHjx6doxk\nWrxrh+EwDeMqCqWYGTOoFKEjjXfSxvfzuLHkJfbB3opRdFUDgXstGhjllPVu\nQ9LiIrGqlsfs3cEto2ioPpU4Vllr6gyVBhdNAiPM+U1zSDAYoBRpAImz4yLJ\nC117cZ+aE0sNxLbQOy6tJjBePlslI0A/Lk8SdHhGms0u/GvTvDU170WbO5T+\nAIur\r\n=LQrX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFPXKnciuggrcXjR7Uyrba3eyG/ypyNTWpUSuTnEAUUKAiEA+50TPekKJs1hY+fxUbORvzxnNzHJAupHRLjQTaKVHn8="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.7_1557130914989_0.5157642712733512"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557139013.120":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557139013.120","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"3bae6c604061b25bdd0f36179602ab5ae81fe4f5","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557139013.120","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-XUqAcia/T1wV9Xs+PI5ZNXnjewKAejcufQ0LmHOkUmV6OdSJkkadBCKHGsbM4AZgREceWr40CSZT/273AN8qhg==","shasum":"ccb2a687b9419c87bc52f9734c31cab8cedbb6e3","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557139013.120.tgz","fileCount":144,"unpackedSize":2836880,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0A5ICRA9TVsSAnZWagAAdWMP/0c3QwJqSxvEoNWOOEBn\ng67QQJAf/W7+IXHAtd2NNROEeRHAnMeXrMABaQsFuOh5maBs9oORV4m506yQ\ngJLOnJeRNK0hli8llRCYW1vtrNy1ikg7f9ta9/XbhJxMJbPHXYwW8D+mcmd5\nlJMkzm+uuuaGhXgfvu8w5yYuGVPdKbTcfH1plHdQlDwPirLxgUqn2CO42gCc\nvuJ9uvRX8CKcUBea7Rm5BQrEM630XYVBcMKpYR6OmhUxPqaxU5p17tm4lK6y\n7V78wgxX8YTIcXnmzCHoZrjA6scC2JyzAyAEYy1RaaeVr/vrN4+c+mVVzxh0\neh6baJrHPCragKyQy4TyRU7toH+d++KoU5igwMYKAbVEya0d+7njOINOjST8\niw5KdyYfpkluUhB59QEFiLEjh3F+U13BSERV8Cp0ebAX48wn4nPi+3dh6JAa\n7PXqSyMJzMMHF2mgaz4IrbZIFWqF9KGNG4Qpn11iv2XQu1aDIRB06AWo7ajp\nHZtZ+jgZRJoGw6REnPX/egb2qP4vLTz7KYPBPBbWd0Ya4buH1x5VS/q1whY3\nElxeJaLHyW2XLsj7SRV+NXYjx+v7OLc5VDu78rs4Nw1AiuX3FMLD2ijiFN92\nsVEf/xen2bPgSjLJ9joP3RswJkwj/7oUdWzjDSYPXs3IIlp8ETDTc5+SYPS1\nyzql\r\n=42Y9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFjwHhgk+r1xO5iUciqkGJZNy4NSPxfyZPNfQOqJt/jQAiBBChXgMKsk5wxxWZCgm598ImVbpQloXAydMv/FdQrc8Q=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557139013.120_1557139016155_0.4723173144683759"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557140321.118":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557140321.118","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"3543efd5a5a5ac57e5bf8f7d09a55ce4b6d6d2a2","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557140321.118","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-EddNf84zLp43Sb2QAYItnbqaT/rAXf/+NruyXtdt3Tb27PGF+6ZuGgZrKjAQ60EELPH4/caWUqg+bijTlJSZig==","shasum":"b9f801e77e309c7f048d32cbe004e0361426329e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557140321.118.tgz","fileCount":144,"unpackedSize":2836886,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0BNlCRA9TVsSAnZWagAAUXYP+gOYnHXDdrOqdhKotwHs\nrqwakU7HkZDUx2ygKqzXfMonLAv5O+jyZRYFaEgYRLCizLpu47zBmqrxOnyn\n30ZpjiXyF74LJZV2RWIr37ejRfCN1qJ62l6udqHKwgGrHjkyF32pjQJ3ubgu\nEbvXFNaQXtbJAvKuLaKnAhcwFad/JZzbaTvR773v9rHq/DHdZ56UB3LghRg4\nGJ2LO4LhlGiB3qaHNsreTUIQZu6Jk6T1XzPjnobgZuKQN8XDsbaZz/pqA7bq\nCXJCqcsYaFExKVqwnMC8+pG8Gnfvs6IvNdR1TUEybVWRrvXBn16u56LVCMq7\nY3HyNnL6CoXIr8RvJ5+9NSLEo+suKllkdCwlwgnFS5l2DFgUNADcKx1LAGYf\nJK4qaMIWahWZoeq5xEShYNovoQW7K4YdCWf8/wSXecnsrs+0ialoZuyjzks2\nK3s+bOmYxxIjFsKVQOY/YeEXxTeCDlsXEJYSOHsGvaFiiaebn7wJ17N9dJYL\nTbqBB9KWuf+aIHwJy15MagJJmcqXSjQVmKxeuYFMyjG0f1JZcIRwpu7sVyP5\nHQ63lh0OQ2yng+MpKtrBoqUZxxbPmJqDQO726H7GslFd7dGBKMIrqbbgOMA0\nDg4w+1Np05ngZVKpbrk6QhgmKvwgmh06Ak9JTnqnAz4fzx3mflIJAAPdG/J0\niq8Q\r\n=p2wh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA1m817Qog/waKcJhBmUMqxKBg7y6LDovGLczSSheJyCAiBWeEHkGjTuRuuirwL8h6KXSZmWSvdyjWRC7E6DuX2GKw=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557140321.118_1557140324710_0.6975488026878234"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557140901.21":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557140901.21","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"ea5d6dfac3648092e16dc39f68cb6a5f72bedb92","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557140901.21","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-FQleOOw4y1Q7Xb33EZzzOsoPszR8j+iS/RzmIgcoVLg+xh3wUvr7TL58nvGGTTyz491Gke7jeuQIn/T2jFB3Vg==","shasum":"0da82880cca302062c146e6c3d9560c33bba594d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557140901.21.tgz","fileCount":144,"unpackedSize":2836877,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0BWpCRA9TVsSAnZWagAAgQkP/1JqTplSMvYyTbAQz8lO\nD3uchyi2FJXMa7eOpOCVrXPc4Ul79WumlUpDYT652zIzAJtlGrBanNEIj5mU\ncU2udeAwnpNEwImUAsyiBBM+6bcfvBnrBN+36AtU7X3U9xuI3faKyLwz7Ij2\nu+4CNa5V636Y2r6sVvOC6kolQE+H8q5ydRZ02tLdTtLBnHIW9tDgZbpfMLJU\nGoWBcU5+Idtuyd71laUFaMkirJY4y1vIQnFYSek4dPpUF2iNlLlR4JBdAHAC\nG1PQZ2yeQ1UFxsuCDHfn2XBrjZqXDfSXIR6lkzLG2jhIdft+BHyNMg3bQDx4\nutBHYJgnEGt7jIrftZqbFUtzmPvgZPy1YSj17Tn8lc9qV8xZNhA9INLunEbR\nV8dns9ayZDtRtS6y9eNzIQiWfbIyjDPRQcygpCV1MD7xXn3HLt/a3UlGbDYe\njoFgHpN8UODp0irge7PeGJpoyzWuy6fKCdILo9iKgz4q6fIVdnQQbWTGy0rl\nHXrNaJv+Ch2KzO1A1/ZSoAHnKvV3mI8TO75ScFZkEl7OXhV2a5QmkIXA8XAU\nRmU0dS0EWhXFqozuyG3QfpMTRRAjkk5YQOhM+L8ZJkS7sFL+hupI5SYPQmHY\niGTl2ukgWoSrloRH84aIjk6kU9F+z3RbQmJx77GRglIP0Y9nrBwMAcXJ6b/k\nJGs+\r\n=ZHAB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDiuZVZnigOKviha60Lk7frf6AoNSIQWOet6xl04A4tTAiBGs0BTsS4PvmOAvwY2opugG+nBLSaz2lB+9+ooMVSskw=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557140901.21_1557140904483_0.667365019608634"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557666818.22":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557666818.22","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"c86bffeaac261e49825d73d3dfeb262e1b8f9bdb","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557666818.22","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-T52pZ5Ef+vHscsvJDNe+AaI8RGhqqdit7SuPJeSCDglSXQ9jm/b5/1EAgRwhlZNmh9iwkmEXagGgg7Zi95/4zA==","shasum":"e2fbe08a8a064584c97b94c2240174f7ea7fd8c7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557666818.22.tgz","fileCount":144,"unpackedSize":2840570,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2BwFCRA9TVsSAnZWagAACloQAI+D9VtKdESVF20qaS1Q\nuGWLCkDEl3XyQyN2ZvYv/oyE8bhkqGcompAVNTvFiVy4q64y3HLaGheljpBy\ni/VuV+5Wa5QAlLxVuka2Aswj0At/dQwchawPTxiJnotqT79Ela4FnW2zHKMo\nV2tOcguZqi3hrj92+ElXc9YJ2xkkZ3gEDfgypEycXlIxs0YRZD6dAt03Vwyv\nGiYsfTkiLEaTykGJOZvtzUiasO2mceRQUr8yWN6lc1OXYgBRAbrZZLeLfPdQ\nrzSlXwUaCYxllng++p/cNBTkzdCbX0F11PSGQM07LS6+r2GlBZFDzq4FtVKp\n6dX7NLBkkyarCmLqWBlg8DvCaOv9MBMiwSlmYYmAyKFbF8qwNA0Ikt1PB8ST\nDqlG8lPdLS1kP/dnYVfpxPnQqR2kHOEzq+n64gRrj9h5hAHhGPpyTmUIe14v\nixaIb6JECY2Ivmey9eF50iWpu2KLh+Wi3Snjho308YC/HbOhy3EahwGKjjcR\n39fRAhcODocWYzzkeqcSYgekh0UY5GI81d77aYpPGodm6RA9Ku564xQxzJN+\nVrELOF33nMICW3NzB1LeswIpOl0DWsEdAzMJPmk19+jk6CWQ0mrah3rTt6a/\nOoe+iHm/qe6jHrZb2s4d1291AvtBuV6HTwRtFfBnQ5ayGQlEGVMgSYdcjqIU\nZOMF\r\n=X+Oc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlNCozPyTe0pMsyS2aZz5R1TPJM9JydAGAhUO0QFORVAIhANPESQrtokMu9ZFLpXja2UvZ+ivVDSeiY4Axh7kCiTrv"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557666818.22_1557666821054_0.10291404004838367"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557667171.22":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557667171.22","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"c86bffeaac261e49825d73d3dfeb262e1b8f9bdb","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557667171.22","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-RQ+JVP9ei2l7YiCKBgSaMKD1y6w0GAnopAzGx4c/IutrzhmQl5Hd8i3NBHS5qD3hcvFHMuvovRaDo5hlnFpPcA==","shasum":"0985fdbdf7998a100f3855c4d91e983e0276719b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557667171.22.tgz","fileCount":144,"unpackedSize":2840557,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2B1mCRA9TVsSAnZWagAA/ysQAJPEvBmYtbuRap0aeIvQ\n0Mw7Gjcr1mCjVKzTZD/ZGMND5UwknWM5mKUAP+KqO9OKkzpXYAroT4EHvpyD\nld5OKWNiEg0O5c1sSpG7YOJV4+iXnRFz5QalFreVUXumgeZJMl/VpmOeRyaJ\nCx4lGXTRBu4g/94jY+9iB96YuWhVRaN68EJRjQpQiwkvC1oPkBcvmM6UJ3Qn\n5m8VDwWy1tSxk3SDOQu80ZmtAlgs1HfS690Bmszfbmth23rrKSgldTZ1VxsW\nffYTIG92SBIqSKIbM2stT3qAVriFJnX9jlSkGzKwcCJluU2NIuKQsrnE0iAW\nq+425cpVj08V+KgAs69uLBDzd6LE+iTq76a0MpAfqD2bMjYCfqQBYHhq0gt2\n+y4UsZqbr5/gT6k/sLyv39eEWkmrM0TS65D4ttrknp/K4+D+IxH+Ne1SBHDR\n2xAYXd3iA2mIdDRoE2/GqYYtfT/X3o5HCWVITYSpy3+3ZyYvIiI0NLsW/tGT\n5Zra8KjKSXZv/lc1pr8IZIZzCCiZDZsIk4taO4fgZ5cVhi3mSKawsQgKjZhd\nDDTyYs299xwAG+6XHRbKp+TPeqHewa7qUkfEpLCaORaFFFY0qvt4BCt6+SLR\nynbXqxnmIGkAHGsG0sUkMGLgHrLHPvL8dilug7bWw1DYXQVEftMn64tQbmUe\nufbu\r\n=SfrQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCY3l0rBOLvaqWbpMvdc1hyirHKWlIKuRcGJZJp1gCeAIgOAtJ2gjIwLQdLT+hIfjpExIXGjEIqIFO9xZUkr+gr3E="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557667171.22_1557667174241_0.10170024998019689"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557731632.23":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557731632.23","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"5780c8189cfa5b7ba6ab0fed7e624e8ba2ce0c56","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557731632.23","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-Jm5tvLVt9Rb93OM8P6ehm+QjEIkP0x9v90yk4F4aaU/adxEfBFOkYkaKEF1vtadakr50U6jv3vsh0TAEgiTuAA==","shasum":"324469c372e9f5afe4760c262176fea9e1b4efef","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557731632.23.tgz","fileCount":144,"unpackedSize":2840559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2Rk0CRA9TVsSAnZWagAAT3MP/AtEQRwzNNYnPp2tl9QA\n7HbaPeALF/fNhkby4ySvWSiqbFjSl0vF50d3xaPxht5RABDOHVQhqKNQjUFL\ntnksM+vBpHihkgFg9ST99X7oKD95ZRk0FEOt3RO1B6gC2hQuxCs135dzGPKD\nCfbODKApgDirnssB2IMHIX8tw7HvCyG9L2mkZxyyN9+7lVj3OwnGOMcNiVLZ\nn+G+rKx4azt0LU6vcoQ4+uGgB9kiSAvT9+rlnBXthF4N1unfmCF6aWOZle4X\nikNuTvnfJsRwmztQdIca49oiuRBFvB0wypROk89Llg98IuovxL8IL763/pEY\nUX3/6ION6C18j5cZFOXqzeNAyy7lyTHdPiYzhOYDiMneapZW61UFIpAp6raz\nCaRn7+1ilUlNHDFF82ytpzFYQseROkEx36AdK4NyqI71DlxVxk9Tknj0AgK+\nHXbcpWQ3ZOPKNAvWWj9k7ah99I3ZDAgszBQMEPMLiqB7FjzhN0RtomkFmouZ\nl4MEV6IIBm8Z256PaI54TmHOuwIVdlvcQwOHDQd0xZlabdqjV0ujyNZ4yYPc\nmrjyQ46s/Q/cSYvuwu17C7nJVBGEfg89j5boBp3VUl9O0CTexRv+pjVhvypU\nOTmr7DvHOXkk4M1C6Sst5vWQsbemobCGRFvWElY6JzC1GZEJmopFyjcbqIDB\ngXPj\r\n=ypT0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHEEmYf/NWzndbsG5pb/IJc219RNPfZXyWqRpJAnteiAIhAOdG3lM/GZibd90UZ80DaksPfd8BCXbjwtIV46F42CVM"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557731632.23_1557731635879_0.5558763318831077"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557753638.24":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557753638.24","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"700de9482b4d2bf81a4ff5574eb013e62332ab1b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557753638.24","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-vQGbMeLyxAi9vlSu/OpWqiRuBX6y8iChmXI1HOtpv+uQYpSvwqmqsVlJlUrGSdvwEjAsRawjFRzRIK3kT4k+PA==","shasum":"eee56bdf0dd86368152f267f5607d132a39503d7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557753638.24.tgz","fileCount":144,"unpackedSize":2840551,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2W8qCRA9TVsSAnZWagAAut8P/3lxdQ+K6c/E4SZfGBRH\nUcVqp9adwxwfEA+u+2ILaAahmbv3fvtX9UWsFqR/d3XxA+Lu3dyY/LmYcJQv\n1Hah0fQWxsK1DeMF4EKUvarX+aqxUHPyeUlfpH6mJNz0byohQ8UCIguqTYE2\n+LvakHYRCi+VJIbE5F3l0NWg0nYOGDK5U6dufVv+x/jqYws6yu9vQyhExKBh\nB1TXffWZkgliUtfBjFaAUk94ECvBPhN6Eqos3lOuN5k7Jt0f4zIk7A3xcZw4\nDiqju4Fl7RuepJ7VYD/D/We3mLOvtZkcVOLNsFK8lch0Pb6r8L6lFMafT3Fs\nD77WyUuxKmXra6/S+Oe09xzalf502ujBYVyr5jrHZjwi9Y2a3Reub722NiHo\nrOzIj9fwqOty7WB8U6XEFHiSCdE/lIO9b5qVU93u5B+wCee0YNddYyzY46S8\nkH+S3CjQFCSwCkZL3P9kUyvhLIs6hu3vDjh6lmNnipfm4xGL5UrBbmllxTVe\nuhWeVBX5e82bcEIKi7SVs80bg5i41oR83lb9qJqyiD1atGJMMsHaKxi8ya4S\nX2Nu7jdxEQzg3QAEMRb0b6jKwApugamUxu+iwe5abjN8vtk6nPAvGze+KLkd\n9Mj05Bba4/CZeYfs+b4Y9PSIM5RKJKzgOj0t1U38IU0fQkUz+DZTiAIkGCK8\n1Nc/\r\n=IkTh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICg1SHckiDHh6Px/YvApKw8dxZzum5JLZyZSslkuna7CAiEA6t0r6TaIZjqyjBC+kCu2WwrTdLCFKSLzqggWcIQOAVg="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557753638.24_1557753641553_0.45290053265085195"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557760368.25":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557760368.25","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"30c916f6978e603a7ab9c66de00541006d62d655","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557760368.25","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-U/4qRjRz5KuezAjYt4Y/NTPvrpYyQ7BzGiqGmIBphCp9U7+ea8b/CLbcAFnqaN7drrKFwnoNAJeF/dmyCXti5g==","shasum":"fceab30239b4ab04c96ade7b6ab053c141f061c2","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557760368.25.tgz","fileCount":144,"unpackedSize":2840590,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2Yl0CRA9TVsSAnZWagAAddsQAIt4RhcqOKSwQT5aEitb\nkP9pyY7IjHFXGeOfrjjseih63zJgziwXKWZDmiLdD/sA/rBIT/jtSUiKdPML\nzQZsEhW2sLhUokD7XFlgs4XXKCwFV60G2Dd582WJxZERP1U+be4iLxYx97VP\ndB+wzfc3dgPtc9Ka8hfXwj2DuN9HYHAC7T5b9Yzzc/fefobQzvxBOaziE7xS\nImw3GARqH36dSOifYchVAmu65uNxvuez6kqZ0r1tW/BzcHW25JAxb+Q1P4+k\nUtfTp+dLCGV6PyDisbZIEpCeThIlgqAbX4t33skJFSmZqxBQ+L6B/Os3F7Ux\nwBgwdPyMWfL80f+2aZ1Yx9BimqVxxlz7HThA9Q3l7U3Dn4/EGq0KikXM/AqX\nV0kOWnBRt+yMGBG/pW5W//Qx05gRtdO65qwNTKnmRJHMRnMzBa68DsOmO7UM\nkFaNE7XT9BigaSfGPG7XrcV8y/eqp68pC/PwKCbVn2L3k4Bwl2fD3puf8oZp\nSuZZxPJBWLUD76Fh5hv4Yd6UzP6n7ceV23rmTCeAp34GpVo4sepE4VWNgimn\nmehEc+cMPzhE3/TSMmGfFPpm17dMfV0I/EmpEWBSsPXcAgKIKrxO0w3Pwd4B\nK7W6hYslB7THxYnEIXRj0foydkUnVmhi9C59LRaDpHNAsjzsbrB4sPQo15hz\nh2Kr\r\n=2X1l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFq1C/m/TqjXO+LVIcT0u8wBH5GM16oc3N/PjBk3Jon4AiEA1w0t130cmhxvsb1nW5sCUU9K+q9ct1YnqPLe7IKXDcY="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557760368.25_1557760372074_0.18251856483427797"},"_hasShrinkwrap":false},"0.1.3-alpha.8":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.8","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"b4b82f97477347f9ef67770ec5e7db03c05490a7","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.8","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-QfqpmTnqVPqKOHbB+2rcgBTou/PEb6thSqzGhR+icEcP9C4sovjQO5bLqsFnRTfRc9+kG1EeEwB52a9XTi1B5Q==","shasum":"0941757fdc1fb2875437d5a5d9bb1804388a175f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.8.tgz","fileCount":144,"unpackedSize":2840549,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2nH/CRA9TVsSAnZWagAA1O0P/0RoPTWBn7JCOEWS4ZO6\nZDhDhnvfvLvZ++NeB2EKlqWeSD88jekIM1uuvaIBPqkye0ohyHMErMM7GOdl\nBvFsGci4fJYuVzcHRTexWuhwlACSLsUJvMVqJNbX+gpXdZ88DZLKiUUTkFi3\nTr3RDbfL28UtY1UTZGb3Bn/aKwr5IBgBKRQLkkYYoMD+R01r8EK/YYp0UQwd\nU3tJDbzUN+Mwgs8Mw4Tx4pdgaLdh745ihIs0OUa/0Cl/RNSbfwUgRRdjkzu5\nctXrZgrP5nBxqSsU7PjOIbaahXdFXTuL58iFw/u6pj967YYKJ0MjjBqvRgGr\nisUJ7fO0LEuEp7eWtYQ5f7+6Od8NAMHlHiajjs3z//I1iHPQ0rRADD1TGXoY\nEgQQe6rM1bxWVSCBV89Jz39hxB8IaaIy3avt7uDrQ9Z07pj/mAh1yfNcAgG1\nheDDlFKOhYPy/BK9cEq2GS01TrSXAA469mJ16ICdoEd4E5wqv2y9xe+9vxhx\nRszROqa52jgi5wnHkzoNC0GOgRdGynLNZgSHZ92pwn443YBQiQX2iwt9lqjy\nQXqsMqJafvshd7FaRvh3ePKZLO5j7UK1mat0kaue6efOpA89uE0/PRWcraFb\n+hxXoIzZkonJeO4PjRNTPNTSFafYml6KqkRXcYciFfYIr6lav/Ju5JTiMTSC\nI4p8\r\n=x7PS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvORFtthDeyPuWJ36hDxZfHYUhXHY7ZYX3T//mm+G6vgIhAKxtLJWr1S2+pPo+enlNgUXvfnKbnHpqWsAhfpfVv9LC"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.8_1557819902823_0.7577552730405321"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557829813.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557829813.0","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"a671adb12223daf05fa4198343f450a836e06469","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557829813.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-hb/pXYQGecvYzBOmIiEDDmTY3rcK5Z4sE885l1n9fu8uzVAhI+/0gjGH08H42YyLIwPONQohZuOtOGO1MOHghQ==","shasum":"3ec25567efd5da854c965b2b37f4abf2550d1ea7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557829813.0.tgz","fileCount":144,"unpackedSize":2840593,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2pi5CRA9TVsSAnZWagAAiBQP/RnFUOTZIe/loiu+z8Mz\nkngbUKuGDT9qk+eibuA78RBBIfT2x8OoWWFt0yJuYH16bL5WBFczKAbx+wdZ\nu8cTYIB0bPr7vPvW16ErZgCEPbO4Rcc0kXM1A7ccYSuEh33ngmqdP9ZTN8Rw\nClz4yK6NUqmCIFWyXgdoeA4Ch3NbPb8ztnW3U1POCwHIB141TJDxotVD1kUl\nL/6ec1Joa4OZ/MZ5ZlJXPiu809Xe7I2nksF658kOjE5lAUy9I2gQX61QG3xg\nxiGt++LJJvhY2s8LJoGTVacsTo4h6T2rdwllu+touGanBtTDZhXLRQJ15nyJ\nPVbJZiqjIuymTa7QltDC20Wg4xjZ7cng1NtWViVMqfFEKyx9+hCu0liBhvp0\n/K0WXkXb43v/zL22KrEZ1+m6Y9PdYTL8phlU6/jshDJ1Q9ojBbGgFzbgDF4J\n2rUqc1Mum1o6GGFudkI5WV5DFLBTAjIP1DdV7tR8SA5S/En8/BhJ6iWyjPVF\nA7M4zrSZ1X2UyIZh+3+EnOs0ZWR8jsPH0Q7OjjUfJ0RYQQTxMFoJf6RRqIRw\nhQYDlEXj/j2hfzN8+kzeBNaazyaTTmOhIWWBKCVbGNq0sgmCpZJuvtoRPjg+\ng1o4aqCcSM6xndsp9F0SE9wQd/c4mIo7COQkGqlvwmV9PJlj2ylRSh1qaTls\nMnev\r\n=JgL7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgjf1aG+klfQRo0Qm68EXFSriPXaWcL+gTUhS8IWKNqQIgFWvYYGUD8cbz1vMCk2rRcHy75SgK2sGNum/HPpRK79c="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557829813.0_1557829816518_0.11296646333454108"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557830055.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557830055.1","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"67960d6d406efd375b5bf5400460efb79448e640","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557830055.1","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-6qd+t6AEQ1pIjQF0l33yLalNQNB/tVU/oEr6rhDIcEgS01Bj5PyyOnkz+sJ/S6reF854/fWNejWvDeeBmYD09w==","shasum":"684da175b6a582d8c2ae5c620c8574ab7aec2ab1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557830055.1.tgz","fileCount":144,"unpackedSize":2847948,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2pmrCRA9TVsSAnZWagAArh4P/2rhamTFur2nwDlZV53T\nmHh/DVJslaPnKO9f30IBXJEduFeL4kpRqWBf20f+Q38C4AEAhB/sY7q0WAcA\nXfMilRffcIHyuBLqGXm2gKO8F6F/RjeJfSMReJ3Fv5SO97yFsIEGzPEHeb+B\njzzoNxcaVLZE4WLOMg82FA2pmGkCmGSKpT/swu+ZwALxrrUSifYlqoJGwn1T\nffSU0yVxVwGWAoPAy3SGGtKSvCzrfPDI3f2uPhUTrJ2D0zrbFlO0ojDJo8ZV\n9AVF4+B8In3CXSuFX6eUPCtaA9gJ9+MqxWaJAvQ3v3jES9Igd3E/uzy31Vyp\nK9OPdf1ikAO9/XRM2f6Mrw/YhyQbN+L8HSxDzbgmgqWBGm9Ic0IK/AqtWn+8\nVx02YT7bFezX4Rc2ALtR0MtbzFgZr+uvPRElMZ03IpwbcjxDvcHwdaGP3D03\nskHnUfgOjwOXLPb/QXVhlCznz61aRpNOn1cw3ql8hTQgJJAAUQQiFd1GjhX5\neycGZoz5FHan/MASSorfISr/gc34+urVJ9UKzjIryyJiFPjQ9/GkO5I1EHQL\nlD1DHi0zF1c7GbzOhLYKYkhF+6d93DZlOAuZAz2WWrTSnDOaizi7P/yPqBBu\nxq3ASQWVgqZrgMCU/8aLKXBGYbVsh9ncMT38LermHUB1staLKUPlertI/QdL\nK9AF\r\n=kQR0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGQhBdizTCbqHjZ0z/IHYP+6umzfjeTX5xIMJfxlMRC+AiBL7yBVQ6y059+bUWQncsPhnX+dp/iYQ7fuErroBjf0fA=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557830055.1_1557830058017_0.23747008889676935"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557834609.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557834609.4","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"d449b875ae3f2b450c4c9807b6adad4d132b2954","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557834609.4","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-Gm5aWg9b++Pa67t08VK+EINhBpw+ANJEpFFcBjs0VEjkhht2d6GviZtSCuqx6CTnpxyTVq00vwFCa4YIwOFKcg==","shasum":"7bb627bd1abf99b2df17c6c1a3b7f91c3b93ef3d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557834609.4.tgz","fileCount":144,"unpackedSize":2848795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2qt1CRA9TVsSAnZWagAAx68P/jju61xgwWyJjKTSCxJ3\nxKT99T2QtpelubL9akyj1UsAMHBd1qOuSJBVnC4en0qWm9JsKzV4gf34HIaY\nJWb5UmL2lR0vtxY98RKaqaiJfurBkhdIk2m2oKzdFlmSWqQTODSoeM8rCM9X\nvLS2GJeqCrfsu/CUeV1a0cKyuA++C5fpVr6sUSLlIdyeh6hcz0KALTALdB8Z\nMLVGiVvJTFLBb26+DGd8FqbvlenPCmEmyurC4l/s6OZ5PelQyGAES7u5LUof\n1n9UGGtOqIHZZy1xsqR8gtSlUTzSyLkqueb5/ExtrBL78nZHCr5omrMV/LkU\nC9atpeTFdb8+9YSKHabAfjGiBciPebqT/63IAcUVURl/lkaCWuAgT6JMIYyW\nV3JemjdilzcjLSAypnoyhgnIOEQGAN+c2hBiopF8ROvkawxn+6TUuk/q53bU\nv4lgxsSP16E0AiesH3+sCf9rFfUdIiwahyR1kfQC+RePaOaRbS5XwL14u9ly\nggHg+OfHObrZrncQT4Gh3R/ASes0YeDUjYNn1xNs2PXGQm8OIdqxLP74P+h3\npmxAxlcI2SpGVpl28418SZGQI/TNXRO/xK3lF1UGiMqKXx2Eb+Fbr34S69W7\nX0EL0dNIUq6YvqSRN0ldAfmZd/H0kr9tBqzrG9F2kXQHpe+vMuKoxExPxTOm\n7mv/\r\n=i+kK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFbxtv8DD3dNY2dWrHin4PSGKmGb8zOhSNiXA6jOR//pAiEAum+7F7m1hqiv7yrzTYLhkGPbxlDer4oZ0c5TRH6nV9I="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557834609.4_1557834613155_0.246969961549806"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557840670.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557840670.5","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"71a0814d6259d00e7692944a26f593cf3cb9a218","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557840670.5","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-1MSvqFWJOXDaiMOc43dg1HL2XmhALC/F5UatkC+qghmZbiIhw8bgZYA+KqXmr5+Yfus1hN//C11My56byknDsQ==","shasum":"fdb8b1170bf4155dee94db46b6ec8e919b73faf7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557840670.5.tgz","fileCount":144,"unpackedSize":2846665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2sMiCRA9TVsSAnZWagAAvS0QAIbVKiCCA8uhZtIVcHtq\nwxU/wtgL+X6L7jpHBzYdO4SHQ1EWYc+LipkYnCFV0GYvxhznuK3+RyKiwko1\nZ/rF4AQwx3IUGZi3f/4oSLONBsIADMOdv2nPb+xtvWr0BXwrGynBFmHrmAzK\n0eJJE/GbTCSMtUX3Yzo/RMSQSgZ23lIDmQBW2bM4fulFzstNLlKYxuoiOuSU\n4sv9GX6QFl6tV7kQ9+FE14W/K/pnHFr195NzG3W/G5wI8RuvdgGw3zo07VNJ\nv8uNO26yW9FZOb8L21bjKQYvRq6C9qwACbLDTX4VUvz0VNWjYmEXymYM3Sy2\n8bxPiSnO9Uyo4TBTahE656wd8AFAi/HQ7GcEslbLGBzn+WPALDWq6pvL/gw/\n08zDu9OSq00O379xdTvB781WWeJIOGFF12Lh+ZCxsv6j0VVWQXYSkjurBuMJ\nX9sUuLEwj84MwnOzMvHGRNwBNAD2NMq477XcfS+SY0vDW/Q5vq1oqBff2sk2\nNiFVlfRTtbFBpWMmPeVgMBJiW3Rz7Ir4arGDzznbTcCXYMD7CYOO/NaqUmTt\ny97QQOc77Ub3ZExFUdKp1qG2AtYXsxEwVdbMzc0Gddhzxok+SEHueJwhTdJE\nlLwz2dyhXqw9GRKqpvflgBTu8VQSbkfdybXjIi9VPE2O7wkp7GfQJMnzfmlw\nU9YV\r\n=GFOQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdyKBBLiQnz097OV46Fnqc9PQzhtcTaqnBVCrmAh188AIhANIldSUgid3R7abJfxwfEJweLkZp1DECc4cDiqPkCT3C"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557840670.5_1557840673946_0.1760346928096148"},"_hasShrinkwrap":false},"0.1.3-alpha.9":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.9","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"4d5768d8f4b2df2c72fc72b6768cbfb806656880","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.9","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-+j9lE0O/iUPBf3eq++VXiwBI393LnTDGwMjHNGtxT1UaY63owuQbn03O2+l8wd7/lG1T4EyO0C6rO4CqKz6gbg==","shasum":"d2910c03962ec43329041738158e43c935b9a54e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.9.tgz","fileCount":144,"unpackedSize":2859434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2tiwCRA9TVsSAnZWagAA3DcP/2Lj5DYl/ElokpyKKQJP\nGyoT4RSWafX46KsrgS+OquCT/TOmoCLzFVj1javScM32rh7xVRAdOYPYBsPv\nwiVC7aLppCEQwXb6u5P9zTUSBeTvwLDZOk8M2Y+0ESKT/se1tfC0OaLIpzSB\ns5BRVEy3PInWM3hwB78PrtrXeFTi00gokSm85H+Eqewmp534JKjOMg7PcK3L\nJeQndXuP/hQD4HORqmIEa7OOYLYwbIzB6KNdd9TBfrGXr3Gxr5e9JPDCoc2O\nKORmCC/vy2lY/52E4CxANNUHEZQ9bKehjA7gJ/Ubn586FdaoGQHLetUY57aY\nInjo3QHsKo5qTgudOwNQEz1oQjCqECBeAEa6deFeiNAMjQTgtPpfLWBQB9xS\nBANHf1+Gs2x7SYC1f4+eowKk6SnJpSFXXd573zygkK2NhjbPhegkAVYRa015\n9k2Olb3lLn5L04kzKP91cN5BDrs3enntncVMir9mXLDxwUgfTt1qWFbkoMKL\nAWztdjwQcBFvtYlraWwej0HJS/D3pRAdnTPF2NTV+f8sQph3JVfLoNv/TdEh\nnfe8ndN1prKEw1caOznZ2ClHzX0eFRSA6mmOlPi49ykYNgG6xQYlsnyr41ts\nxvvCxg4AkJUTnQXiUvBx2DFFZJKMrCQ2dS9G9TC8ewWC1W9QDVC7qaohRtB/\npJ1e\r\n=5C4x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF/J/ymuE5GOk4Tf72ohTX4z2H6fYqxrgxWzkU7Y4dIzAiEAjstnF3KxsLPhFgosb09+VqkKfhankagKNtM9sXcHFmQ="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.9_1557846191510_0.37504245875611075"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557911592.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557911592.1","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"795768b3de44531512d7b24ce478da970a624c8f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557911592.1","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-ZhbSRFDqZ6YDoDlldTORlEu/kbIPilv3UbflTh3tBK67s2mKWh0JnE1kjJLFrPc0VRN45LEWs8EqLY8dHuIjEA==","shasum":"a132189f577d21ef3b461380fa0a2883f78d77d2","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557911592.1.tgz","fileCount":144,"unpackedSize":2858661,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc29gsCRA9TVsSAnZWagAARgwP/AgCYk9O8ygVYGa9+oYH\nl/ZlpfiUsqXmgkUNNcZNYWt/zq2Tcr42n7eDLS9cczdAZR5y1bi7k5hhVLiL\noNpZ6RgMkh+DD7lv6lDESixS9n8cj/7PRIAolnYM5uEm/MmFjUR0K9qAJHqa\noQwb2M6cSe5XS1UbhF57bBwA5oKUcXsEVgDUyMvksfplHuHLLyuLo4NfxGG1\nUNK42RwIw30b7hIt4SuLVIpPpPq5alcQEpN4lygiVAPk4JkqLtlAW7K7D3HB\nBDgY2FodnOU9K32wOrblBJbfSf8EH4GG1ewGbj9JXg0fVyJ2c26/pEbWHSFV\n9G5cVXPk+wJzUrn5dSq4UursN305x4uvB+u05S5Be6hS6D1FG00ICVqceLFI\nqIuY2FHvItYqd4AWdVvXChzUAP59NU1F2hrNcwa1cqaKuVCF5BQ9jmdQ7+Wf\nootOIEd/ZRUW8D5qYNce9Gp+se3wEXKfZBlhMH3nbn0SEO9XI0z+5r778Jwy\nor02O41EoR6ZAabAXgKKTrOMyhF3TNryAjH0YC2sQTrZQf6U0PjnIEUQdC3e\nKVxSU6dJCQMDe234dQE2SM6k1cjfEjSSPgFss0Eg205n2KUYJ7YOdTcUBMf5\ni0NCxLmE+2NefeV8C50gW3YlySBi5j5AMY7s/ftxOMnZxeMO8nw1SpH7Bqm6\nYBGQ\r\n=L0Lm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjuNuByfb6EruLW2bHcCARg1cireeUolXfSN5Jx6lsTQIgFW7X+IyFqaxgzhLPNeATq518ZWVaiuS5ko/kXha8yyM="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557911592.1_1557911595650_0.695708510383845"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557929243.6":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557929243.6","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"887a1591f15e32f386486d9dd0ad742099184cf1","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557929243.6","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-8MLHmLG9XkniW6R1PFPnydGR8Mh4w8+wvryPaXvpp/ZV0zZbYYOISNXaxYiYibiqc/i0giwWFlNaabWmgQCZQg==","shasum":"ac8a7bf99a25f92631865838f834564a0e03f565","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557929243.6.tgz","fileCount":144,"unpackedSize":2846645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3B0uCRA9TVsSAnZWagAATJoP/i3DbmvcqtQ8zXJEVVjH\nJdmoBtLucpPIw/pJVbPUniEbiH7riuqqTJF4x4U+Ci7a2+LCAIXi6uw9lEf7\np3StF/SroYLqBi86yIkJKEc49xL7r7MzKV27uvot5nUw9Gqi4SLdkzYy/fPF\n7Wb5jcRORzEwW5FVRNp4YGh7oWTXxd/a9YSqOHHQmzYS2ydTyPVWcWz428dF\nqKCD99Z843DhY+Fv/DYDwcd6odZFP8SS3GDnkCvwpTdZvLvUUCxU4sCR6KoY\ntX8f/RRCf7bZQkpWte18CaxhEHV0vLmyR743AaPjKMhhg9YBzlyZCyK/wRY/\n6atUlvoMUDolhmgmBF4P7MXErSe46aEAya7Oo4kWXJaL5gwG+QKpvoS8Ys0L\nrkXXiuRw3PUWqYcfmx5fP/I8qutZf5+CtTWv2AEYRrFx5Ooe2kvhIy4K0pAs\nR5t2CAMimZ8oPbKexPy2trJDYhvkY1rGyPN5Ce76ASSpzm5uvynowLNirK7r\neIduzAR/Q+FcnojXuRrsSod3fsxZxSIXMoeaRw1lWX1a8ZV7HTfy1qkLLGsw\nlfCcGyE/3KAWdXne6VoSBbmAm0NXQ0jS5AVovBDDIwbJ0l3DJIiofhGJlS7N\nHIxeljHi57NHadAJQXCbiYR/DLBSnIkRLSW/vDwGE/nqbRQswqdCcgL/WgA0\nYelQ\r\n=dep6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZliIz3e2eWvxomKQ1iq+nzchn2dPZFxtCrgfLWQfgNgIgLH8Tz905niipv50rDvksnQhJaIKc55WfPwb1JUWCW8s="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557929243.6_1557929261652_0.515684584719684"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557933816.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557933816.2","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"c00aaa6ab9da2a850fcdcc55f107516339bb5c61","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557933816.2","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-2QPr8sISU3x2Z2zE8jV0VTG8pbqYzChYumQB1hHHEn4btOelI7kshMFrMCjHXMl49pNEbfHY1Rgp5xrUn6Iw3w==","shasum":"80eda80d6dcb36acd65a13da7457e4b09ac647a1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557933816.2.tgz","fileCount":144,"unpackedSize":2864806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3C8LCRA9TVsSAnZWagAAXaYP/jdV+0chQ9TNbD1gseZH\nlpgyghbZpf1DR4pMcE9m9YMOrf+mjjPBWtW8uXLQtvTHWTT4qEZeV9vxxz9S\n+lp1zuPVeo1bPuI8QdKY2zU9LEEsu8wdPK2y8nmlCdIPFnVKOADkpFEHge+K\njwfi7XRmQ+2F6SUGCVyKp3LLfA9F0qdbYcf8h+yh6jpEXqD+NhOpwiCXt7/U\nS+vQtc9K1nqIwI23ejEwaR4GlKC0Am9cQy5sbJuI0bQvU+nt+/b3fV+4Nzku\ninIarX4mV4Z9Jay84rkgOJKFdD2YfJGizN3gW5RvgLYih3AyMl2QAiwg6iSj\nUujD4UVurlf0RZ/eKC+yGS7VBPZ1/REaIznP6Vf4drHxHkNYv7HGaBZi+9eC\nd84UFGyQ2KrjmDfxQbEGbaYJVAvp2WjEuLSdIswLguWSdXxhxYe1ic7q60yp\nwSSVMwXsWRuehpmARY7KbHKVw5yDRlPD9cFg6z7lvxhbGUnoRuMgTBISnr1+\nOGMgEb6oZq0KcPlG2SNaR/ImiyCcYpRGagTCfHk9AXdYLw/Qq7BnCvIOIaMw\nU1lBEsYV5ch8Dm82fp+7s4Vq7uUAOUUPMV9sTMkDGZnNFxWt+qFX3iHdGvcV\nbEvXQ+n6hL2Z7vp0ZJAcExShPSub3CCY9Tf7TvBSBQIvzoN+iW92qsLkxjQB\neHaQ\r\n=lfJ8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAyKG7H48+rDifjPQD09xcXWaCcLxPzjepdKqubS0qGAIhALRkunBAdtp2D1qpoKzhPBb9+48GfcYFu4U5xskhRk3T"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557933816.2_1557933834559_0.9004040933784001"},"_hasShrinkwrap":false},"0.1.3-alpha.10":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.10","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"cf8efe968f8e04df8260c7709899c52a690d218d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.10","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-633mlIpCHlaCN+Q3RJ9s0V4VYiQBXKEvWV1ctTSP91er//9apjOn6LlBw72PwQ+owWwccLIa9HtUrB/DRdZw0g==","shasum":"aebf7449463431e30eb9d9db8e4d376501a8e1a0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.10.tgz","fileCount":144,"unpackedSize":2865597,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3C8xCRA9TVsSAnZWagAAX/MP/RhpzL3cn7TNw4EPi1l4\nBNXC6mYThhqNXVyHB0C5lCCn1rNE8cWtGUr4SoL7b68bhP+17Hc8d4rw6YYt\nxj4f73nKS/bSEHbtAfn3uNE2Zh/EDK4yBeBhFQleB6lQuJcqRUS4KBe+pZns\nbGPzL1nr1htUlpRkWHTi2W7Z9VTB+4hUBo34A1Cp/+T1jP4pYS+Fzu9JtHik\nAycgzOjVkQ8GiXWl93JI7xK7qEtip9Z8PTMqbz/KnqgAp0o20/GswAZrC4vQ\nPYUHmHz//YJJtdQ1oc5isJzxpg5Zi2QtoNA55mb8LW/4Brxt4riDZr4e1K6B\nGasNLjQ20hpVyK5S2BcGmoRTdX65tZx2TxUTzNWTUpbBjpJo5WjgzQo9RlcI\n03P4vUIdbNNyJQxz+mI+APvUpHb7gi7zRylkJSwj6wo3uQv1dx0idlw54kcS\nlLOhU03AJOQOMDEJn4ztgC8cZmBmkS8RKVi3nZ7IhOuSPpANvzqlkNGZhl5o\npg7HTGh77mA+pr3frnhyoFbZmMS6KUjzEOmMXjBKaATmKCbw2cOYx8mjoK0W\n1ig09k2m6FXt8wR1bn/RoWVcHtywJk5IXB67SNz8VeIeET6tbh4mxmptrgqy\neN2G9sjzv2ekPf35qkpYecIN354b0ii5XdODVDKjuKDaR5aDHmJaRO3fezTM\nko8O\r\n=kuez\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKds4gUvFLxfxL8WOK1bZF+ExTDYKrftg6AfBZxS5jdwIgHmJumTDJl75sAYyclAyn/tY7IyCiNnBjzP2NzwQRgRU="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.10_1557933873177_0.16249108610309793"},"_hasShrinkwrap":false},"0.1.3-snapshot.1557935110.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1557935110.3","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"c36918edad0571e0c49896ceb4487cfdc83b7c50","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1557935110.3","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-tZSpHYQoJQpurS5SrlwE1O6N79HKp3xBWgca2jnoeUpUqZqJgmdq4q5WVG9WJi0QJLGXsk30XxsFjXzm87ZQ3w==","shasum":"504ad2769c4bd789ed477ec5da3a53c89a3b2836","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1557935110.3.tgz","fileCount":144,"unpackedSize":2864834,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3DQMCRA9TVsSAnZWagAAzI4P/3mLVSjRG3sZZXzIajFz\n/GpVb12pcxJaaK0zZzYUG/aFSLSGM0GOqxAbYAcTQeluynhsku05nfu+XgW1\n7PbKyUvx8WNXfaSidDMOqBXefNsCZXRu3GiddvIrH5+jdAt2ZzBX4yuc1JA0\nxRVVr/V92ZbkXjrF8vROol2X+kbNiGYjEEuK9ptiFLiEHM+L9tg4anxwq+SS\n2EebNcqVrBta5mtFsMzsCgBNCkrcudnTuiZTRCp1rGIfDOEUfJ23y57+tiBx\nPOVrzRJFwpV47fJ4ZysAzEOr6c2H7FNGb3TQl+B5ksG9xaxXmItDqF1Od+QA\nyxDGl4ha18lKvtzRzHxWG+ghK/1lpyFq2xBaMfCWpF5sxiyW5kD3NyutFdga\nAn4BcvwrBNQ82QOoa3ZziSoa/zVvL23XyZLeakWF06gIj5/PIv/82kX63chx\nF47SR065cHi18XuOBiubXHl+XcCFWLO7IeRBT8JqZX9FBEGdQB/J48UC6PPZ\nhZc2y+je00bT8Suc4fGL6AuPg06H1K3ukWJSz5pSukWvkJIk9oEcww74EdE7\nXZAioVaq3Fnx5N0e8aNQKZFgPt7LlLDoyGnd4lT6HBwCQ/vO3A24OFXBxR8h\ntoFd8PoR9xaXx34pM8Vjp2iC3G5b3W8+dZ8OMAjWMkDNhSkJtNzWU+rHlTnA\nG41W\r\n=UODJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDABt/71r130t+jlt76Pab+y+iWrbD1EkZLH98lFVhBVgIgT6E7ZMyto0JsqLPN92pLlDXp9JxUAfkPH7z/FXCqa4Q="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1557935110.3_1557935115439_0.9060134460772735"},"_hasShrinkwrap":false},"0.1.3-alpha.11":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.11","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"310184d601e4516a0bb2630aa22685225c9d7085","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.11","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-h9J3ON8Jw460o2PAaUeaFq15/cCyQuw81aGOTSWiNOU2UkjbmFTjBsd7NlfygEdyQGXqr/5oBh+J0bbYMcjS6g==","shasum":"5c668a37d06deb8482207b9921c4c1e2adeb30f1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.11.tgz","fileCount":144,"unpackedSize":2864813,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3ReMCRA9TVsSAnZWagAAtOoQAKP35M/lpCA4q3C0ZALS\nkEID9FHsp5NkkT0T+14hqbrWL/oxE8roF9z+pb3UNX5p8ohz2eyg9m4POxRG\naBlC60y1KC4bX/23icID7mNvtMpkWxSvt8nN0bDyDaOMTTx+DvPC18z6d3h3\nt0Ye7Zq+zVasIRljKkHIxMEJC9pqp4QugFsNdVVNgL+1gU0wwEzgmN6MFXSr\n1wQfIzNrAvdbQ9lGOPqWYLqXbBZBuIiv2QalpIPS/x1lN0XstkC/IIktgj3w\nDftyV958BRQLJpWUt0U34GLyBkPCWjBYkzMwsVMVOzsJz68deoAKCslmmb5O\ngBvrj0rYZMLRCOIs068k6u1PlnV7/rrHMEMP5jMWK0NiX8ABW8omDhXFSFcp\nednd4nkzUrj7llwKVyYu//uZTzH8YlqQcrhtKmnrdjDLXA5Fc/eM6qZq2pW6\nS4wCmSIT8OCTohwlR1/gAN2GGXFEDo7o+DWorOcdumtnc5s57KhiiR1wsosi\nuuS3PfWxbDQa8G7ez6fdeE7wi4/r5T1uapMg8PlKonK1VMlvGmAF/0KzSCjP\nEXLP+D8dkPwufWofJrpf6mARnts7fIgJAKVdJYjjzQS7tp73XyFVOhX4VCcn\n7VHjr8Em67hFUoIYURqLIoHMnMSXvWqXko1EkfNpdtxZ5Uct8UuLIgUe/05R\nCf51\r\n=BDnV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDrebowhjsSw5j5M97h7LKcnwi9NU4gumzKAZp275KBAIhAIBvsCegeF7ZAeSAVZzXREhTzsB3I6TOqIRcotzHJdi8"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.11_1557993355166_0.08586384522189427"},"_hasShrinkwrap":false},"0.1.3-snapshot.1558004488.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1558004488.0","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"c8d4384872ff39112ce6f7caa56a6c2e31153b9c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1558004488.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-/SI8Wj5pIT4uwiAjuBj4rJsPDKJW+dWRZ6mnX8/Q0dLcpwbC2VatDjwEiCiIiC4bbdThsLkXWx9kR3DD5EqsVQ==","shasum":"5bb3ac9217d4422a2b47844d3e050138b047dd09","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1558004488.0.tgz","fileCount":144,"unpackedSize":2866003,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3UMMCRA9TVsSAnZWagAAsVkP/0PpX7bTmQ3F3xfAmh2g\ney69iZTaewmDsNKLOQSQgVtWGy6Bjos87bX8xuLnmlTniN67x23U+bX/alWo\naSU2yMYwyfeEM9njIr2xNB1kbeINV0qrqcOD0KjIsVDqn/kWWVzaKjC/tt8a\nrgw1z0tAoKzu/fD5hZSBIkMDn523wZPGa0vv5Ue2UIKVxzRzkG9I8CVL7iyh\n6zdd0AGqudiZ0HGvPq7UR6xa+aihM0NrXxZcH+QOVQ2JkUol8huiaOmaY/+5\n3fatDMQpfZBHMm1Aobi3L3PSSkI+MpX20r9agAe/XsOsS2ot7Xq9Fmtvc4+e\n9VgPRyS8rP1VhLgHddcaGUOFvsyoAUA5m0JYOzfwsTIVK6K/02TSZkCTEVu4\nlDTNbiKF4gVcJq//lo8jk1UG5Ydowtxy0RxBltduIE2zgfIGa7PFpIH8tKss\nKwX0o/ock3WQL4boq5q4BqktK0KqkFnz+PC1FcTDV7dTdeIxZFOfKb0xT64M\n8lBA+GmLyN6GBso2hRshyLLCBi4hSqlDNXukpJJEbNZoUl1PR+8S9XIhKsUe\n6j7Np7nQUsfcEDTXIq0933Rve3xbNrhId4Dv/1XmD2jMdEeREDFKssDs9b6F\nP5RZ3Xvypr4YioVjWtsJZKlRXVd8cx1YVH82e9b4MgETB2fziAqhLXRsP87A\nynR3\r\n=hw8g\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLr1rGeMKENByvqHFhSpzMMit3PSTf+5lHV155IDxIPAIgFrJk4LyIR0M4RZYcxRYDJL6voZpbYS20VFvwfZ+bkzA="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1558004488.0_1558004491280_0.2494925328546489"},"_hasShrinkwrap":false},"0.1.3-snapshot.1558011119.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1558011119.1","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"9b70edf7eb65f187d256fb57771088a679490f42","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1558011119.1","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-eU3euPdgbnrDoInM5YlfDBlsUksdPoKNSHHbhXU1xdT9KhDOZ1axXIdn1LCmdwmYGdyD0XrzgG/PehAFJG0Iyg==","shasum":"2c7558c5578a8bfb931f6cfeb42c73c7b310a159","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1558011119.1.tgz","fileCount":144,"unpackedSize":2866061,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3VzzCRA9TVsSAnZWagAAbTAP+QHM69Ms3m+lP1g2Rloh\nur22ugjt2NxSRTnghz+t/1cwkC6W4pTgzvmb7PCzVLECaG39hoyp7cPCOmtC\nXtQpeTSPd7BqeKNdWjx8RBlpYTXUJ7YSmLVADsJqZsVDljguW3iydtOMl06O\nwm4YYz9nNk+Xqg+PP4d1hmRWwo3/CcKx7S/hWrpPMtlMSqXK/pDtcK8xKPm+\nmC1p4SMcqRYDkppp+79/InY4iUWJpL0HBe5LiN1pawxlCPqgKk1RxfLKN7rf\n3BCtpVrzXbMN9CttNrNEG6T8mdvcP/09kK63Vwtwu8j/YxUT9PLR/UVjkt/H\nGEeI49eS8pYQ+wxk2jntDYPIfIJ+MOSkRGPtY1MuPTpbz3DsEL3ZZgiiOkcZ\nLGQZDJr/1Gk+RgBPCPaDpENSw/bOkX9L8M16+FFDSmqvca1lEUPWn68FFN04\nYempsw1M+226pZkeMuXw+T7ex0rdGjoCVlyhaiD0UvESJPEY0B8Dp5WHXsYk\nrqC+RGwrLaKG0NgxTkKq2rrksByd8yb6k59RqnkHY3ku2T/v3e8KHX9ScIaG\n7axvGNSX6TaINslHlzRu6QG9VhvnX05BHRRNLDwSJUQ9x3eSOW1QhnAp+6Mo\npneg3hmkaiclv8Thz5BsKjOTtfumQzAvEpgJSMjx8SKXSFe27r3HlrlxUspF\n4umI\r\n=agUY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4qbdPJsxUeg1VN4b1Dfg6EiHKa9HpA07VT4PGQitqsAIgehkGprlsqAqiZD/D7fnPR0tnBl+pDX/ON+1LV9qn0Oo="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1558011119.1_1558011122315_0.3330037608333418"},"_hasShrinkwrap":false},"0.1.3-alpha.12":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.12","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"bd395280a84f1ff0c7995dfaf2c51da6adaff3fa","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.12","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-4aqiZgLGhOhib99rk4YgSu+IucaVMSKv9RvfbG/m3fg+NRM8eyYW0SAzZvf7B8vfEB2YKMLULyrYV2N0cJ2R2A==","shasum":"06cf0ae7f2495cf09cdbbebd86ab3c6c37075d8f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.12.tgz","fileCount":144,"unpackedSize":2866025,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3WP6CRA9TVsSAnZWagAAtSAP/0Ee9kV0xvZWdX/rQscA\nmcT+W6qh3YIBouHr2RURYnAMTlcnAKotD5HqdP68zUz/Ecas/0TzBhg4I1jH\nDtXoBgAU5bm1ECEBI8g5Pst4wq578h3ld8j07GaULFxlFe1YhH5exf8zaLe0\n8FHMnfWZz6pe41TaBE0lS2Isc6j3BzHVFvwRBa1r9TBBDcdi83io473is+v/\n7GLtE2vCpeQdxL4J2zQBbMwFcESrBn10Si8Xdv+GbwCWiA5ynkZIPqBtuQLI\nj+taTqj+ZaERbCH9B1UJcjjVT0mgLEe1tkFez1KeGPDv9XRyq3BYq1MilsVR\nveIOOsfl/EwRpq+ZN8hnTp2Vvctq7YlCNZfJVoJq+6t5T4LoiJPzXPNx2u4r\ngZQhfcgcKE6R1QBg9/Uoe9Fyrqz1Ahf154L9pY206rEHLd6rp4Ba34u/arcZ\nHxGszqL2tP0CfH8Q+Ycd7LTstKk0caKourywUxkSi8tnHqOMlOZkhny+SxTP\nSEfAgaYx3ejFnvJZQHde7oMwSFxVw0bZfr5TOEfCLfqWxq7L4GPOnV1uH1YI\nmQncdrXsDeLqyV/Z3PuJ0ZzgaECo7B0lMb8TrdxVzHNt0clh/ElKDUvUisVh\nGCGSaQW62m5RNZzmDfKq6t3yyRntiUbqXytLivZFozrVdtCcs3XhM/FekYqK\n8W4E\r\n=/ufT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZsQidCOSqqbE1rXSYUfey6CZVFZH8/RHoC86+PtS65gIgbHbblyyWPsLDoK4C2r113CDyZVg97rje8FTExSIP3SU="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.12_1558012921778_0.49818374860737435"},"_hasShrinkwrap":false},"0.1.3-snapshot.1558344395.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1558344395.2","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"2fcafb7cf0977dd58097bcc2680960bc1f61d11c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1558344395.2","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-5lcg3deSTuZY/nOZRrON6a0vZbM4/WkNTxcfoRNxweoLHF8fm0s6sEBH5Jatme/Ac6lci/qMtTVhP0Je7QwVoA==","shasum":"fa9445992ba64e7989bf4ca1f91284789a1de334","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1558344395.2.tgz","fileCount":144,"unpackedSize":2865327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4nLPCRA9TVsSAnZWagAAqJEQAKRRNELQgRfSaqfjPJq4\nLquL5hqMFWm4DjJKOWEcx6rI5N3K/IAaeEyoWtfXSjHj/KS5AY+Z/C6+bO6V\npr9U3lKtlBqiZ5s9ZS/wGBV0B68mH6a0hX6AY7aevWP5jAgTpn+/I897zuxu\nM0c4ZIHrgen6H9U/G3+uU76AGMSr6hwDLSoEzU29y5V3fq8BVxcJWCWLrTSC\n+h3kCHXCCp/fw9/Klbx6ae3fYvmRthqkQQU4f2V83pdL31ryNwULuTK7adAr\nf5SnZBG/smWFIUH1x7LUVf9zdV4HOXKAogEC+E7v1Za0uthIcUyoLLVuxasd\nH94dBzdiXQrb6QFz3lJgAGyk2mM37a2/T1gXzFnZGK4weECjv+Z/Z4xJJYz7\nUbRfpjFU3V5VEoeG4KObRQLpMeepkEzNzM/9C5YbYUfZZYxy+ivFCnSP9J0B\nVdFxJnaY59OvDokpSEQTP7vAAFIjO6N4LDXD0HBUvr/+S2PDfuagnV1JZX/U\nMOX5XS8nlEsBljo+4BP664HnBq9TM5+mvRcL8FZYlsg55wChVahdjvqyPbrN\nryScKxC+TLcP/V2r+bqbVRxgdW4HhVZbWNF2kmoFyp4ISJGITLqibgaTDUfh\nBj1zq5fEBwRJjb8MuFgWWtYDI4XtZSkjuH6GRAJtFc7XJSe2jAJrHcXb/C+i\nnrfe\r\n=u36W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQURMXy4p+r8kwHY2KmgO1Q3y6hphPMM7CPokl0SDFhgIhAKo3ETPh7G4DMnN+D7HRpRuNVCntdiSfKsaZmBaoyZqk"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1558344395.2_1558344398563_0.04132094914268514"},"_hasShrinkwrap":false},"0.1.3-snapshot.1558344773.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1558344773.3","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"3854f6089d44a131bb23cbf4ffb70f2fecd89c95","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1558344773.3","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-h00vg2wM/DN8K3hjvLhqn7tcBVE+h8xR86R2RFs4vINz3rggm2UXv9IJexdZRHZXF6c+skc6QF9DBT/xG5eJAA==","shasum":"4f172e1ba3f9bdd4c29344dc268e3ba3e6f9189c","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1558344773.3.tgz","fileCount":144,"unpackedSize":2865318,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4nRKCRA9TVsSAnZWagAARFQQAIzIZyjDPb+CKPP/puVL\nerTXPi2lEOxbygwfVh6KMkuwEvg1dHQscRj8pCXJ9KpGDWltldn8HMlIJbYm\nx4W4OmEIwcJh3y3p0464wmsMf/m9Ii2z3nHSerfPHtZQU/bHjfnMvzWcGuix\nAqFhJv2BSyu0p1N1ezicB+A4+O2unVqspBl+6UsIDrWzDxM2YFQbZ0xSoYHr\nrozO4WIz9jdG1ATfrlhvSnZIcCH7uESu4OX7XmKhrdhN/xKdGvy/hXUjfyYU\nT83pY+8/lctrMZ7T/AK9S8/y8+NTbNcuGXPmq3WH0TD/zphyrJKXQke+IQ5s\nfEvzdGqKRm9myHyqRD4CGHoHQupoZ/r2BJWMfYxCXmvBVkSpfQNdtdOvOuDK\nc/vlJcFs/1B+vFmkW+YGKZdkTuzJf+xkVtPhWmWG88Jn1JKPD1LNWwMT2raO\nzl8lO86/HSC1RaCkbJuq0ljZtkXAbSmCeXuYFFnC4eNIIN7D5C+TdYkNXaxD\nMlEMzJDD0bHXm2Jo8tabAyLAbeNXt6MR4pKuA1q+4dAOWCbjvZdJty9pdqWM\nn3It6Ktwnyb3eK99Il5/8NGQJYVV20/DZKWXHL3tvMxICky3XYKh5NYeDDFB\nqBBKKLCeoDvChUnoDstLBLEOA1msuCnSGmor3dxFjY8zlfVJXy/mphqBgkHR\nV9bJ\r\n=6xIM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTaq0qgxYzGP4gbu8KXCAGwxTwUD+QGZz12VkbFWBuywIhAOLUbKuThovv+JFiSedwWy1io6xNY3FVVr6KQUViIIVv"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1558344773.3_1558344777827_0.547896280016908"},"_hasShrinkwrap":false},"0.1.3-alpha.13":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.13","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"a7c92ddb1f54405f03728f11a8c526a99b565134","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.13","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-WPSsuRcgK05JLN+GEitMgQ/9aOShiTAitmj0biCBU9kb2olYSRNgFH1Mgk2nSpQbYmR6abQkTobQGVvLyDFbrA==","shasum":"b6e1b2c6c289cf04d922f8fdeb009ff05245999e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.13.tgz","fileCount":144,"unpackedSize":2865312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4nTICRA9TVsSAnZWagAAvGEP/1dq8Px3S4JrcxQLOerj\no5+B5gOH82jjKsZuMGFOya8Zg0vRt2a1PhEh+BP2T17FhqLVk28ZY2yAvJsd\nz6/X5xRPxTw/ZVgYGCZyqnL18tCN/ny28w2C0x15kZ7PTghylLCJdE3d0JKL\n/FKS87V9OoB0Y70qvrN3YZoA43ajwJrQ6L4dtIfRwaJ4O9i4ZtBTwYVdxW/a\n6fNdIqqnZ3m5Qiy3C+EKElYgbV83X/5VFWbglBpUfPXlkmfxMd4b+GSdkVgl\nDiQXe0ZqA7XBiFLsvaAgRGFVZ9yWkA7tawwWdNdpDGzJxbeW2IJoyq5Kk6Kr\n8KkOajpv8qPsLSIJ/QqhiYXETW2hoo9Abf1FzasW5lwmfgSPR5Auz5zqFmnk\n25LaYsmxyL8JhSGYhhPO4QL8YPymHd5LBLQc4BU5Uz7qzHTl/M79ZWQLOQbS\nT2ToFkp+uC6FGHNWhjQQiiqy2gVIUlUGLBr/EZP6Kx2nuWTvm3Pp/dOOGsPC\noXiBcd/pxdqJrJjJ7eL/7lr62zfykzvE4Bq6JmMhohFGd7DApuA51t2Cg8wB\nyKShjlHvs/n7ZGd4WLuqodKYBYJ5HkYKlwaJelbeO+Zqh9zmoaeTMPSHKuki\njn7uTifuIQfT5oVrhw2fQt+exW6QVfOf/rpvP7xBkb7SegweSH888+B63bIJ\n+Tpx\r\n=Ys/f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHYkdsJtyHe3sqeaBUVNSTJSbooXwasahsRdOdAgXM74AiEAq7UMMiCliBHM6RCuE+mVn4exwMmTFb4KqYG+Gh42qbs="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.13_1558344904082_0.5884459886206348"},"_hasShrinkwrap":false},"0.1.3-snapshot.1558434201.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1558434201.0","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"add96b779ff0debec1e91a8e292797f5e4cade9c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1558434201.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-lDAZwQjns/EHZHHFWlQUw2GspqQ2ErpFfhkCUqtivIihKCZwEpTOAFMoA3oD0OdYjsrdrHgks3VFTVGmBflNSQ==","shasum":"e987c9962af5192b35c1eb9702426556a71b1d49","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1558434201.0.tgz","fileCount":144,"unpackedSize":2865323,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc49GdCRA9TVsSAnZWagAAIQwP/ivX0S584j+ZYbUyRwds\nehqraQk1GKHLvOCTvUUIxJun1KeYlTPuMRI4xwZ82RRjZxnX0oezA27azhJ/\n4sgMtloLyQ/wGo4CJ8/xkcp/h9mW6kT9vETqyh06V6V+T2DvFnCiDG7l6GSi\n2Edc2fjdfn4c+V+x7E70lACTu91KyTbCyVIkPmntd7MlqkydlzqS0c+mzbwy\nLWKVr9Qh1hygQEfDW7wK72qraybsb7A9iHPqPRewppjozA+IwqJwB/HNdU7S\njJC7JjkC3q3YlugHcHTuSWD6Lns6/zGq/xCKfkgjjV7jNsQAWVf6YaxB/UOq\n34tFbAdidxtwdo5oPIPPBzBa1FtUcGHupwzwz1UKhIC+xcSZa+qIraRIBbrF\noPl5q8daOz8rRG0H3lXVOHp7qk6IoxHJCrzMZ5NLPNj5c9xqFVKXPebQf7Mz\nR/2XtGNQKgvR1m/9lNFZAm1XMomTpUDMsNGXk1eAxheJkVuWLg26pgIhO/mG\njoa3nmF2piJJxhpeA/xuyRLiyZqOaDjek29EdNyrknL5StZFb1+2Nwrj5Ex6\n1bzEQWi1xJ2vLsNtXNU9Qm5MXCIKbA/qlIjBQIV05rWw4Y9vH8QykTNRgo+7\nzXu271Iw/f+70JKFIFfC7W6A5VoSGZcR34fq7GPLFSF0U3nDX/74YMsV6Zqw\n+o+2\r\n=JPkf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9M5lB4fr/foO65DTt2PWPDk7k/BRINHyvayQhsvD8tQIgcFgDXZRGeSLS2u4z7e85UvAymRajd9i8EUrgRvEaCi8="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1558434201.0_1558434204570_0.340439720006813"},"_hasShrinkwrap":false},"0.1.3-snapshot.1558441159.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1558441159.0","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"359bff0d70e012e7a6744c1c60b3a380ee0a3636","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1558441159.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-auE3SdXHtXFF76zOmmEaTFLmNFHPAilD9V3f0wcxCP3hlEWp1kG5hF3dWUJo4iFmLEFADu/r8stRrldlgO/W+w==","shasum":"3a5c9f1841ccea43d1d519c52301e09283c7e70c","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1558441159.0.tgz","fileCount":144,"unpackedSize":2867449,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4+zLCRA9TVsSAnZWagAAzDYP/0UdDUEYbskGq+kd7c5N\n0zCuTGlY3d5xtmHv3xwmqS5832awtyXuU8ghtuXfoqVK7pg9mtWESZG12C32\nw50ixHU9a21kuovJzzeg4LvavUgn4eTncAhBGC+1b3rxIs/ie/R70mFtIgW9\nGNzhvWL2zj52inVwcBnmxmDtDDxXnwXSbAqw1JAU5vpvLtMhPnn7ti4J1xaO\nJ0R6m6d6HTitaQSgKQPAi7ATDOJKr9WPWiPGvfefsor8um2jhqj79ow9vQny\nb/ZuZWW9EgQAY8RynhVmWR2xWtTg0jWrpN8c4u43iZYkbLqHARDXX/i3qdiM\nuKhpjUqv8trzmiG0r9QuUKn2cvG9ShkLsBmW1BuxVXIFpsWhTq1b9lEV6IqO\nxXLFiPnIi/mMXnr/KYRRadKkLiLrCPknD/RzF/OdQrEBf4/iGjzoXJQ9mLkt\nPgReOB+t2gxgYmWY9X4bUKogz6OzHmYWp9SSaBsVuKaE1BDbqIgRQvTFvqgU\nap1pgjJJ2AeQVO4ydoDi6ybavqsV9EPS8Q1aNnPhCiuhNQci1QnX+ZcBWoM+\ny03OPbBWwo+ZNB5SNvEFqwijt01vIbjgICDUfh/h8B9riaGhxlho0BCfdSXG\nJD2ticYXS91Lzt8tY5sFJs5Kcv9/cgf78uYReASzx8VqUhs0cGdwgCym5F0l\nqQHw\r\n=ePd9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAy5o5QIF2ySudeJH6IE3U9xi4yjjDWZ9dGwkGWpwbvAAiEA8gyhrUJ6p4Zvon8NxIUVmZ0RiJfCuSVgSrwtP24bwuI="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1558441159.0_1558441162264_0.07891184917778249"},"_hasShrinkwrap":false},"0.1.3-alpha.14":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.14","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"2d0322256a543f6ead5abeef890d3a9af189f4e1","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.14","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-zE/PNTyS95cSbhvI2NlTOgqaH4ptHwO2ajUTLqHbvm9L1hVB8rgnzUNve4bxCaK4lF43pW7xBrOVCdveuf68cQ==","shasum":"3bf3bd9cf69e846183de00da0b3c0d394ddcd912","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.14.tgz","fileCount":144,"unpackedSize":2867418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4/DkCRA9TVsSAnZWagAAqVYP/2jpk1DhD4SoeS0vwGgE\nY0XdNW/ICrk0Vqx37EMc4eeR60qYq/iloAoz3RoGpsFCH2FEK8Y0sJ54Z42B\npx8YrT1yoaq3ipaYA+gYbk1LHuj0k5rd2GWvLe10RhC/J6vcohAXv4IuPmdn\nvyE7J5ZTCXwZVUFwil8FVnQZHESJl/z5B0x+9SQaNwKaUwurVpsounnqsbgb\n6iQpdKcKggEJWfgvU0ulrP5kj+7Aq2sI2+F4f+jNqLxODKGJgx2v6BuhXkU7\nfRZVI40lAsmmXPQQkZ/s2/rhwLhcQWs4JH1h2UY+EeztAlEjk32XGwiKOyPI\n7t2Jjhn+pv1ptBgUDPNEbcLkXSbeL2Fi7yim5ulPtwSEEsmni1CqaF5cbQl8\n22IQsmGxhHAaGPn22JjWR1TkcTksoPDC3E+KwXxv+pKO9YQj6SPbrYEpVQ6z\ny7qVdILOVgq3tbHFIOWY1DQx/UN2XafqQlrJOpiOk6saqrgLvtBwxlM3j7Lq\nDrK4rgdKwUl5/Q33OLNGDn7mcchhK5bPxsLV1epMb43uT3a9RXoCwEfcONV1\nsdBaaNQRPHlMB9UGhwUH2lcE1j+w4zgdV+fBj4MGRpNPvXx1d0mu6GF/rJLM\nhKOVJnBiZveB0Ux7rgNApMAbUXiuj9bmWBDbH7fbfkijdZ0T2WHXswJH3vRq\nFHqN\r\n=7GwB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICOAFcVm7eb2Z28gF9mqk3pNDiFxEgnbbdOvLEiyRNYtAiEAm8jkiYAdfuYZ6svu2oU4pex/NfyQQrKhh+pfjZyV0bE="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.14_1558442212165_0.1308202717331748"},"_hasShrinkwrap":false},"0.1.3-alpha.15":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.15","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"d40ec8c1ea73c2d9c5b3ebf5010af5b52db53d34","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.15","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-4r3WPwTlwqaOgOv+qo9XqRJPPtOE/cT+bp91vqlVpz+yJGs31gdkJ09MlRPL2d/1OYsCnx154t/DizcxbAKVKA==","shasum":"6ed3e9814a1926d05ba1533f1ff6a786f67859cd","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.15.tgz","fileCount":152,"unpackedSize":2900999,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc69LECRA9TVsSAnZWagAAP0gP/jvogx9EQu+w7FZPnEnO\nKXtxGrUHXO8zru/hEEWN7GQW/liepiqIHy+NAqal7uQ3HirS9gHazvgh9zhS\ntMSngbjQp17c7cXh6RmK++kPQ3HkARcwiUDRZ4NPF41jNvyDqQnGHzfEHm2v\nUzZl3xU4TXKvnrUzU3rp2tCWBOkS7XB6/bKZ9+sCVQH+f+4tKd3f4Fa1NPHe\n6AnEqucXUgy0GUA7sf+t93rDyTbHjFCXAhVMZ6o73in/7lNLkiemYKuG5gpn\nrFBX1QBJEy0zrB15pEiHT1Mg3N665yCQ9bmpOCu585MOdXziB7cqSFNbF3P1\nmdPYE3Qkk2Dm2uJLcsXG79eYiM+U65Wdt8KR17tdtK7skuv8F1IOS8o4KWai\n+1y6F+ugy4Kd3siNDDPDR1OIY3ZwavoUzybOh07/R3rznj6AeDYittmMmgMV\nPeAo3CN1zM3ptK40DIdwAOUh/s7y3OZRDVtiAokAa4i8LoZjm+XvMPdHXdHH\n2quzSFX0bzonLppuoIExaDC9l55IT+KT8BJu9AAwJD0IQZUW4hGse9SADm4R\nlDLxv/3C5DjSS92X1DnnYih/GHzCkNV/cWBYf+C8e7iz2DnFYeOtewN5u2kw\nwSHpk4NQDBzZQFiM7ESPknkckczhVooi3KppANbkg43Nk5g6DLJz7cqh0rRQ\n/TdL\r\n=5UFq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDB4gkU6Bsa49cTHvc7yWdsyO58/U1eqzWGIVwd+Cj7agIhAOjrMWMP3jkA/iYEevr8yR4Mw5j9uSJcQIzOZs56dLtT"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.15_1558958788072_0.6841724644140195"},"_hasShrinkwrap":false},"0.1.3-snapshot.1559049643.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1559049643.0","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"9ae77c5ffb547be28fd4ab8b1e8514972122573d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.requestProxy({\n  greetingServiceAwaitProxy: greetingServiceDefinition,\n});\n\nconst { greetingServiceProxy } = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1559049643.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-eSG3Ayw4pEyAFngXeI/gNIPNMFlAjopvjtHoHmh6iX65wXfv45+5WroH/pgLMaJHO873ZJFH8tia2tTaPTop5g==","shasum":"dba3ebde4fe45ece60aa6f03cfcde976498ba6b9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1559049643.0.tgz","fileCount":148,"unpackedSize":2870458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7TWvCRA9TVsSAnZWagAA75AP/i6WHcd2EMHpn2L8iblB\nks7r3V59IEn9ol37ZSiWfSdNFGQAQlfUuHHV//zOw9RIANFlcnqwLmIaR5v2\ndSt0vB4KMVVHATtAv6Hh2r1sK4onsB0uk1dn4+Mi9PAlflYAP40XMe5Dzb/M\n9yguRI1/EHu04KMu5ZAs2zzwaVyWAslmZ4vkEwAI6VnSIEd3ruxbxZTQTGsu\n4Xc17BtqESqT9EBQ/Qr5GzGhwDg/Q3WEVQjZMNbQmyld8Zi/GHqgnymxYgpX\nM7fVHdCbrdA5sPdcvMFk6zI9TGmTBbqX98imTsfLo8rO2Lf7oxL5P/BHAtkg\nTERxssYXUXe4sSEz8Ohu2izCCrbr4+SW8mZDJG4eMSv4JjsoZ14ZLe+qXFni\n/+yfC9E/qZVWqEbIe6A2pYXpi1R3sg8qyOBit2nXWq6QkqmVC/IhUr7qLSiz\nNNKcZEULmueSV0/wxx9HPxj5+R/kTxByaeuH4vXGSDlRQXJhHXEKPvOSaiIx\nfLChDs2NMoirmRAYSlTcNtoS5a1ddqqhv7xIiCO60Yhagwsdwi3JAfDqO3Zz\nEqFpATWJM0yKgfkasyC/fOgwBZ6mLgVNBy+uUCjNHzFn2zhBFduSuhFiNwII\nJoPnSB7vkdGAm9SyQd/aFiylau63eNg83O3Pcaafrpkw3Iabxn9nZhchSqqK\nhd9g\r\n=bC8Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAOGczBrZU+0cbFk+/8W4wejDMu0hsZT3ivxTY5/wCKiAiEA2TuBeJ2YJPKjctQaRLT5+HPAZESMd6P27MZMM1yxzSI="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1559049643.0_1559049646517_0.9797321710684463"},"_hasShrinkwrap":false},"0.1.3-snapshot.1559050838.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1559050838.2","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"97151a082f6435407b79287ce9a9b078ea33f437","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.requestProxy({\n  greetingServiceAwaitProxy: greetingServiceDefinition,\n});\n\nconst { greetingServiceProxy } = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1559050838.2","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-4k58sJce4uwOryakoIr6x8vJAH1Y2Idu60K4nqRMnqcld++VxMXcjbrMsjyDHNvIhC33UBhBiJP0kmCDLwsU7A==","shasum":"2cbdd4b9bcc3abf5b70795c4dfcb416b9ccaedc9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1559050838.2.tgz","fileCount":152,"unpackedSize":2897503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7TpaCRA9TVsSAnZWagAAhWAP/2ZoBSAGu4tvdqeBDr0D\n/ONSEg96R7dIprAeGUXWHv3fpN3vGmnj1sXuF5ewqMG4tVVJtypSzfXCjTnW\n1nqd1eLQ8N3qhnG6AlzZwxLlb1WmZwufXFOXXHBboLVauTWgVymjPYgh2vq6\nZxop0SG1VnAY8jcXlrt2JTXheWq0V1nnUw4soF2XjDZoDCRyz+jiPB87Kdrg\n8OlkpHMaS2qTwQH7TxSBvRVXwETvH3y34wVk9/Xl+eDkYpnyPBFivYR2XEZl\nM45g6d1l13KYRu/dAf+6MpCQMCt0kybjNzj1PHw2kou5dG9Y0YZ3dvMGsthZ\nw6jciDLMAD6rAf1TSEZZ5mZBznbYQCCzP77MpVnDyz1eXNIdEkrgN9NKIkSK\nTLMiS1M7hayrHpVijSpMg3uRPYFeAcF9ymr088eRkdP6wn5YyxHYsFMW24dA\nWmw281RChSXo3IEZwffGIG8j4nX/JoOv1U87mJiDWpeo7pCW08uvOzZw0Gte\nNV7e18t1OZfaIqRGycCvXTm7JYifQiSnCmUKus4AODA5bUkpDvzn8qsY+Ngk\nKa146UXVL9dkHnCqdeQVLSktnsO8Dg6BmI9pnswYe7Nzt/ouJnwxeWqgJb/N\nzgsg3eOa/utmRzwTQmOhHdQX4u/d1bl651y7nLj+e9qlQSWJoYQraxmjNWqM\nPQw1\r\n=i9h9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICqFrKXzhz9s6HwwKXZ3nBJMD9QL3Gc7lk6lEaZ5UQ15AiEA7VTNeVb1GJzMrb4ldUg3jTS+0lI3JquUH+67Q06uVXM="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1559050838.2_1559050841542_0.6848991152492232"},"_hasShrinkwrap":false},"0.1.3-snapshot.1559054374.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1559054374.4","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"be011865c3dbb00507a24cbb5c3069ec82d4e795","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.requestProxy({\n  greetingServiceAwaitProxy: greetingServiceDefinition,\n});\n\nconst { greetingServiceProxy } = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1559054374.4","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-0Hk86pueQfSpNvScFNZvKVrByLlibaxQfRc8BOQyA4jzAcYT1HYJJnd1QX9nh1chBhRhlQHc1WgHtA24VADeGA==","shasum":"a9e7f495f80db36b206dd1bc32f6fe0ec9b9e159","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1559054374.4.tgz","fileCount":152,"unpackedSize":2903857,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7UgpCRA9TVsSAnZWagAAbPgQAKK4Kk9swKfuk9HCmKSB\n5+oGUie89fIF4xkqYqJ8ButtB+o9LMwqbDY23CuRTkVQwy69ZSFrqT2sCc89\nJudzRfKKZJftc7JFGZPbAUcfIMjTQSTXF1QA3Ji5uM4qek9Lhe/UsPEtMoEM\nV11Ht+htyr2LuWh8QbRNByPHjLTWJPtouM23ydoZP19oH8MPQcU4Z/nG56q+\nG7y2v72M/cRnOmCjFpHVDXWjouSU8Dt6KiAHvvD37uRRDAxWVTyF3CQcxxZ6\n9JcwrsjW93yuZHAM/pBBsHl+qMzsZ35ArYtVOnafwzXRnpv2UC9z0dKPt7yV\ntRPexut3bhh4j2KLww877dF6lkeGUuqB01MBd1BU2M4B1X0CIRvWoVhFwZA9\nPsKSHjQHPvQgoQQqgf9HqNUUJbRUIF5T62n8FQ0pRnwoazzp+d6W8AZiQPJg\nmiuZ5oPLpT4mgesACQhHlIFVXgu+1lE+dUfE6cYlZ2BzyycQ9lAgn9PX33ID\noNoMcqLx6gR4RMMZOSiItrxB6DoNZMUfmxZjZZRrR7PNJRRNXBr8DLI8d6As\nFxgcq0Aj+9YzfoHn7yBWDUarsXKGdsAHF8RgYMUulZUqiNpdDWgrYWm2Z5K0\n0lbofshIlUbF6lhCOWCtDagbP4+O9KERNaU+rn8dchJNsSW/PIm0+iBkNqpk\nCvMf\r\n=I02d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEaLCRChWd+65d3A/6YrYknDSRjhnMgS/otzS7/huhXNAiB4F6dRGkhrCBSawm90Sw9ytX8ii+gwHe5c/lStryW6vg=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1559054374.4_1559054376908_0.5119589086238181"},"_hasShrinkwrap":false},"0.1.3-snapshot.1559054346.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1559054346.3","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"23333c3c04fcea0858e5b5153ead2a244d51b62b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.requestProxy({\n  greetingServiceAwaitProxy: greetingServiceDefinition,\n});\n\nconst { greetingServiceProxy } = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1559054346.3","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-7FHPbsR/vLOD3huNGmYyqhKgqQN14ue07UOpD68Wy/ZIisKWMyFIz45lPecKbqHfHJr/vOmMtgYDoDwgkehkTQ==","shasum":"3f60b6bdf278e0634cc4872085bb4588852912f3","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1559054346.3.tgz","fileCount":152,"unpackedSize":2904226,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7UhpCRA9TVsSAnZWagAABaUP/R5geW7ZNb8hx3QyafVy\ntTWYY1K59gsFUmPRLVe3yBclbci595MatLvo1ft1ayub6D1W6yaVE0u8QtKp\np4DdjydgknCT2qBZW/vC8YDpvHuH4a/mCLFuinQYFo+lt/X7Hm4pxUgNXx8L\n/Qflc6rOqEx8xzxNihMWNmHpNSTJOAJyT4WhHFSimqNRemFuxjx417cKYzoR\nIKCcvmAzR+QVwlxcLo3MB1ugO1tyNxd/+G+uWx9Ean/J8aL1oLbzAXLtMtbx\nTw7u84hNZGNxEvE/cV4Rmcyo2G0wvVv0NeVkTfnUyMHTjSV5VaLrUrkV/g49\nlMoFmd1ZqstRzRgcUa9nq+fo7f13qZjBMVfJsqsXozBfHJBjvNjgaRbBlkVA\nSlCj7Q0P7e/TVuaA8na0Bd1SLjLMS8rFcy5EcUz+3btRmutC/z4cPB2M32VT\nY4QAzvDOk3gbP93L3z6wojnplj59UqAAnya3XHt6JKcEpA1xco2R0qIgW+fz\n3/ywgRi8iQNM6EvNJMco94K09GmEh9kI/SWUw41VmYiIl81neSl3Rsx+toPI\nXHr0I/PDb0tnEm5jU8Y75nDhMkdzurZBYUAMB/ymNddt9vR2w4+Jj97r89sS\nhXyQpiqqyJucJF75ODKx7Fy1B59Z75MTgdvt1ahvcxKZ+NjxOaRf/6goHY7p\nHsWL\r\n=uBKy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHKPCEvos+/MRAxOzotCIPgq0Zk6xdz77Wj7yqHZLl43AiEAonlRDpyOY70v3RW5FifftSpuOflMpKGB0prH7SCy0yQ="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1559054346.3_1559054441291_0.45171385011190535"},"_hasShrinkwrap":false},"0.1.3-snapshot.1559055541.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1559055541.5","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"a5a28dab197e1ef0ac374d01ce4b9f30ef535100","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.requestProxy({\n  greetingServiceAwaitProxy: greetingServiceDefinition,\n});\n\nconst { greetingServiceProxy } = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1559055541.5","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-ZUdkinVjmDTWG23sXtbbtxXYC6qlUvWKHh5cy6WGz6UbeTPmEP1PJLiq0tE2uex9TUxxpjV6bqvqOPWLc0AnpA==","shasum":"b291c8a09b0f70064508380b1ea0b36504225fba","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1559055541.5.tgz","fileCount":152,"unpackedSize":2905539,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7Uy5CRA9TVsSAnZWagAA8RcP/ic8+gp/strgpbeDwxg0\nevv1meGisQfB8/UcwRtbo8kFno3a1AWxr7DnP+DRWQXIc/maaAbY7DYHuwWd\nC5/Qqz4tktfQF3kWZ9uGOwBFWF4QpdtnK6BHFMspSNcOdd1ipod2np+UzR0o\nWQu6NMsyvEagUzeGuAuz9/V2Lg1vBWhUjIr17ci0QWbb+vyhBad6Xx1g6SFf\n2NWHR9OtMa89IChmXCD76e5G7dhpfgHM9DjZ70A5LNqW8cNx/wDWC+7/NwnG\ncfV9Vt0K+rymV0jzJm9S98TPuoEc4DpXfhGrUvfVv+HzMzBCoQnIfmlnlH2N\nDcq3hk2fI1aG8jIgGTiJrYJuZFzF/bwJcWTGfAYuFxJ0SxyVg3cgMOYbKFU2\nJofsmH87tvAvn0TpDK/iDaPl9fK57IqKENbAdNxAWVC/fh3z0YlmvPbestmM\nNatVtfO7nb2Va4pYh/pZPQoodG8gt/SbOrynS5V+pGc79lcU8CnXok+UYdeN\nOJzg/rre+TW7GI9ombQWiglK/OkoPtcx2RmGkl64SeccwLgAx6n3vX8xtNZd\nOZphvyptVYFW7aOPT0na+8o+U4+BMOTQ0HNv5NWKlWfGxvwyxSHzsNdN1xn4\npj1dF2eL7TtG+vIzGjjHsNE06JYZDzands4nWI+9BkG1M9xQElrAgGNDpf+N\nT3uu\r\n=jppl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCd26JznXkntV/O/m2X56ahzYYGSLyU1i40X2BKm9+aXgIhAODVZQn6tjxMN4HFEAqUCEXH7GBqDxVKFJpXIy8as5Cq"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1559055541.5_1559055544852_0.3875042134670992"},"_hasShrinkwrap":false},"0.1.3-snapshot.1559116552.6":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1559116552.6","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"2b0fa4a4c617157b1288d48ac3da4a97b9ebe392","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.requestProxy({\n  greetingServiceAwaitProxy: greetingServiceDefinition,\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1559116552.6","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-SEenGCt6FfxTZmu9wb930AhN6pGxK89NCpGMu8O24MMGGIy8Dyw/bPMrbUv6MNsYXWWz41JMiPbSWLQ0ZgMpIw==","shasum":"fc8f501731e8ed18c4f4a9996d775c14b8c602a2","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1559116552.6.tgz","fileCount":152,"unpackedSize":2905577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7jsZCRA9TVsSAnZWagAAZrcP/iAPT9EJYh4JhoQSOMKv\n01IEZEKV2BJqeCb4uI0DXQ2qsKKji168YnZC+kjxZGiD1Ko8D+mj0lBUwIZw\nd6BvDODKjfSW65NvGn+E1AcKyCEKco2okQ1CN9ZCbgVpBaAOGmX4xhtHfEey\nbsamGpkRjPQGmLuNC0JlKHS6rq3S28lHEtWFC0daC55o0nPis+Dp961w/ehu\nOhm3tSI9mrfahYHTgr3p9EmyxmSFXWpYnBlDikfl9sISeU0n9FiohWMFkFEB\nE3bI+dV5KcyEYeu9Iv0BPqBJ+DT5IF/lKqOoQof+Hg0jdTQXzil6oXGsg9rF\nycl07B1BMOl+7sOdBl+J0jfBIiUMStTtvXja/BaiiImFqH3Tirk7T8Yy4RO/\n+l5u/VJryGjWCOto5IiyrJDEM3Rz/aprmMyEof5JnDy6sgI3u0qSEpPiWLDe\n2atRfRSnB1WZ0yh0acSGY9jF1juluygnqbaea1V63p/5ySefd4OZDfoU1o2j\njNWT4hr57ftjvOt44rxRUSsGAGIuYcBr45qGMUuEaIZHc+AzLHrEWe8zHUhk\nRAvYszGeD+Grfcr62HClmLUBffRHx0wYd7VrdbfcKGYl/vuO4r9kpojHM+B4\n1h8cY2OmB87AqOy3MY451CTr62LVsB7R1tsFOWEkm/v2yLQN/7pb/Gvb3rJT\nA0cU\r\n=Nzm7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1YcdcgGCa5/qXzkEgXLIaujezRugBjvUagVOgvC7/ggIhAIeZ9Pfg6SBupUBC6RZ3CKzGZrzx+P9rGhFn9/Rh1qQT"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1559116552.6_1559116565473_0.2901079286104866"},"_hasShrinkwrap":false},"0.1.3-snapshot.1559117284.7":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1559117284.7","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"ae5e5967c99f3b7ee86dbd9245f1e5c332b11d3e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.requestProxy({\n  greetingServiceAwaitProxy: greetingServiceDefinition,\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1559117284.7","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-H5xFrNXI30UiGxnI0KdJJPZ6CmH7hG/rziaNq8FJe6M8rJiohfVzhG+2ytM4wORTfjyto/1owOWioTqqf1Dp8Q==","shasum":"8d0bf059097c3ed45f12d66a210cbfcc3fdfd3b7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1559117284.7.tgz","fileCount":152,"unpackedSize":2905641,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7j3oCRA9TVsSAnZWagAAMvAQAJEBgbBUacXgoMhYEkY5\nx9BwDq45G6uovnuhsx8msYJ5Ng/wIMesNE89s2GgMUH+MJchZwHipyPsuIDf\nwHu9ZmRqyqsuFRYI+ElnCwlUrQ6LWFZB+vBMte1+U1w6+BzluAM7QbH5Us91\nunSO9NIypoRAZtB4iEcWhHs/jKE4M2A3oMeks0Dlx6NABHdtGaLjlqQCvEfe\ntGBSKVyldDep90+MSDkzbkFW43t1KaaXGa9/9Fdp2iKkkLv8tFY9QxoOyKPM\nccGznWYr2xktaZpgBuMRC8spnRbcdngkKv/e99r+xI9YtiX9scOtPYhSN/Rr\nI8L0a5GNqKcna+LZEQ6wvZRvm0bg95a4Q5D/uirgWuX76IFdgu0YutHjdagp\n13s50B9b6VtEBziEzYSKNghmqey98BAVXAty1VrYymyBzUn6EZvE3+1RPl6b\nnUmXXgwAiMTGNLS9P4PkEqvY2R8RVMiFieGXsy2NE0uOv2pph07YbfJhecge\nqif1usaz8rbQlBRzO9rF0cc1s1A42cBeW+GWsmbVzJVX8A43X+bCF3I1N72/\ndLPQntCF0mt2B5cxD5/3a4HB8/zrM4zyRt9QZT950/cZlFC2cc5DQqkhj4cp\nmbnYB2MYMD6Tcb4K3laz/wvExK6DXX+nMHZKa8povW7P3dCPchcODpJygKLg\nz91T\r\n=4fBF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdf1eYX9MKgzWpMf10ZUIvkqGUDzNWg5X/TaCPewa7HwIgUCivC06hAq27epIi3TKx0XXzrcdv+eDGG1lJV9jQnn8="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1559117284.7_1559117287207_0.33275936696418196"},"_hasShrinkwrap":false},"0.1.3-snapshot.1559118277.8":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1559118277.8","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"fe7bfb6836f0d87e92d383babda73a55fa85ef06","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.requestProxy({\n  greetingServiceAwaitProxy: greetingServiceDefinition,\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1559118277.8","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-UimTArMtWFGtB7W9Yko/8pp80ho3fI8dQiPEEiI59/2EKKXUpyR6Z+dJRvA2mkP31SsNYFK1VjJjjn/Mb8q5RA==","shasum":"86227891cdfa30013af1e20190596ab8bdd557e7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1559118277.8.tgz","fileCount":152,"unpackedSize":2905648,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7kHJCRA9TVsSAnZWagAAY9EP/0dgAiJaonDTjan35iv3\nN2V6/x/AgAE8OFWya+5QmbbQ+EYpPb+bwJi/FzaMSgF62sH+pQEo8vintsFH\nDEAG0b8mQ5jZ1/DTwttIh+edKWrvo9sttaVsKJPq5ME7NUxfSOBAchiieWiS\nzcAeAU7P/5mBPby6DGrPRM7YMu9BL41LabpYuzYsr3B6GO3bQ2cs3KTCdDtI\n36mtA0ZGjOp4SepmNAYHq/GeXueEn7GDLlKEwsF9Ld2013Nk2PRMZbisaj4L\nqStt9FLxoY9n/DlpNMEnFIcJ2Vv3RN6ZwCDlRgh6SKLMNFGoiWpQvfXzVqff\nTrnuWZ6GT0CeWB6BvmlCqy0Iqmynnplir2DqNkGjWI32qridqUZDSch28Seo\nqjR7JTKfQ/GAi+ESdsYpUqaUQEC5H/pUrhcoxt1/NeSwNVleuaw7olepoX8i\ndOlfdimLohK3cg1KrwiAZCnvTzv+tU4F90kE2JuAILCChVaJXTMTQjU/Xz+K\n19YixWvBGqSo9V9dlD/C4kUXXfZHLVcSP7t09fRIRs/je5sn2IYYnF5eJnc3\naw1XoUDtkZOA3w8N+3bEp0uGtR9DJNL+sc9MUf3EyIeI24CM2Yqww/ni0KPP\n/299seLAQW5hr0QlC8ed1eExKsLmuxbSQlmfUuEQFcAyiaq7Gy2IGdKJ608J\nmcQV\r\n=91zz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICCfniJ5e4XSM8QWjN0jMeXY4vSNAjk9rAYQ40Jz5IH7AiAHaDFWduE+8B8LiXEz6TvORRSLHphz0DmoipWTdJcNgg=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1559118277.8_1559118280847_0.3514843267069827"},"_hasShrinkwrap":false},"0.1.3-snapshot.1559122508.9":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1559122508.9","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"23b895dde3091f412d1a336e284e387775562d22","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.requestProxy({\n  greetingServiceAwaitProxy: greetingServiceDefinition,\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1559122508.9","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-pVuu5kYlKhVvU7pP0XgwTO0SoNtqi66w8au8vVWBhJ7ixC9kXTvzvJnOHlyUAn6ZOdbQwxc9ImYeKWdJGz1Nlg==","shasum":"5cf7bdb50073c542c4612b8de9f6e6b390f26f47","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1559122508.9.tgz","fileCount":156,"unpackedSize":2911330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7lJQCRA9TVsSAnZWagAAOO8P/28v2yPSlf4L22BwccsR\nODLN3+pC/v8VCx4661yWMVRMX9Y1uqvMeFiMkHZ1dwwNQm7r6Oq8pxcE2Y+E\nx30pPHBe7RluASuzSaKDok1D+PMbSdvfMseLtrRzAwxMfLt3MpJnSXRZbfDw\nlmOvpHCOnVQ6/AXrsjukJ+U4Kv2qKxpEut91cV0WS+YUrWYuiqejGAWTTBVs\nwqP7nRO7DHbjcWJUqGNL7MybIfn43B5xl7qjgUwrR98+dOjR33+3KgEX06a5\nPTevEl6uh1u4q1BUxtHQX6Q84Z8LZbzT+LMmnP/HCIoc+5HrMZdOj4QZUCiA\n2fNNRSlXIo3r3m/LGEKtDzO5KpxbrzFLFGIIdpW4nDwVsKfL62r1beX5oO+m\nEIZ9B+DVN+glNEyy/98pddQXC8EL7JdL4jLcFyWeaZDgrOtOYvfdUtZcxecb\nZjr1Bwa01PXDFxg0aV455R/AFvtax5p4+HXYg2H2rigybx5q4Vs3c4yKrK9C\ny9B1pNfYawDGCnY2DjxW7K2GTBHcm8SBzQthYWHFeX14Q8pSQrTQI4ZrsYH4\nDOqmFhgcL0vIbYIokLcOeqKHYXIv0Aj41Tm9PWsAbH6k9P6rAw1cHyyPo82A\nyJsrSsKTDLeYjc/B7w5wo287MRTAjvaAgoC0HLy9aptRPDOELIXdXHvVMpIt\nQLpT\r\n=Jpa/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEy3NpyM2YmK1PMzictfUQvJ8ixr0dwT5DQTQUwX/+GMAiBJG6174pfeSlidpUmZm/4cKJgMrRcwkzE0LJ4BawLjrQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1559122508.9_1559122511713_0.5929543581775154"},"_hasShrinkwrap":false},"0.1.3-alpha.16":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.16","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"5566b692909b4648d201cfc03668125f8813f90a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxy({\n  serviceDefinition: greetingServiceDefinition,\n});\n\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.16","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-/ZUGkW9m+zKUdFRN0KGvhdMR7SmvPpG1uSth2f/2/6PY2a+RzMxWW0OqJslytWBp9+l5k6MCQDoP47AXsdV6PQ==","shasum":"a1766fd7b2d84cf59aa35e734fc3b5aa87992c66","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.16.tgz","fileCount":152,"unpackedSize":2900870,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc75zDCRA9TVsSAnZWagAAIFgP/3pSxfmM0eBMQOAVxviC\nGsF4NiWRYDHNeIpe66RxwaRqT+arw/pxuAOib3TQl2GZa6ybTTH+ql4qvDnT\nBge+sI3X3ECYcegnW1sBTPe4A7+tSgXQC4+vztwt1WNNmu2W667PEtIEKAi2\nH5bx2llOZgH8nWRa532iRSI6b7sahEWWgNfyAoQ0h7jPaRwY2s5gnusRGXPp\ns15PcA9ZcJ/XmO3l3ept9HeuHDqSjv/Ra7/9grVUDt6PkVwYIijN969ISkPr\n9qJL/5/ITi+MID4WLfE7g9VuXb+XQsSydW2WdIhLv9ucaauAOh/QJ7QK/JDS\n2aEp9Pzjqitow5zp50BR+Ax5lQ5bTeZEkLvBM1Q7xFI3BDD7l0mvbghf+sRe\nlTT0CcvWMbiVuxkVRVW2YPXYzt6TaVlYZgGg9Rl89RITRd68oNPJfs5AoS/0\n4Zu0fhlhffB/Cjbc7rjM+nn563pV7AM6mac6AcXrg3Ag2qde2A2SwTS/5H4A\nqWiaTGIoitDa+BgYAePe7MINBXlNpueepmOJi4BgYk8WO66Hy7Z1LygOo3Va\nzPRKSOz1oNgDC9EoQ7GaKu3A2xIBrRY9EQIUolimwKSJIzuD9Mr2iWvldlG2\neiObOJ9RuHmWkkqZN7VTzfii5ULmB6s8uH62vnf/3UWScmYFiv7E9dEA1+cc\nxsXm\r\n=tEzV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJYGDy7lkmYFI1puICgJSCSryT7eGWDe+teQ6KjhiOnwIgGPj85HyV5Zh8N8hDF4VdrV1CRIMx43CNqQVXktl/tkI="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.16_1559207105769_0.3702675102992319"},"_hasShrinkwrap":false},"0.1.3-snapshot.1559219639.12":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1559219639.12","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"5a2028f88c5ac6cbf807bcffb9eaf66ab27e0211","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxies({\nproxies : [{\n  serviceDefinition: greetingServiceDefinition,\n  proxyName : 'greetingServiceAwaitProxy'\n}],\nisAsync : true, // optional ( default false)\nrouter : defaultRouter // optional\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1559219639.12","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-3xKX+srlHymO1pVeUA9CblFAgCfShyNuFgxs2w9IWRO74vrLezCjkbxbhlQCqYeo6JjA6Gs71UfyLJ6gCc6kkg==","shasum":"22911539b559e081387f0fb6a6839c437997fcea","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1559219639.12.tgz","fileCount":164,"unpackedSize":2924674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7828CRA9TVsSAnZWagAANgEP/00bFUAgdJNf3lUjLYYN\nOnbDbJY7SLVAHH74rUbXgkI+uiZSVdnhewQSu9bwaFv/UIJfIkYB1mYwRHaP\nC9BIJs5czNeR1hgIJ3F9g1GH/IsWxGVGNQ08P3h1YXsKQQ+GN6dT3zH3HaSs\n+rvaqgGbFn/DC2Z0Ujt8J9vKbDgsOR2CK6vNFXLjZ2D8ynRyncrkvYVyYv0P\nCIWFawAI8qzc3vYkImfWRBo5Vck/BSa+/0pf97N3bm4CVv3M9F4/8Bf29MO9\n2LJY8nAVtEnFVXNErHkQ07+DWdr9m3o2fZxUbzo7nKwRC0gVB4DNbx8DxRUK\ns/YNQjIzRagMryhNQ62lZXEUFi2QaR6fpPRagkWjh6aU1dEQNDBVW/VKMiRS\njUyv2/0Geo5/CM00mkNtVvVymlyGnxk7Pud31JyURS1JU4pbdQGQcIv3M5xT\ngnfH0xoLinVKO+qWWg5SwpjOyWxEKQDXx0p9xmX8f5rcpLXbaNQU9t8f1SnY\nJox8wrRiTAnHatwD9y023xaOEHyfECOUFq7eGz3BRf9E1tqDg7+d8CF+l1e8\nIVvBbpziaFsNm44mXFiQ49KGfFlXQfCFq0g78uLrdS6QbrpsmZT7OnKFCPTp\nNtBCymOKzQAzIk8y4k4qxqFVwKyqC8qG8Hz9KONwXYdHvKVWpp5V4s4a/4yw\naS7u\r\n=bg6K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVfZOqRL69k6baNkyQs9ht528mwpPyDq3w6ULKFu3wggIgaCycpFs8Y3u1l5vaqa8T7EswF1tfz0RCMPpaLSxIMIE="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1559219639.12_1559219643072_0.33613262210635364"},"_hasShrinkwrap":false},"0.1.3-snapshot.1559454850.13":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1559454850.13","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"c89608852a4865a1254bf54e7836150629b7d0a9","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxies({\nproxies : [{\n  serviceDefinition: greetingServiceDefinition,\n  proxyName : 'greetingServiceAwaitProxy'\n}],\nisAsync : true, // optional ( default false)\nrouter : defaultRouter // optional\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1559454850.13","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-ArBvVJEiKQ9pWmHNZGgUTbTOFXRTIZaYlKTfrGAf0AUFQ/7hQPSEICjPV+wdlyq3L4kY2oAHLFcx3J6gRV2ORQ==","shasum":"b881ba87108f43ed7923f14a3f01a0e9a59261fa","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1559454850.13.tgz","fileCount":164,"unpackedSize":2925841,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc82SHCRA9TVsSAnZWagAA64UP/RhWVQZge//dPxMGOI/v\nMwqmgGR0yaEqWHPeF/fPke1+sZK1YpthJ9iecYRoYPWwzJSu4WvqyUxA0IpY\nFbNe7tLht3IKG7+whlWZ1vqjAqxhTyT1xDRBkrLpSIFS2jJ19GUJRziW0kpa\newyyYmHUQ/D5YLeNB/pmMtMxUNYS9WRSGPuAElp2YbWHbd3B+5S3Avb5LzKZ\nGV3SOYo3nofktc6vG8RsTWlqdGyY5HHpcQCFsYKG72nIJPjtDdVF9VSXGp/W\nKt8qHZpMGeTpk2EzCk4kauXNpvPRVqo1UMm98xXRI/rtC6Y0N1+G2K4JbEDK\nvd+iWkAGU1UTV0VU6aAZ8XF3Esj4eX5iU/dEv5jaavmfmRw+irTAd9okFSDa\nW9nIDoLmxpkgmm8qv/EPnBkKf04mlVbpz1JlOS+5SbN95L0XY7/jz0kTIXbq\nbMEJaeV8qGb2KgIrb8bk6WE5qplomIpJPmPT0Ab2cir3ciYoUNh6U/x73Pyi\nzHDUnGhUwK0w+spq9ZAFytFiqW/NTiOvHXwH5qaWV1jhC8rsCvUH11y2lXD6\nW4x3tLh2d+UnyWr6YAii0dYk1SwjaZVk5peWP2i4lcw/L+q66GbU6W/ZE8fl\ntbazYeo+VGE1F9b+fGbGPOS5ucj7GnxzVT4mcf3nxwH1T4URNT7ht6q3Gggb\n4lHq\r\n=y/1c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFVVZklYsuwQfagMUDpT5Z8NiHGHtHyPI204JoiDNkAUAiEAznou1GnHkKKj/27T6/WtAECvBG5sdvfr4kDWmM+4o9o="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1559454850.13_1559454854227_0.06590004268886096"},"_hasShrinkwrap":false},"0.1.3-snapshot.1559631723.14":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1559631723.14","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"b6d09c58591317e022dbe3b43d0a46ca10ad07bd","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxies({\nproxies : [{\n  serviceDefinition: greetingServiceDefinition,\n  proxyName : 'greetingServiceAwaitProxy'\n}],\nisAsync : true, // optional ( default false)\nrouter : defaultRouter // optional\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1559631723.14","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-JjVD8I9reFBhd1fdbHLAcIiOz0Kzb2aJOPuAapovdlq5tas/EbmBTjBfhbm0XI5+dFM+c1zk62oO7zmamwSUkA==","shasum":"670d19e30d4e3cc85a505dbc504fe8c119fab268","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1559631723.14.tgz","fileCount":164,"unpackedSize":2925403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc9hdvCRA9TVsSAnZWagAAdj8P/RY2IBWS+KToeRMRiBsw\n0wv7DBktYS0eUWlqj3vZ84TB7NYxUFWd52Rb/HQ6r8n+nt1B97m/spub6b3M\n9KF8Erjn7dgH3g65/P7tP5pghgjOukHwByU00Kjgo7TA9xl9fR/+wG8E1X5l\nj2CuOpEnnBZ5Smm3IFI+KHlqCP5VlKZ6oMdFognk6IwOebZDajEBmfR8Uf2V\nr3zOjjeqzMppb6qv6sYV3VqkHlNjCvOH+cuTnpa2UFyDCxL94qITvqPZBdsX\ntG0OOfPEBQfi4ipjc2+WEDFeNFUNeNdk42Izp69HGF32WOydDV08fvzImHzl\njN4PGEb1q3FiGD5KsEhEgOltfbkcTZuC43/c52KkGtuSYOhSzOyRIE6WVQrq\n57O55l62nsQba4nlaJEyIOGnw60xr23UTkb/tWH37+q2RGCKegkswr4W5Sp+\nNpjmMxZ4l13nOUtNMHfm9wpCuqBs55nnrvi3F1MvZgJS692Hu1R3TyNglaz0\nTdh/F9sqwZgiL+B1WicVmklHPLExrFDlzm+nO9SvYO67dYWKUbVQNO5TK2Rt\nQg0RosUujnUMaBlvu8BYkY/inpMH2xd3I4kzLbusDhMNK9v1OnqU2xd/9jft\ncaWFS5Hm5zvH7sUEol3YQW57m52kdkv1XmW24UnQbJPKFriHfH21SZMWFprD\ns97j\r\n=W8TB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDP/qRxBIuEy9L3qY/taGcbbOE13DgLDs5EEYbFPGNXmAiEA80IWhPazVkY5yhAANoXbLwlxSuGAB5JtUpOBYN46rSk="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1559631723.14_1559631726792_0.38812082752632104"},"_hasShrinkwrap":false},"0.1.3-alpha.17":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.17","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.11.0","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@types/uuid":"^3.4.4","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0","uuid":"^3.3.2"},"gitHead":"f11a5c3c0b84b5613e1d1cc661ec5282b235fc48","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxies({\nproxies : [{\n  serviceDefinition: greetingServiceDefinition,\n  proxyName : 'greetingServiceAwaitProxy'\n}],\nisAsync : true, // optional ( default false)\nrouter : defaultRouter // optional\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.17","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-8cYTcU85Fr5yXbRcc2ibX9kKnL4zZZdT0YgEIqXZ9Th97Qht+E2if7ylQnOLCDwZG+w1Uui7bI6D9Yzf3FWgig==","shasum":"fb95261d33d4e3eb0efc0c20fbc0dad26e103135","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.17.tgz","fileCount":164,"unpackedSize":2925396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc9jw+CRA9TVsSAnZWagAAeY4P/1fPOfFPhWOO20mQYQsg\nj4Sd5/HtImXQtWldPzlsWWMpfLUZqm4BwCN1L57k+O2zVjPpxrbVE82F8/dc\nK3Ln8N5RKjRsS+KxgZ0iA5ySu+yU2P+SE9EJ7cM+vBCBWoO5D00EBDESuhVm\nwcu0BBidQkycfYkEjPGbYXQNM6oRsNCF+I4xhewfl9PLaF41RqWKZM7LP0YJ\n90kUhJK0JtDGnJcFJRw4xz2m0rmHqSruPzQS8FcEvVng6Q4s7OBqJiX82X1Y\nn4AJTIP/LMTIj7pbY6m8AJA0MzkfHrTRQTrbhqgHQzsXJcsffAmBwroWVxIo\nf3i6EwSDsa+mToDUqt5qO8DDF+eZVAcf+3qJgeelUfXEC3qbMBt3/u6ilzG+\nK0844Xzb/fPevBSXeX6gSB1MHhZ0Y3eP2IuqBlnQodPgWAKIxSVjGwRMqU8P\ny5aNsvQQsnPO8756uYcRySYtu1ignE8wVB6HC6RmgtC2FmUBXV96DdVHDRKG\n+HMj0UqL94e95XlsK9N+sWWyYNnlrs5si/BCG5eR+yP9XbKkKDUjDX2/PsiL\nUuKFeX1SVo5JSybOjXOmT2xxaO8oKOsog2TrAhcXgnfExJ3omIatOvu4/LcY\nrkVboLZbQJmNVHBQ2qPlqZvHLFA4yQt+0R6TFpwac3x1gfKG3GzZcfaBYXkQ\nkFej\r\n=T5KK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIack5XPlWZoBkRVOJDVKptGCvLwPxaylrT/HnXgMz+wIhAN+5uSFn6guzZf2kGaP+wPm8s9fXd7Zs5rOlmgq8oNXu"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.17_1559641149970_0.029708699183193188"},"_hasShrinkwrap":false},"0.1.3-snapshot.1560405226.13":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1560405226.13","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.2","@scalecube/transport-browser":"^0.0.1","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"d0a30723f237f49bbe24c8a2de83fe76d8ae1ec2","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxies({\nproxies : [{\n  serviceDefinition: greetingServiceDefinition,\n  proxyName : 'greetingServiceAwaitProxy'\n}],\nisAsync : true, // optional ( default false)\nrouter : defaultRouter // optional\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1560405226.13","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-Rw7XYpOY98RrPKsFlDHD4Ik9LxLkk5Hg5JaGbqNS5RMzZzEiDj5ohOK27jIldgqPupVMvVfr2UTe5YD0DFlXuA==","shasum":"0d5471d6f656560f0f4c20672b56ff202f842d0f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1560405226.13.tgz","fileCount":165,"unpackedSize":4479795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAeTuCRA9TVsSAnZWagAAU7YP/1BUHuDmujHhn+tk7+WY\ndVByU1WLwZ/1SQD2r/FdzRoWpNMTi8mykXQMmnxkpdNx6IRwIm9ew17Gmsv4\nOpyM3taXFWSlkC7Q2S0v4xCxteFcjYxqkRPUNMPFDVqtFwEmbsKP3fRdAHee\nrsJn5hbPwRdnwNR6YKkg5H/3t6qh6IdiYCdQJq1tDIyfUo9B4o6Vgyi9GOzU\nY+Hupd7OvEJpI/vy6o2Kg7BB4eb/Yv3BoSyXhCKhRGXJ7jrEhuxB77k8ZSlU\nPZ/lT1DUfXRc1/uwuipo3tKW5i561Prz4UDq7NgToCnMDi3GSrR5C8HURM5E\nnEBpIp86RyzjbWp0Eze9QHBO8HafuhIoL/EkFlKRiObxuTeRsJrEp/LMl9x2\najZOXdfSRlIJKgCLblmM3ISQ6bswog8bq8TTKvbhbNUZXQgFc8ylwy3Fh70P\nazn7za6tCkl3A5V3GLhgjESS9x7iVmMzpGXcmMzO3c27rDEFl842wQ61sy/l\nqEavtwJwG7AKHc1a6P/ekE1a+9uRWgJQjGXygi45mkGymSxoyNVyPG1AFBKo\nIKrFjcGrMcOeWtrAGlBDzSbrM9FtkEOcQi4K32zyownAqmOLCVtcW8d9B/zU\n7S/A3GosvS9XmBthbuwqRTTj3ewnNvws2TqlOMAy3pNrN3Rbt103+wphJzck\ntXUU\r\n=gddT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHmv9v7vGur4bjeY9Y3G41DWxHCR2ykUX3wxp0zcYbFQIhANXqcJfwHpPehHAYoeVVSiAsfPz6a0SSaFTmAddEKoEO"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1560405226.13_1560405229688_0.005812291307310424"},"_hasShrinkwrap":false},"0.1.3-snapshot.1560426579.15":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1560426579.15","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-snapshot.1560426579.59+2d08326","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1560426579.39+2d08326","@scalecube/transport-browser":"^0.0.2-snapshot.1560426579.59+2d08326","rsocket-core":"^0.0.10","rsocket-events-client":"^0.0.14","rsocket-events-server":"^0.0.14","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"2d08326a23559d7e5535d39139e76890bb0746f0","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxies({\nproxies : [{\n  serviceDefinition: greetingServiceDefinition,\n  proxyName : 'greetingServiceAwaitProxy'\n}],\nisAsync : true, // optional ( default false)\nrouter : defaultRouter // optional\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1560426579.15","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-wJb0DooCx3FT6/wG+2eaNT/0UnPs73Q5M6YUMn14He2z7VKBZAB+/eUfrTY7oF1f5Rr9MHVqil/EUqqmtKKUrw==","shasum":"39bcd3a0680fd58c8c2d045d63d585b64fa0fc49","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1560426579.15.tgz","fileCount":165,"unpackedSize":4479824,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAjhiCRA9TVsSAnZWagAAYhgP/jUEnQtB54csm9U3BjVA\nz5IwuYkJucA0iPEYXOOxfajx7+FUuMRXm+Fl5VkqNoC51vj6iIDQUeGOUiWm\nDaqPgccclFG/seZ2VqAp/jxJKZmDdBh9cRBV7SFB47fw4ymL671JUCzIMECg\nKHcf3DJqYgXOHDnmIsjHL9DFR4/PGisbhJeoSpMQ0NGy9UBWsiw1VtYWL+N2\ni00vl/AjLTLHdpmSkko0YyYymjeC1HQhJ8hkdIrZLzv56ExPxFmtSdmx9qG/\nptpMckOROmZKuv6pGISj198LJj/MBZpI6T1Bk+5ABRoj3S0Zd/njes8zlbnH\nurNjl6uVFhO32lVy1XQ8cLsx4Ytvw6g9uak9TkkwX7YucbdoJRLRcAZEirCz\nPF6Fqhbtd3o81w16ioeLANk9lMRVXztJpEqugimW3QkG/PBD5uvhCE+ys00Z\nZ1zcUFHWp7Hv3vzAf9wd8Uo++CQ6GtVCb5UyB/i9VFov6h0T2V09dz0VXu5/\neoGmpI9ys8vbo8RsF7FTNoe4/jumQ1ngJwgEm90JHB0pjuDDKR7uVAn5ziJb\n5jEFnfjynGLRLO1Scs4ccNf5+HM+xwAGEO77678ixJUivGBImiPsOPBXyCU7\nOSp9QRiDEYbUJwkdhJeVZ6lUUTzyknfI+E3XCYxReXn+sbDXeZ4GgWgQgbza\n7Z3v\r\n=sO1V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDm/8GpfiGWp41/DIKi3YuE/h4Vi4ly3fFEN5jmgna+sAiEA1gh6Vu5MwulVcfqRQHfQ0mNo6eyWA69DQqh38HlsDZ4="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1560426579.15_1560426593662_0.16665081671843307"},"_hasShrinkwrap":false},"0.1.3-snapshot.1560429815.16":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1560429815.16","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-snapshot.1560429815.59+60b9c66","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1560429815.40+60b9c66","@scalecube/transport-browser":"^0.0.2-snapshot.1560429815.59+60b9c66","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"60b9c6646efb23384ac52d569635a8f6f4bef452","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxies({\nproxies : [{\n  serviceDefinition: greetingServiceDefinition,\n  proxyName : 'greetingServiceAwaitProxy'\n}],\nisAsync : true, // optional ( default false)\nrouter : defaultRouter // optional\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1560429815.16","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-jaAAHucBDb7i2XcMJ8+ITNDiVIEKmCJO6qi01D3RfEZ+/NZoCmGsDRYhtmgLKAtOwhm/DgQxji5Uzuqh6GFCMg==","shasum":"f8a811936724312e9c2032c7633418304c806ac4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1560429815.16.tgz","fileCount":165,"unpackedSize":4487568,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAkUaCRA9TVsSAnZWagAAUxYP/2UOf+ClgmfXd9PyayZq\nNfW6dXPd0loeLV9bKYPifb06hAgAHlvbj4h6WMU47V5urHsQK2HeHlYfztSJ\nF6lSzX+A6YjYltSNy+mMtZ7sW4IK/ys9joCCDuAUw5xFaR4p+4qaJCj2UcoG\nXIpqQg9DwW5z11s9fXN4IuYpXXcdud4wi6aLpnTTCQbuREcSxBBicmz+n7Xg\nFOuoebI6c41dFAP0crEcxtDZI7pcOBULbbRfbve6Uy72H1rnQh9uDgw/7mq9\n/dUR88fIU0i0gcG/uAxyJIO7BGUBgKBlY5LGZ3i6czDrBEEvM9Txvj0sLPqH\nSHa80yzAsvkGSgb6wzo6uWkcSvlttZbTEb9HtJu4kbzGJK2K5lL8ZPeiNeys\nfe8fA3JJSIsHzVEvwzrpREVp0W8WtsB/i4Yg5UbcylRGWoNnz+8VnhuSrM0w\n/FMOwayvZDt8QuS48YfL/cYE99EAAM4/3LPSvRjE0+rTG5l3aSMCgYpPrTiC\n9RSmi+dNtG5wE7YpLKAnQzsiQv4Xa7O439mLNpTix5u1+BMhx5PPEIRAi1uN\ndCKFQHvmzdN/P+XuyMXtojrZGxqnr62eOBD+/hGLF/a0UM8ixDVqRVy/3kmL\nQsne38OGWNWQh7nKKN2DsndaCLKWhNZxOBh8w2GVZql2e2IrNBH15fq8PnVe\n3Xjs\r\n=bopo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCR/r//rxXxoKw3wH4xH3bJEyU0BtxdtXezJazxq0GHQIgT0FEW7K+4ZHIH+E2FsImAX/rBH2LwNPoXln1umPMbJI="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1560429815.16_1560429848295_0.5203173562756103"},"_hasShrinkwrap":false},"0.1.3-snapshot.1560438276.17":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1560438276.17","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1560438276.41+ba1c533","@scalecube/transport-browser":"^0.0.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"ba1c53313befc585e1e90708bfb373febd70501b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxies({\nproxies : [{\n  serviceDefinition: greetingServiceDefinition,\n  proxyName : 'greetingServiceAwaitProxy'\n}],\nisAsync : true, // optional ( default false)\nrouter : defaultRouter // optional\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1560438276.17","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-AKBDyxLHUszEeBZjUgE2snH2VrUiK/xrW8Se+6KGvUIAayMZGyZxWQg53yc+0lvJReSRZY9FLCH/fVPLCwmtJA==","shasum":"aca471dc46246574cd0ab4f9d16079abe355bed9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1560438276.17.tgz","fileCount":165,"unpackedSize":4488733,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAmYQCRA9TVsSAnZWagAA9bgP+wUWyhUMYt2n2wGcMFE4\n2/4bCHOYYIZohFYSRTuxO1n/ZIDltkQbL7OpJ1IuKp1T9pMbdpeJFeOYvy45\nEm19UAn6PQ8oNrM8OxYwDJl7NgWCoULzq6KdgP5GBwoS6NGueWvGf8Y3Xcri\nWB6OA1BNcv3TthFc/1UFjThAOJi2ljhkwekOixsBIQUM1HqNzAAI8x/qSEPV\nNkSKUtBDjYHjoHuxTwvSRGcL19ab2IU0f+FkLt+4HNYlW6KhCg1Y/GnMHGq2\nzVwTdKcm1ujETBdDzD7c04rBvzch7pbf4RJovuk0cChWdkNyTIgE4kAV65va\nRf69w9GwyWqPp8PVqE0LzoMAjp8kd8WuihX0rBl+C9BSbJ6lKORVONoOAM8+\ntiRWmcJk2sLtqzy+JqP5sj3kqjbKT6d44Vnf8MJL8TJZjK7dqId97k3bmZk4\nlsdXHP6cp9GfsGL4yBDT9BxahRhrMeYFTzKV/QuthxMiVcwfM1a+0X4BfUds\n9MslRJWt4mJefd1qVyQIKcIC/aqmtlHggPE/4xzICdJ6Ie7r2VUG9uGmlEkO\nVAy8D/urOrOsGhz2Fgrc3hklGWIyytwXA19HOgbOp0iGuqEmgpom0vFXV0P9\nv6YEABom0arDAee3W5GMko9fSJIX61BLAr8MusCokrXkO/GIWPJQIqFNK03f\nxJqw\r\n=Ehh9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICDN0DPuzVG05QLv0rgHvVWUW9UisxryzN1qHS81tnAzAiEAsvE8/MSs61eRGULY/Tai5hFwBB05A0lL8Aiy8jG2xak="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1560438276.17_1560438287677_0.6019477390523271"},"_hasShrinkwrap":false},"0.1.3-snapshot.1560438959.18":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1560438959.18","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1560438959.42+be340d4","@scalecube/transport-browser":"^0.0.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"be340d4bf4ee97b21acf2ded3ab23c491688a803","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxies({\nproxies : [{\n  serviceDefinition: greetingServiceDefinition,\n  proxyName : 'greetingServiceAwaitProxy'\n}],\nisAsync : true, // optional ( default false)\nrouter : defaultRouter // optional\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1560438959.18","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-Ju/GazrRoRr0m+o99gAsojHUtiSBJPT7WMjGt8zsxQ5cGRijJovLBRa8wFVKCVw8rp+N2ztznxupgKXGpy4GaA==","shasum":"a5401d50cf58cc776ad4931a23f2a1cb1bcef98b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1560438959.18.tgz","fileCount":165,"unpackedSize":4488627,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAmi2CRA9TVsSAnZWagAA2OIQAJuEF6v5J4s9h70gl8tF\nWwe7fBEGQsBR08ziHNJichHLU82547h4zJlI8w72QP3610IvXtGo3MuSLJsO\nS7+I3ACs434YfztMvMYZvuz3NKIAhuqjnI0Rtp/yfS1dAt0jPKZCc8ZQ5RlH\n0iQahCrBbFfoM7Y951h1svanXE153AsMmgDRw1i+brQRQv+etjGlz515wlI5\nJs7ae+r1164aGWSeBvEEdKy9RyHIWc1EXHjR6bocFmLlsTNg/dcFnfVdvjZg\nBr6zlBfNu9RPfE3ZXg/2/foXSOecBQ1OlyqyFjSX9gsROO5v1arXEMrgGbrF\nklEz7EK9dxK0tQrPrQoeeg7aCoBOzy6wIOXLQ4swFRfRC+VCFhFqbcliou+w\nSfEnM72mkzeOLNFdYitAk50U3qyhKl8eudt9jImdMMruwvmrqiwsFzpYjJ46\n8SGfDiNtwf4FuNt3Xb9866vBh9RinmUF6PSVdUPQTPdPKavJx13eD6ICl1G0\ncNuHmJVlor6aaL2Xi+C8p3VuU5nGuBYoppmbPIUVvk6nc0wW8BkZlWqaVVrx\nOEVdGpOxCbnowdTL1mqvItYcJfWQHFWXKazG0DoGCXFu/ZIITfQfO9wIqouv\ni3ujmazqeoZfXDtp9+XeLY8H6pRNEWYrANxxfUf/EM8bnjuJgfa25J9cwJjZ\nTkCE\r\n=GPwi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDp7JBf09R4BitIo2hUl8sgHFbgnhtR4Fe7f6I27AmdwIhAMjf1KOAq/8R0bdaGvly6/eRh/4kIeBlPDqXO1nQygAz"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1560438959.18_1560438966339_0.9529048909132289"},"_hasShrinkwrap":false},"0.1.3-alpha.18":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.18","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-alpha.0","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.3","@scalecube/transport-browser":"^0.0.2-alpha.0","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"f12f8537d0784abfdf3c3bda10e6a7218e8c000d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxies({\nproxies : [{\n  serviceDefinition: greetingServiceDefinition,\n  proxyName : 'greetingServiceAwaitProxy'\n}],\nisAsync : true, // optional ( default false)\nrouter : defaultRouter // optional\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.18","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-C8/cheGODEQ0SrCgjV3AIotmlLG/2w80Sc1+sn2iL1ol12AYuT991uJaZ6Pj6X7CcuDubP56QrByOG9g5tijqg==","shasum":"6fdca5f973c79a80238a730f2ec4a1440f4e220f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.18.tgz","fileCount":165,"unpackedSize":4488610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAmpBCRA9TVsSAnZWagAAIegP/A98G88zGsNpPcWWCW8l\nPuod6ebPUbDYo3+InSpNkKw59YjrKrFwqwfJM4WZKzFmBD1PQXd6F85DkzRd\nvx7YiWbGoODOG0rW4zkfNtp67B5KhH+V58HDObFHLtTBIWfAoF1FomGk6tb2\nAyvExYhgqhsxbJnKvAVUX9UOM4gd/NJh1PacgaHmoaaULM+jLocysblYIR52\ntIJqlN5znf2KskHDgTJQxq1hk7A/pFZKihkoXSJDAB6rHo0xNc83bvzEO9fd\n52nrvtLUBhrkHX87TDXtMKd/g8E5xnD0EVozTo8MAWZ54wTQHLbJdAipUr69\ndwgwajdk20BJxzE34QDAWjnE0XUEX3oJ8aXBhv1LeN1XuheDV/i7k463w0gp\nfK+LsssqIvFglxmUm2ySLfSmLDZRUnINZTX8JqJzY4uVlqZ5R8XEu6yVKX5F\nBbm0ZjId3FQGh1naIdSMkHrcxY/1lDEfxjk0CCqflBaRq2BwB2tgxT5+B8hr\n7ClXz3TEr+SFmRe3g34JExz4CkcmJ0RQplWGH3xd77vTfqsWC6D1W+/iB+TH\ngeiepUwXKUXswvx3tiKj2QH4H7evn+wvG7ioj7jWL+dt1TAOxczpuzKseaUk\nXwfJoZo0BGzc5DyH0jJmioy9M9zt3RT/qb0xypEifZetCS1Zjxa4zXDJY+Y0\nqPzZ\r\n=NjPb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBnGLuDRgfaoKES1H2utFPIw7JkGRGkwVDjV6LPdTknUAiA5IJ6uK+/WwzklmaV/L0McVJQRbVxeFiuFb6QGfRXjOg=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.18_1560439360567_0.13709647903705569"},"_hasShrinkwrap":false},"0.1.3-snapshot.1560688729.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1560688729.2","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-alpha.0","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1560688729.2+f0d82e5","@scalecube/transport-browser":"^0.0.2-snapshot.1560688729.2+f0d82e5","@scalecube/utils":"^0.0.2-snapshot.1560688729.56+f0d82e5","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"f0d82e5469da8184f181c7422c5779f89ef4f7df","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxies({\nproxies : [{\n  serviceDefinition: greetingServiceDefinition,\n  proxyName : 'greetingServiceAwaitProxy'\n}],\nisAsync : true, // optional ( default false)\nrouter : defaultRouter // optional\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1560688729.2","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-DwuQPxP47BeJOgGv3+aP7PzOaYXfKSU0VDjZFF7LUh8f5kVNll6wjtNQ2ByINxc4zy9CrsHkj3b62I46BauQaQ==","shasum":"ba759067ca45d0cbb9764918195b36a4db0abb9f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1560688729.2.tgz","fileCount":161,"unpackedSize":4480290,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdBjhoCRA9TVsSAnZWagAAasYP/0iz/CmKO1ihFQTYENdq\nTSdnQFcrlkr8dQ6WUAgyEUt2drOKXFpIpL9rwICCtVthUVGJlW7X4vUnA+3x\ng29u6PxzwTiEo9paoqe/rByFNmTh/07VpDitteQjNyMCYopLXj7ZF3q9ZsQB\nk8LCmTf6n+M8L3ZR6FvZwGuoEomaBsBNHwSF63TCdBh23/LFdlnoL5d05hSL\nfK9/od1MB/fACXK/IQ7n957Veu50HOiWqycF+5Eg3L+jDEzgFWlDOjQ34iz9\n7dOcU5FJoWDOeBhC/bsWOKIfmV6derhYOd2cLgaywYI/uAmBoAxJQ1ihEkUe\nCXGWNWf9ljslCsJmzAuclzZcUhFF/N5rpO3KNlVRlblnaTAkjCgfsZhcphCV\n5dHmlFZYoOVG7o86lOKyN3yFfnzE+Br4sDILuDqpANyufTBogFXD9BgaOkys\nmD14tnzCIYM7UKZTtrZ4p4P7N+3U5zMtWOcLa30d10svYFCjtGOsRZsxFw6S\nuWkm39SKDz4gh7ltuRf2ZVIP7KuGrzCXgFyR9B6hmPl4dj0kE8yIK629G6QA\ntV2W5prNjry7XEEbarWuumqyVHbiTYxWhFZmWCiKcgKHqw/wPsp7kTVjl3nm\nKp913kqCzl0z18REZJU76CoUR98ySu2cQC+FKxm6pXpFSt2QqJL/M/Tt9fB1\nNuC4\r\n=PslO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0hmsjr4eQL6QwNLTPW2aWwiKLgWvNUaw+LQ6KNuNhRAIhANtZpRq3s66NKQSrtDNvqyt5hPN9ul3okVtvaTPiORDs"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1560688729.2_1560688743739_0.5694460371333048"},"_hasShrinkwrap":false},"0.1.3-alpha.19":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.19","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-alpha.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.4","@scalecube/transport-browser":"^0.0.2-alpha.1","@scalecube/utils":"^0.0.2-alpha.0","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"e673377bbc997630f3b933be6bea734b34a323ea","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices - Basic Usage\n\nScalecube.js microservices basic usage for creating microfrontend.\n\n## Create a service\n\nThe contract the creator of the service need to uphold.\n\n```javascript\n// serviceDefinition is a plain object, that describes the asyncModel for each method, that you want to use within your microfrontend\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: {\n    hello: {\n      asyncModel: 'RequestResponse', // Promise\n    },\n    greet$: {\n      asyncModel: 'RequestStream', // Observable\n    },\n  },\n};\n```\n\nCreate your service how ever you like,\nIt can be done using Class approach\n\n```javascript\n// service can be class\nexport default class GreetingService {\n  hello(name) {\n    return Promise.resolve(`hello ${name}`);\n  }\n  greet$(...names) {\n    // RX.Js from() creator of Observable\n    return from(names).pipe(map((name) => `greetings ${name}`));\n  }\n}\n```\n\nIt can be done using Module approach\n\n```javascript\n// service can be module || function\nexport const hello = (name) => Promise.resolve(`hello ${name}`);\nexport const greet$ = (...names) => from(names).pipe(map((name) => `greetings ${name}`));\n```\n\n## Provision the service\n\nThe provider of the service creates microserviceContainer and specifies the services that should be included in it\n\n```javascript\n// Creating microservice from class\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: new GreetingService(),\n    },\n  ],\n});\n```\n\n```javascript\n// Creating microservice from module\nconst microserviceContainer = Microservices.create({\n  services: [\n    {\n      definition: greetingServiceDefinition,\n      reference: {hello, greet$}\n    },\n  ],\n});\n```\n\n## Creating a proxy from the microservice and use the service\n\n```javascript\n// the consumer of the service creates a proxy from the microserviceContainer\nconst greetingServiceProxy = microserviceContainer.createProxies({\nproxies : [{\n  serviceDefinition: greetingServiceDefinition,\n  proxyName : 'greetingServiceAwaitProxy'\n}],\nisAsync : true, // optional ( default false)\nrouter : defaultRouter // optional\n});\n\nconst { proxy : greetingServiceProxy } : {greetingServiceProxy : GreetingService} = await greetingServiceAwaitProxy;\n// then the consumer can invoke the method from GreetingService using the proxy\ngreetingServiceProxy.hello('someone').then((response) => console.log(response)); // hello someone\ngreetingServiceProxy.greet$(['someone1','someone2'])\n  .subscribe((response) => \n    console.log(response) // greetings someone1 \n  );                      // greetings someone2\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.19","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-3W7jWJzMl5r460ntskZ4t6ARq17k5Aky1ZJOen4KUDefcdgHnRrpOoSI1e7Rx4hp8TZCsyLKrPbU3ghy2cq/7w==","shasum":"1e9fb21b78ae5d8b39d3efa673f705a02c6563b0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.19.tgz","fileCount":161,"unpackedSize":4480198,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdBjxXCRA9TVsSAnZWagAAx7IQAJpI/5kc1LfYGstuB3JJ\nhRKyZcFEpNWrp/8znqRuPWDHcB2ahopGq66gx/2H5+egAqLAaVQFGI4K2TQR\nnADsGI/+a5ooncKPQjW+a8Nc5G/qtDklAz0PafkUJ8OLvYQ2YmS/m/U0cAnf\n84Vrvw9ChBPgHIh0soqg8mheLfesLA4Gsl+2zmjjgSnqtB+Rnqt5ewt0JOvZ\nYYytTXZhUCs2JDYTJxx8yGwehwHDEDgn/285nxs1BdsgYPMreO5bDLbUUmn/\nkQ1lSfsTWsM2AwedAcd/M+zRsvwMNJUzKLYSwJ8VsQQctPn2nYQVUg2Xn7JP\nAq0rMNQ0LwBjIV7qXrezW2yqroGQoHKvPVZVvfqibqTqakL1Sudi8bPkvyd6\nl3G6VX5ZWnFccXaz9GNvEisipFjE+dyJS6AUJP/6GakUKIJ1gzGYU18eZWCo\nOeBEV4j8Yn4qjdLxTLKX5ZNNbG4RyG+sm7x0IZWg965KFpGW8vqh0MC7PhH/\nxmHxSVMWmAx6VXJPD0kL/RG8aSN+wKs0934QCvoBzbC46EPNko7gNKsJ+O+J\nyGNup55GpsmjYqmSTS5wBMJjSIO/M7oKk9PNKKACRnmgbkwtKaWHuEompYk9\nfiAhQFV85RT4WY+b1JBp3FeG3v4V3rBUMrPPQ+18EXyZTs7E39OYwNxAY6Fu\nYEya\r\n=Z5ps\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2eXPc0YJK41bdXnrvNZ9q2f9POPLsztmupdDFffc9OgIgGOEGU9y3bkyiiJdgEtggqQz61FKOgOVFEEc6ZinsBHo="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.19_1560689751072_0.44429798926391006"},"_hasShrinkwrap":false},"0.1.3-snapshot.1560866824.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1560866824.0","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --experimental-scope-hoisting --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --experimental-scope-hoisting --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-alpha.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1560866824.0+1fcdf57","@scalecube/transport-browser":"^0.0.2-snapshot.1560866824.0+1fcdf57","@scalecube/utils":"^0.0.2-snapshot.1560866824.0+1fcdf57","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"1fcdf57c97c351b715d5f1665e72f19ed1cf09df","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1560866824.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-81mdy3wBnUXsauYigC2F7w3O7nnioOa6zrimeIcevd/PmpsWz8KUUr/i5PkBoDdXokd/PvCVOacfV8Pytf9y2g==","shasum":"b8244e50c6e37967fdd04a52fbf0c0d83f08b11e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1560866824.0.tgz","fileCount":159,"unpackedSize":1356042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCPAXCRA9TVsSAnZWagAARcMQAJ8YyyiPbBMjF9PvbWzQ\nc1YPusJNj8ajKLHMlUwwOETZZeld7fkaUJXDMlaEb1QhwUlilvlgjj4UDHlm\ntIdj0exV6dMNOOj+bEdgzEMUO4omVuxJmWBiEW/CbGtYvjo2m7BvBNIjDmhx\nKNfxMERHskwo+ZlDFbOKqfPD5T5yCogB82rdQ1tlXEmrouPSXQE9a+PvbL4o\nhfOx8YUlCSUhDUNTZZa8YnFRm9spJCoNkQLk7RTJEJauNcUhP6VSRemJIWRx\nxbrOSJu/vxplIJdpF1UHXaipGjhDjWoe/cpZCnHosN6ipQ+Wmok5qK/nLn+j\n0NIN9Dp+G3U6OK11YanpDBfOXSJFXS+Be3r/EdMnIwEJYYZ6W/rrrqWEDPML\nbWqFxJIatXWtY7Bo4IfygVD3r4fa0mqFTCJTE/f2Q/kM9SI/TtPEfkXXFJTv\n0BPACNK4W/GJRZ5V5/poU3gEbFtbedJM17RYRY1l8wu5C/sBMGg0/Zh7IEAp\n8vmswrctMLzU1lgy/SVHmP8usTBnJPMCTrUFZAsxX1ui9CM0jwQuDKgd1zwW\nD7cjpaPU/ngKqVFCuVrtKRABDfi/KYSlXYtJqz1Ii2Gwhpn7znUMk/Cs0blf\nweu6NW3NjbJdHiepDZBLv/hlCy+BAxkHc5CB6KexqWs7BgxZao2jY+xNtMha\nwWp8\r\n=mJ69\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFAoHelip/ntnMqhDsaDphVGbV+fmsT2nriK74314YkgIhANb5nQqA8YEy9deuTKves/3+s6gU985dQ9fIQUb1SAMC"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1560866824.0_1560866838420_0.15334921163855086"},"_hasShrinkwrap":false},"0.1.3-snapshot.1560870013.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1560870013.1","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-alpha.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.4","@scalecube/transport-browser":"^0.0.2-alpha.1","@scalecube/utils":"^0.0.2-alpha.0","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"f6f77d5e2ab1d754e288a9ceaf1f07090dff8bd9","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1560870013.1","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-fMBrnLAyuCdy3fNNin7+ivH/qrbOTIh56bZUVwwq89qxaQY60wtge4HWvQGFWLhLE8O4fKp7fin8cdkbh11NIg==","shasum":"f3e8084d6d29cb50d5e90c3e70182f5eaeae67b1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1560870013.1.tgz","fileCount":161,"unpackedSize":4479152,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCPyBCRA9TVsSAnZWagAAcUcQAIp7Csv45K/Ckuw5l/n8\nzu2aqzrTeWmZvPRhQjBzXVIJ0NtrrRP2vgbi9XMpmE9AvUBJbuBinzNzrZiJ\nmID/VEZxwEp/JGx1ri4Alut/5ohlx/l9BddYvHORFzBUiOUhqF4fizkdoRI8\nWw0yulj85UPwO51dj2KMXoL2Mg7ZCRx6+JFJ5WYaBZhELmcicsaaf4RQrVrD\n9kpGTouc2eBrUZrOww2/KfBQhlnFN9u6VDbqu6XQIiNGrfPOjFi31zdOHQjQ\noUqOgpIyUbZa8XSVfLW6LEmxEs4QGaEydBkIN5xCfv+l9ZWxttA9teo6oeuo\nOkMZnJgzB+R/HDrTsbdpIohxVVcZRAh76p2+mlzMpvCEApDVwBzSfC28ldbE\nfl7ojRThP4HHE4r3lVJyd8B7NH/+ItKPzqbc5MYP9LeUZCLUIlSiz4QPZrum\nFYxDhU32x/WI4tMFb80dcwe3DVQNBTvbuswEq4YCDJuon6y0H6HeArhO1bnc\nnITmvgiffaWy7WlROsA2cz2R6qM9ETVHSYcYAFCg3LtkOIcZBqGd2Bq+hlGt\nVGUz4mBZLkB+F6F2ZeXFxIJ2gSmE34NxoGoCrONx2NQsJIzUOtfjLW9HLKd7\nHdaCN64aOuBWY0TdnKDtKZnYBec7E3UeyeV0G/AswkhGpwnPgoXxiuY4uv7H\nwrk6\r\n=wfe9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLE9TiGvvUDrg4ig98qH9Z0nBei++6q3O2l/7mEVbKTQIgBgxmkaEOpOcHgMo/7LoKqph7Kaf+3T6DzDDLC9mHi1c="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1560870013.1_1560870016912_0.6208048016043788"},"_hasShrinkwrap":false},"0.1.3-snapshot.1561025291.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1561025291.2","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-alpha.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1561025291.2+071c650","@scalecube/transport-browser":"^0.0.2-alpha.1","@scalecube/utils":"^0.0.2-alpha.0","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"071c65074c75cf53bdca991ccd6a73e55f5e51d0","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1561025291.2","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-n4rhYpOIn0VQ47AqkHsGDBswqFY+xKHQL4RujCEW1AP2XykIKE/2nCUbUrv6kZygqVAtDIz20wY0iw1pWrJzZQ==","shasum":"06ec80f5ac993b1af2bd4d55e6c0119657ec7e18","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1561025291.2.tgz","fileCount":161,"unpackedSize":4479228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdC1sUCRA9TVsSAnZWagAAHOYP/iBKuJlQNijasUsSRyBD\nzanXlds/w9vfew0MGaCnfBw6dX9l3w8fZdz6k5fXHQ5r2kWhlhSed49ActcF\nC9BWjtDgJAPESSGAwCaw6Gnr7patmPQL+aE9kdPaQUdXFLVQogaj/PfZAIH6\n0HsnM69Df559EqTvllx3FX2BryL6WkmFzpqU/+gx8M1RxjRmUxAD6V/gCLyB\nkTEKqiqinq6c6xaK3OS2G5XZvdMwMhCWWuz8+qvatku2aaMIgZNHHP2yE2Jo\nbtatZccUsGKx/75QikJO0+AWMY6oqwmTozE/HnpoEk9ktXMp5GEhptrLycm9\nAknvvp6bm44u4K5y4pU6C97yW+iLfd6DFmKjfNs1E/lpV976/R5usvPt1OF9\nxQUQGNtqwpg2J/IgTYGaxdXgo/H1YnTePSnJOsR2E1RfBm0ZYAYWi9WCWvPL\nvgUvilChiDwOihi+PiLYyQ3L9vjNbbjdWpD2Go9gyYoRrZLVFP9FLZgU+aZ+\n7Qz14Ne23u5OdnZT8sMyVBjuBWUpoWz8Er8qsS1IgYIzbZVPvqLpqH3A+ESn\nzQj0N/9hSOyZlILhKEE04Dgg8XQZmlUk0IahAX2C/4E4ZV7R+3fjR+K2JLZC\n5SU8MHddxvaWV0jPe0SH+0/rXwcC1nVkibWFe3+8zDFXFB9M82eFys+txVdh\nwVqt\r\n=nRSB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDN5/rEgA33vQ3Et3VstIZ4z4IMADn3p4pWuae+XkILXwIgSu79UUsLXpjqcDAfPlWXETBJEp55yYMWAGIkbKmwqJ8="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1561025291.2_1561025299799_0.9808874503310916"},"_hasShrinkwrap":false},"0.1.3-alpha.20":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.20","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-alpha.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.5","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"08b41bd48cbe83e31c9074e9d92d1afeccf812e9","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.20","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-HuVu2Jdsq1b3NNjQ7dI5XjgQD3FWm4WeBrua1+JWgiHnpYPi2aPRF8wBKv4M3uBuRTdeEuW6nLAdDKN9+FYfsQ==","shasum":"d3b531c69787fe0817aa604605cf843fe34abf09","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.20.tgz","fileCount":161,"unpackedSize":4479127,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdC10hCRA9TVsSAnZWagAAtSoP/2Ea0vKIB+X8v30Vl0jB\nT5QrDoHA8V/HeTGMbYc/8eANUcRI5dGKAgrp2xogIcPJql2TsHMIykHW0gXo\n21ZRwiVlZJPDBpvuJSkzJkHVxck1kTPZWRs+RSBHcIfA4PlqvZk3GLwoaUpB\ninxp3uagp0TjOBhlbiETa+T5QSfskvR+T3b/MExAvhTLwAHRCrnR9PVLe53y\ndkjpYRd20xcJ4aLmZoBrSz38Ni0YyGnxcldhxVczq1bdaoD0VS5XYSPGkov2\nBeCQG7ecceJSpm46oexKkTorU7wypIWGch/AOPW0KeywFTmohJNvxm1tLBXy\nn7vPTbUUwHNPYmQfh9bGo6f4FcPMI52My2iz+dbGG8Mp1+o2ix+tAFOZsBEF\nJnr2VZ+NALE//MGXm/v9ygmc4+D5UuV74JpAXWipII+kyYxV2IQYu3bZOz5j\n7ZdCTnDZLubupbw2PyHwtqqTiWjAwcOIPZPLiQ9gwtHRN0l9odmXuUNmkjLs\nWm7Qy6PX3DlfqFFwunxFRTE21NHL93FXWg70expYUuuMfncNTjZr/7HhU4TA\nexSVw2tkUYW4D4oKK1q9qV5IoAMSCMqxPgYWH/YkJ2i5Hq7jckUVArWzobeH\nANlZGTGsE53B0/38dJCGi/5GQojzrJrE/fhqvWkb27oDlYT6TD0x38la/oy1\n2Trj\r\n=QocX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8el/cgdOcHUIfQa3Ie0pTDynIOfrauwRZP5snctpKXwIgARzcub5T7KhUBcCfh/njHnOEMQPBdX79IUbEI5io+80="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.20_1561025825234_0.8982056855252891"},"_hasShrinkwrap":false},"0.1.3-snapshot.1561539622.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1561539622.1","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-snapshot.1561539622.3+fc8d88e","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1561539622.1+fc8d88e","@scalecube/transport-browser":"^0.0.2-snapshot.1561539622.1+fc8d88e","@scalecube/utils":"^0.0.2-snapshot.1561539622.1+fc8d88e","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"fc8d88e1f6f7ce45cac2cf30c17b983cf74aa4d1","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1561539622.1","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-FfBZo4Vpk1e0tEX4W3ltOsXTHRSj5tygEAldlziHUXU+ZqUWsS440djLeh5V+m8VDo5vm7IHUUvgnCGGtx879g==","shasum":"3eec0c19fc17d50e78f5c09c3a252da0d596907e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1561539622.1.tgz","fileCount":3,"unpackedSize":15699,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEzQ4CRA9TVsSAnZWagAAo4cP/RsYnaxz9vK3thMDYB7V\nhSc3HtNjryd2UDBbB/EcZY2EGqy5CkLvhqYVnJiQwSSdASpEJPOj9DNEg2T9\n/5BHmQUNP5jcUyj0mFiv1q8JWUzHOHeOGif9YyJExM8G1X6cl9N//UPRrNvp\nHGqIHDcRjsiUPv1tmys57WZS6OF5lBNilJ0Yjf9S/zFHRERZ4OwYfflETSdL\nAVc90gxVSfZhzRUabnioPX82PRmqNZ1Zv26kLc1BZ/Cxs7MCnw4BE+2b+Ver\nmVMz+KmMCOis+aaHR97ORk/15m1fvPrQIjeHVSWpQGuIlCHUQug2lMTEIVzW\n9jydev+KPwuIFEADuDMvGDoJr2iwMGBfbxTlSyTTxnjKjQMP5+miExHeaIqW\nSdGUMO2+ugctjwsaflUUmOQJwcmpgcu9pTvNJmjivjOYBYsTGICnyJPtdq93\n0Ab9qLCC6fhy2a+UKZbdeLlYUjw7R5P+CM8YXLV7fF3faH6KyAOgHiDxjwpN\nIgIR3MLC4PYCThWAQde03+MVxX9mEUBKQpKEB4aN16o8vxCLcBcESnF988s5\nFnudjq99uLjgdozyef/8awGDSQqUlHDao+FLAWDImgsW38/25ra7pbhTR/8j\nhYQnAiVvT5ew5BdYjHgwCml2eyTXYQTsAUWCfcn7rqEekWWVzGVUzoirx3t2\nVnNG\r\n=3QkC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaQv2zxm34g6uMHZ/owvMSUpTwZhXAllXiTgJHRS7wHwIgTqbaLGk9lLb6eNlRnZai8URi6M1Vvv253TRmMK3GV9c="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1561539622.1_1561539640139_0.8862818366592087"},"_hasShrinkwrap":false},"0.1.3-snapshot.1561622060.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1561622060.2","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-alpha.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1561622060.2+f0491e1","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"f0491e1ac0d2c4cc56078c5ed9e55c2aa65462b0","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1561622060.2","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-mdyLra/FL+jMQEzOGL410R4L1YZO38YZmX/XMAynxhBiiI4v6AZx2Qr2gpsWDP4Ysgn7eESwYahXKo/ollxkdQ==","shasum":"f61513e892257d54b8aabee5cb3062886f7b99e4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1561622060.2.tgz","fileCount":3,"unpackedSize":15633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFHYyCRA9TVsSAnZWagAA/SAP/Rv1/8dykIQY+/QDoVjJ\nWLIM0uKGYAWaZsLH4VM7CS5n1kNwk0/g0ROkL6EOOlypxMwVAWq72geV8m3m\n3csWaTFO6yr5DPGI/y6gNDYzmibFZX9kHEh6C+rG+rO6Shc49n81KYOeQJsH\nADzbZVctddS+fpd/wrwG58IKXnMJTyVz5rDK/OqqtmcCmErt4Nw7eym+BXP/\nbQMJVmwj/n3lttz2oCwhtyiLSxDq7H5IYPMKg3qrXSl/hyFkuSHj3uN3lYzy\n55Xy+od5GfefcMMyWgtfzMAH+G2dhYb528kP7urpsNJyimZUtJ01wUIofLIq\nH0zJ1US5B95dukllWb/WTYNtOchLZB+TST4+Hif0YRW4WsGr3atCQ5oZFUEm\nxfT+Z2KfuElyqgL16gdC77R7bZghYYa17R2/92zlBqsrsWVQvJtqzV1EdCZu\nrrP21ysh5rhQ6aVdB81F64NncY9blfahOd+U4OF0Fuz++may0lvvEE2imSbt\nASLIXasIrS8UJnqV2qz4L4c/SOtgcNSABZ8ceS2ouF/bToaxBh2ms60uDTzt\nM/Hl5m+OqwUspNciOpSVsIF2sccTaUNvDYyP0Wza7GLpEkw+iqC9qwAueU1F\n2/eKC7+zmt9uY9rZqtfu1Drkd+P7AgfBr50N5PXopkc6LDSc8K42ROwOtdxa\n00uN\r\n=TSZL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDL+Ii46qlT9Hn402l7Naipy7ERR57hTejYF+pQIiyURAiAzRFRG7iGenxcfF/+d4yn7aXAM3g+S7DZ4/xuhHye5LQ=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1561622060.2_1561622065754_0.10392706827145859"},"_hasShrinkwrap":false},"0.1.3-snapshot.1561624639.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1561624639.3","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-alpha.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1561624639.3+9e7f44b","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"9e7f44b19cd9e7a3300228036aa283aa123baf9d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1561624639.3","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-htopSe1PjS3LxeJlhfp3tlBR3uG5Y2ji1qQGSRidri459iKO3AZNF9McgWLz9ruDGlp9/8B3sDLKNLowI5Yg4A==","shasum":"2f54483d69b6112ad8ac6fe5e74f35fa49f32ee9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1561624639.3.tgz","fileCount":3,"unpackedSize":15633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFIBFCRA9TVsSAnZWagAAb9cP/3PI2oIsOgDGXVa7+/3m\n4QrvSIO6mRtAFPbk5Ybo7UruSg3JxGNqiRPtIHMS8IRGZu8O4zUToslBVeeP\nkyrIe66V1KGt5DaqAGT0+1qA2Ens1IXhW/JZ51mo7SK6enErVY0PFhJPdUXZ\n9Dy+5bElE4Lkc+82dqvA3ImF+L1G9MaYggkvMRQUB6iFWz2N4ez8ViKww1Fl\nz+h/ZOJ60haC+ak/Z77y2Ys1+JGD+gQKwFq/KRpxeETEJ7MwPjkjL5E6YbvG\n3ZTEBogjJ+pkMouQQlgV0i6jY8dyfgn0daKIRQVebiR0eLkiC8D5QA1GSpDh\no3JkZ9zx1n6Fevq+HuSBngyB/GoZVYChmRuYZUem9SNM1O6UGQntPNRitjS9\nuaAMpxV7lDgXoieDYAO8EdrbTYkCuRRp/+I0smsjpywJVzk7le+9YUI1drj+\nzu+GEbZx3BRS3LeyLZ74BQG0e4E/jvSFARXSGKJ9MypGnX48/6ykq8ohJbJP\nmZsE7D6nY9zkjwUREJAXIcEp3HlDpMTmZzAoIPDbJSmKyEjROcX6Xk1Czx2o\nZUvq/wQn1eoegtP2h1ZGS2qYry79GTvleWQw5kY+g81hzS5zdVpbOQGjljsH\nFXYXrsCsmU9dbauhYn1JZG4yYKyk0givcBtkYeTFl/ltrquaiR+Fay+fUGUz\noIXy\r\n=QeGo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDH1ko/U4pFeSlP0B767xJsMSh9+Z+UOMoiuocNv2Cn6gIhAIA+9EEMv0HGCK2C2wUozMu0/niplQcMXqTMTfgGN6Ux"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1561624639.3_1561624645350_0.3088495263554327"},"_hasShrinkwrap":false},"0.1.3-snapshot.1561635962.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1561635962.4","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-snapshot.1561635962.6+1f0eeac","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1561635962.4+1f0eeac","@scalecube/transport-browser":"^0.0.2-snapshot.1561635962.4+1f0eeac","@scalecube/utils":"^0.0.2-snapshot.1561635962.4+1f0eeac","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"1f0eeac03a3298a22dd9fd303bae96d078f1e3b1","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1561635962.4","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-sw6UVUW0Iaf1LeShfxu3a6+tMH/2euxHYR/Zp6nEcki52eEOlfthvWt3JXUc1fp7pJ+R0XVGEaOJTXm6KQf/cw==","shasum":"664a3bd52cd047576a24edde7ec4da34745ec035","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1561635962.4.tgz","fileCount":3,"unpackedSize":15699,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFKyHCRA9TVsSAnZWagAA9QsQAJA4VBraf9blCeVs2MV6\nlbNsWFVDk4V5/s0MBMiz2ENtth4j+xDLFEDf9qBKnnZmzLR8+3MIsd4sNIsE\niNXJqWG+DdIdaSz0iOmPkN4jxa3mGMUqOAIHFgSIOUeyBczTKyjaNRWzS7lQ\nkRiP9TUuHjAffL5gj/2DgVvp02yjGH8A4szjqaH3VDMpMEVePKA+Zo2m5mfp\nh4JKgZH4POfy1s0T9D/k9RZ0VDLwQ4LIBhlGSbA50leARrxdOPU/06iVjU5c\nOOGHV4N5eXUyGr/lW5MMqz27yA7oekXFC/9XsYZwEC8m2QQPCJeyWmOx1mVy\nZ3VlIsnNgEX5pL4VmjpQR2b4HfZlM4uDwb5JVN28V657j15f3FlMMUIEO6cp\nyRmLgc6k3f6pxYo4OU2HI04KADz/KQ20g446y9y4zWYF+9eSeWd0C4iMu7dW\nIej8qKECO+Q1jLZiFx/tqGDCAKiT4s4an8gxzAqWTa7Oj9Z9Fo/QGAJyP7eg\nPhYYFI+la0XBG32PYqxupTEprLVgxNkxATvfoohnPWsi/Owsbgf8GB5zOi2s\nFGnf5rO91Ac8gfsjmQATG13fFhiVXOeEoB0ImubGcTIa3HJygwqV1a9lPYRr\nEceCo/ujs/A3/OpkBuxBwpe3ymQD8B0u6zpUMm5dU/TnXZ4CoUOBnNb91k5V\nueXd\r\n=LCK/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGDJRpbmdMvaBHG8BhWj5+GnbSkY+gS4Vj70ElB5Z0qaAiEAlAVvPyEYKvivwVUC0hH8drwzrlJs/cmjyng0sCpj/Ao="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1561635962.4_1561635975065_0.601013783298046"},"_hasShrinkwrap":false},"0.1.3-snapshot.1561880813.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1561880813.5","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-snapshot.1561880813.7+01085ba","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1561880813.5+01085ba","@scalecube/transport-browser":"^0.0.2-snapshot.1561880813.5+01085ba","@scalecube/utils":"^0.0.2-snapshot.1561880813.5+01085ba","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"01085bad92121b4dea407000bc6404ffe8cd0d62","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1561880813.5","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-egMQhZaP+sUTOZ6QAiSOTiu108bJbFiT0P9Wgi5F9OEzIgqk+UyT6UitmK4cfH01q3iVHCpEncR45n2tjug7dg==","shasum":"e1b9dc49a78dcd0a55a30b94d634fb1707157570","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1561880813.5.tgz","fileCount":79,"unpackedSize":81959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGGj9CRA9TVsSAnZWagAA/PwQAI/KlLoztrteOrKTtdQP\nPeVH3HP6dsF4UtWAia1VRDtwFgTSXPRS0QL1/a1wE1D1KjlnawV8mYvpc+wu\n6Og9fo39x6R+0cYjuIF3PlsyXBpRWsPjZNUud5/v+J6p7TSutj892AWst/A5\nphAE0QbDC343WDiXDVVm4kWGe7dJjzhvB5J/AM3LAZ/9voWy5uRmdUr5a8JK\nPTVO/fqQzGw4v6JOF9VDz4rhgvTMsORzOd8JtLb1NB+fXNj4CcPA9XLssQYX\n2Y3ARah/h/uIhy76BEns9N26oIx/RHE7/aQtRn2lFYbDHke6DnF/9hgFlNU4\n/jajGtCGbGjuvvRE5XV10I1JC0rFnpA+UVQEXEZngZbTLMPWwPvu+zceQxkm\n4m6/aX/S+Dsiou3g//rxOFPRVTzVjAexSdn8JKHKE0tU8BlL4KyU+pM3emRa\nW/kxlrUGYEHhIVHydQ4KCyRc0FGVw0lMZkObzze6xdXnUULJEhgVuB1ASRoD\noH2YIK/x19hauAsoAg5jqK4+HlfBd7Umgdw0NvV8FAygKOYKbF+1tWFod0fB\ngraDZ3eB2k3TeZFnp4ug41bvVLOhijJoJlF5hrJeFWMIp4ig+iFxkIhCopFY\nX94rAQcv5eE9qGjX0shiI6f+kDji/O9JG7Pf7PLi1Rcn4l6H8J/soEIJ9HQN\nSzuU\r\n=r7kp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD86Qwf/CPvhZmYuJMn1Pb9FKr0PwwSKg3Gjzx349ymjQIgMTH2GZd/p31IAidhhdn0rWmLNXAWAA3XAZpx4LWkf94="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1561880813.5_1561880828765_0.7447067070889015"},"_hasShrinkwrap":false},"0.1.3-snapshot.1561972738.6":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1561972738.6","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-snapshot.1561972738.8+7b64cc4","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-snapshot.1561972738.6+7b64cc4","@scalecube/transport-browser":"^0.0.2-snapshot.1561972738.6+7b64cc4","@scalecube/utils":"^0.0.2-snapshot.1561972738.6+7b64cc4","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"7b64cc4d86e794806f09a4188071e6ec20f1e6c0","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1561972738.6","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-IAQ4adzZ6/KX9HFZ/Qj1B5pr4VvkSP9EDrlaVqSjVXdIdeE8IOIEh+dhI6PYY72DS1LvSXrmtSC0mFLBTsEP1w==","shasum":"75fffb30a4f8b7506bc1da020448860f5dd40934","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1561972738.6.tgz","fileCount":79,"unpackedSize":81959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGdARCRA9TVsSAnZWagAAoysP/2+A8A3lrHyymvtr7T2s\n+1w1Y8t93xFsI/Iq1MLpAK3sN1AMDLcJOLtTf+oy2cPfzwNukqkmiCaSNSCO\nZyEqYM5NVTWvKn9BCANdam1QsDEDL9n10QS3picvntQH1IiL9u4us0JNkbuy\nAaRN/SPr/qPkKQN9jhAAI1D0JeTqKoTGz3WXa8o28k038jOV1+XC0IHcYmDO\nTVVcGgk+WUbCXrTysW2LqAIyh7jsmuwb1AuNeQZ72x7Fjupc/UkWkdnR0QEK\n7LT5MiMUsZPHSEqkCzoRpqOhbz27ixkQRtg5jTVk/Uo4o6rEoOaN5sZs3JcF\nZohtLoUEPAsP1tb5JOCbtrkQydYN17DckWmHZ7snqhttUo0aDqHRu1SBfRLF\nMyoZyb89ktpOAUM4GRdK2RLKKCcRkTXk38tDSTyRWYiQzxPqWP5aoXKzcUCH\nYUGUuMSpwYf6YoFTdzWn66fCCzGkpClfCkn2koHAFeDGLbFJhs36Fvoxxarh\n3kNgWQRWqrFQ+cCm9bNMm1I/zRF1vC6v7tIkqioqohwW6vyDVnw3GkCR0wq7\nTq6s3RXvNQeEBFTNtKPNEVdJE6Zyw+Gg1KZUavwL2I2V/+gaCUQMLqBGMD3E\nL+lJNGTLtyPKEuclJjj+JVL6ABLwuVPla1L4edC+zgzWqLaE9/zb4P5ezODU\nyfrS\r\n=ZNeb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGD+D4bAl8sZlFLdONykhkxaHRTH4g11A0KptmxOvt9oAiBqEt5Enjmdd7TKWJ8MDGNKz4f3TBZD2NNJBIPXxXRKoA=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1561972738.6_1561972752928_0.7466718731731132"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562058980.9":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562058980.9","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-alpha.5","@scalecube/transport-browser":"^0.0.2-snapshot.1562058980.9+b540dc8","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"b540dc814879aba62e191722a0f3e9ed7a0b54e6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562058980.9","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-Y3TEh1SxCXjoB5UnkMEhalpQBAtEwh8E9CM93kjhEkQjJlwfKf32JXAFRLIJLnphSNpmTk+qG7HH+B7tkNtoTg==","shasum":"7b8aa788dfd902eec3aa37db6a4106441ddfa619","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562058980.9.tgz","fileCount":161,"unpackedSize":4547383,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGyDtCRA9TVsSAnZWagAANrQP/0Ujz/EP+S7GVpvD51Sq\nlH8dWLMt2qfurDX8gyFvTvLt78tcIzfjQcV4S+dyifFTZpwOr43XCAVhIojk\nXNIAWEc0a1ABmL1kzzScC9LWCe6BfG6B8mBi6MCwOl5T02ZDx7nw3JPmaUAc\n4mBOLM/Ex+fKrkvxfXB8ctJBiAVfJCd8jk6QZ69S25Z/S53b1a99JbWsb5xK\nsRXfExyud7x/dnRtzQOEEMOa1Xk4pzPnoZKQVKAnS2asuaw8XxVwmMqi0Onp\nCQPEveaHKg6YYV6mRbpmL/lh9AtSkcA9ul6DpvF9+hFNjfr542RtfOp2DN1u\ns9VdvCjiiqUR2wJm6mhpj6raf43PWAfft0437FoKItwOc62lNOSxMyQ/MN+C\nuDIC6F8OxU5nuJ8ZQjZTDyj1ZzbtcoAHpmADjCKnzXwe9bRZtGKKCeFs3NLo\nsgKhvL5JhmGquqRVdNbrdDQKrFZd/JT1yPCfA6WCuT/xmTZCUsY+mwsO0fsT\niyTAGLV8CLBVPIJpd88iriTYZtjnys4aRlsUA82cIXc02DPSqDPu47t6u143\nYZVbvZA2QaxDBGldENbse+KMKYYh2jeDoDASYr9ibi3ks4mGDlml8f4ruYgn\nOXhnEPCCcL4PU8yjZ1/mIy683QlBlermL1guTlzdtj2FsbSKH0zEZR7sUPZB\nKnXG\r\n=cdd6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDR4Wo/25EXBrIXixYXSCSctI3rTUgxLtxYLbQIVTehVAIhAJesd+S3RlkL51xoiO/nb+I6zM3E/X7VFuy355lZAkoN"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562058980.9_1562058989135_0.9412374256164988"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562073196.10":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562073196.10","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1562073196.10+f11d4a7","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"f11d4a7bef9fa883cd6c7bc855e2a6309540c1d5","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562073196.10","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-rh+mxAfg7BDhraohlcjPpEXqODv07NCdI7K0h5BZxTEUDRmyRmIJHTN+FK9E4izffZfR52lMNIlixoka3kKfIA==","shasum":"c18cca810adde257a05feed7fd605edbe7ec1d6d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562073196.10.tgz","fileCount":161,"unpackedSize":4548531,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdG1h2CRA9TVsSAnZWagAADokP/RgijcffmrJ04CgOuGEh\nfUc817cgz8eTff0hC513Z8M4Sk14HaKofiF1HDVxq4EnEgmo2AoMqXpkfoRi\nfHR5jLYgd55wO/3hGBJE2QDlm7WMC3Pw0RD5ePGkON+zTJvkdYBtORboqE5Q\nUQSs/ZvuPws+X9xyYlADLXSc3n3X1erHmg8iEeJFp6L2NVtOiCzo104OdYe7\nGFxfc4GbPCdqGN8GTuicsyyz4JKi5Ay1oKyXSof3JJEu9Y1vFwPTcH5UOWXW\nY99dyUZdJtUnitI9ZCCBfuEmYJOskXpIYtIveTb689MPMrLKK8xjsH1cgLw2\ngZc9PyyD1eKQBEIDvRrHpdYsEtWHiMpNbWmyeg+omefslmpWCRj5GpI0pfUB\n0sLWSIrM/qMssW0/NKCLFe1MteTdw+lqMPuneuP+92iZd4Cqx1B4gm8Nu1QQ\nO8oZYJs1CYWecf918zbq7VBYWCCK1ULAOFQJx2xQ9MM6J31vnQzErpVYU6Nr\nW19Y/uBlggWBdl6zDEg3MM+oQ8j+ObJXU6fFN1nPkIuTwjoGR8ihXfrrq3qa\nZ4gOOxmn34us4yivg7hgKm6cst/T4+2Ng1ZIMTMWc2cYaPb8bij8KuDssMSH\np3cmoPFQhp6gejQgb7xwARqDEsgqgVm3En7atTWMbHoxex2vtXNIm/tB0RKh\nMzzl\r\n=UCZk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGpZ9FTWoDBonDyP091p4snMxPyRsO9s2Adc5khFsNZJAiAE054I44UYubodS/X6395z9JchUonwJF+Jdml1dfiD/A=="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562073196.10_1562073205837_0.29625624936973516"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562076916.11":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562076916.11","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1562076916.11+62f8be0","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"62f8be0d2eb3c737915e4c97e119821e281920d6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562076916.11","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-PO2bYLNGjGOORn99HraiHCYWAcTOrebu9xJ7j4LBmsQFstDEUOanUGzJf/GIFtYwQJPIv7YvnZP3n+ZNKDoZEg==","shasum":"3c2f837f9bfb187d52e3e9110f51aaa18862ffb0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562076916.11.tgz","fileCount":161,"unpackedSize":4548167,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdG2b7CRA9TVsSAnZWagAAC54P/15S9mvoLvuXcfYXI0Ct\nAmRA3yuTPweUPaZzg1fo6Pe1Co+9FXgWyC2D4NyE7RfYdN/UhU7Vaj8nThiO\nXmqRipnw6hip+aMY55EZmc0eoTf9/4qTNlEgVWhh+CTw5u/rxRjQlnaFHvTU\n1faxJBQNCRnmildbgcOdWBKtVh+Is9l4bXW+cUK77uiAaR68nVac1JQ6npC/\nYvN5iaC8r3iazePtoNwMY6IwvoHlH2DXQV1nUlkJ4z2xmJAgdLQqTY0qVsJM\n0cPgQeIn+r1sf4181jxCIPX+06vJwa1g6Qll6zljoFPgXlor9GYsnkDld8k6\n5L4aVwO/FOENeeGITKAtLK4e03w4/B7TcwTOo1APb/gmXULcWnXX8CqEvf92\nql6qgzsXKxtQP+dLpQsOvS9bZwwnTaKvj2TraMexp3vKDNQXQCOfKIuxGDFW\nJvt4HEk9vmxXJN6tsWojKwCEt4u2ZjqMRMJka8cYgsAs/B+tApi70tOYLZSj\nwj/tTpIHz7sNWXdpZr0rehufHizNnOavhBOEZb+v6eCKQ0zxITkNf0XGUNab\nnPX6oA8IOxgdjJYKOp6crx6wr6zpXsX3ttIPV/8AqwyFyulbqwn4In7O3I2N\nWhZWmBtoriTAnD5D2v4JAuRV8zs4X653PdJzFI3SkCEcHvOH+n4vQzUiMNit\n4kjF\r\n=xjSv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMf8SPnQUFAEsJuidOlQ/fKthzhSkGkG6SnBxrsd8RrgIgOO012d8b+CXn6RC2j5N39tkAmcN0PENXkSa7BruAsAU="}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562076916.11_1562076922940_0.7606034504886656"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562144775.12":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562144775.12","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1562144775.12+9d4f4d7","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"9d4f4d7e66507d8c60596ee8038457fe9b9bf64f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562144775.12","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-cr540MqF0HVEI+V6oY9WnqjMhqFAdbzbLc+Yh1TH4tBWSmIFODvPfzttEeURr8PVGRgTdEcliHtsMc501IWyaA==","shasum":"bbb74c0bc98ba533b2830e0bc5dec1f623b4e420","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562144775.12.tgz","fileCount":161,"unpackedSize":4552962,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHHAPCRA9TVsSAnZWagAAOPAP/jv7MAZZ+uPtJIzOOSye\nNqu9Ew0Dl0IBP39astRDO8eTcaOAy4Z2Ul4GM42zbdaKLPsNwXJLY44zyVkX\n4a1oilR7BnyMck4Ye7T0omGA5JpvaNWon3nJoPoS30/BYeJboJqv8yV8tSfG\n1gvcKnV4fjuBWUiN6usx98hYilcOskjNH2t8zsegi35+XNsp8fpin4cT5JKG\nmwy2LDUDW8yTCpyFNBSqDiexv5460EIibsqyKvLP1KzXxm3RJcX9etBXA6Qu\nYUsGv//o148Q3UHdYw0xOUpK79C2DQszo9FJHql5o/B+RcjFh/WRfyHTUFMs\nSN99g9tB3E6i98J7JmAHS5AUzzMUFqmbFgFwhj7l5GuZviWwIGOYg5Gz6FBq\nKWIjlBkfKXCVPD39BRr/a9dhyE7odX9uo9XKAD949dI9y/zYP61i2cTvs0/L\nLeW2aAvaMe8uUNmPL6C+gFhuk5WlTCmh2mn6qcp2WU20o/0+1Nzym7Hn+U8u\ntbhEHxyie9MHvwzRU13bZs0MwoUN9LltoiKNXI520A61fT8XZCWXR8YDuwxr\n85groaPrtH5QLGL4nMj/h3ZFH8vDhDjPX1RIyEmSl36N4OqQLoeVpSFi2A0U\n4fXR4fmSGjUFZUlDnaZBNQ83ioTQvsA4uPh4QWGjWQI2s9tUAABd4eRc8kEP\nntvA\r\n=v+5d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2HHwN0MU5dtolbfitAYsJGfJSOfrKaHHvMR+E+jqi/wIhANPRnWzm3v5UICZFpqMZHKYYHYMLIKt2kguo9bR+VJl4"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562144775.12_1562144783149_0.6535211714839166"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562224320.13":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562224320.13","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1562224320.13+2146b58","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"2146b589f1ae4ce96eefd9a3459d873780eff77b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562224320.13","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-zUEqBbeeNg89HHIA9W4ilmxLWHKWRWYkfaFyzi0YgohA59ezLyBFzBAGq7ecfFDUpzN8tzagW8HK+8hZtvQNHA==","shasum":"b90460fe50f13094527b083ff1c2b471dec63fa0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562224320.13.tgz","fileCount":161,"unpackedSize":4560284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHabJCRA9TVsSAnZWagAAJO8P/iOcs5XGPXieJFi8ow/y\ni9U+6yG2Woc7B4tL7eFSnqjQmlSg8X+wVRvNFVQae2xPz1JYN9NQMVoiaU3H\nbWW8iTUbitsWf1eumX4RcTESLb0x4JeD8+2Fdir15JkiHCna30rluo2o2smH\nG8fe5rq3HdXz6M38fw7GQ7cAdTS5mi1jarrVLFKIT6C2uqzST0sBJDWLKGsr\ntEd8uPAgVEAE7pEs0gSCIbs9UtnziPEkd+EhTl9D7yfW6KY8yJd+hz5RADvm\nfdQ1W9nsCP9bcMt6Z1m7hoSXu5XoPOM57xMTuaAGKQNIf/p9MZhN+2jtzGZy\nUm7c8B8A9YEK/3q3D9kxHe5vMqB4HbhjmcvMwKqkVtszV2DXvj+Qu5vu0Rly\n6qT7lrg4bm+1PZ6OmnOZEKkrWFEPTt20tSPOGfmJJ2TMHWM7Ei4lL5fic4v+\n+KfGWhEa7zdOXWDcftpcAcpf4F4P02kmff8us8YEQDFBzeFsCfB7ACAddw0Z\n8Ic55LWjCn4RQAxp7Uk4Sa1kxQDFcBEgHKRIZ0rxlI1+0IAHlETXNESjxJt5\nvHT7K6fCoPGRNoif6PRmGlhBpJQkoCM06q/Yglgikv4knYPHO6kIME/5iK1v\ngNla4ilNG+fO3zeNBnFP2nWneiyG8ckwdIsTnIjr87sxHES9DUEF5B5k/Md/\nnH8+\r\n=hYFz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGVJ+caK32M1ytWpgl2NBja2MfmVrS/Mv/vlWYivbT5gIhAMjD9QvBMmNxAf8b3K/1HeetAEQFFFmrrxYr2/uOjsoi"}]},"maintainers":[{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"idokatz","email":"ido@om2.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562224320.13_1562224328795_0.5986568832534591"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562230640.14":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562230640.14","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1562230640.14+9f394a1","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"9f394a187031bb25266466969ebb97cc168c1571","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562230640.14","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-2HUhRDc9QhxQzyuGem1B04a6ir2RUk2L52eplvuxYwbx1I2TBM+kWY36+0KRdnkYUUYctOzlwFcybVmdISwPrw==","shasum":"1360380945fd928d00336e1204040f1ab5af48ef","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562230640.14.tgz","fileCount":161,"unpackedSize":4567950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHb94CRA9TVsSAnZWagAAPNcP/2wYy+WFJdLv9EW2aM4l\nNKN/jzoqrPo8nWIg6A6/UdjYZhB10y0YPAjOWKONpKlxgENYbiQySfaOLv/0\nRxeakkSSulSxe+KcdHMQ3vl/3DAQMD+O5ZC7gQ1lZO5uoYYRP7GYhcwTHNTN\nPW1aP1je6efHnwSAoAdOe/MC3Og5S8dCf/IzYfDU3SCo5KnOutD9bOhuUri4\nbZmn8iW532K/WLx5Adjy3ZTqcu/X6M65hmx39vuTeUYlNBxoZ15ItswDK9cP\nZxyY64kc1vJlg2iRytRPKuXbbqZvaionPqY+88N/vwWCQ7ub3+UPC4dBNQ4U\nPHKxnpdVLINa1NO1Id6zV5oRnOHEl0AW4PB9biO9Gu2BRJ2PaIoZT7+JGUWN\nbFUQpyiB+srLEAAu8ZVwvgkdCmD6UxQCjzq6+9CVQZpgoC/36HgMrr7vaWbQ\nsl0S9BJyKicoRZfCWHLh5M1igwS3wQgg0EVarVs3eqz4iLeNJRmi7VVI+xO3\n7Zp4CsubFgsLSQqfbClOrDkEZQiKLwdGe8IGhnN28xxjcREieDKD46wjZlH+\nkTQl8EsmIMKNgi6IQnS1sVP1EsihvAcusy33p/zwWfMRXY2BiAGfTdqSI374\nUB7UeiJF6/1u6IuVawSNddkK7s3HhVpbwzHTcsfBiHD+ljd7PDr2Wx/sa35/\ncBrw\r\n=dI1+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTCF+j6Tdsx2Kd8uPz62T+1zrTzQiaBqk7NWhM8tfwFQIgDCX6Fp6QqLbxRCHCtrcAKfCzdByBAG5woyLX5J1vfMA="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562230640.14_1562230647802_0.31139337741689044"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562236272.16":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562236272.16","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-alpha.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.5","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"766499f429547c410eddea5ed8bcb81fb354df3a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562236272.16","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-d5bAHi1eSvP2v/KOcgFg3LUZNDwUFzyDI4LxRw0lvDSXbuPXmlVrSPGp6blUAYYMTHkzAlby6vjdwkSoeQKfFg==","shasum":"28fe046dd848a726389c7baf28254f62b449cac7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562236272.16.tgz","fileCount":165,"unpackedSize":4484145,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHdV0CRA9TVsSAnZWagAABEMP/jopTqJJpr1TZv+mdMqI\nZ1OzBcG56aB+nLx4v3VtOjrw3TocGadDO8yDoDHKk+tj6mSgUvAKDvm3FtRc\nEymThqej+sGRSS53eHX8al7nEybrKMtgGiVTc2VGPZ/qsvuaSxOWrR6jH/4k\nDrceSse7A1+a8lkefyKoPE4LMmcuhRJiQ7Hf95wnlDp3jCoz0nHNhOs5CZRJ\na3Awy/ZIl3b5nWpbjgPYWuUmt++e0XKWTrSmdxikNcvVver1eXaMvwXai5xw\nCIXQIMi0KuUQvUBCmQ05BCZXUj3JNongNXQ5wm+4lSiy3/lY4IGiHrajZh0E\n8p9TTGuqDf7PUrEAwMkI5aiKyxOQkNy2B0GtsyR4Xf7aedXef45ZoEh9tOAp\nksQWQCR1QzCV9mDSoYEPenhqP+fUpN/bZxNbhq6wjERrtXBNf1KVfrZi6Z6o\n0QXGTTwKs0R24RVWjr6kLKZmEsYQU8hp7vEziJ0eMA14oDH3y2RgLVL3V5RH\nF5GdvU+3bF8mp2w1lKcKyUqWjIUKIPsNv9tGFI6NjIosdE143vG4P6ZnbXj6\nYyAUdeM78+E2ePylaRU+9KF0x0A1eclKYTnwyXbtMVs9H4kKcNkjvtahdqSx\nLDRuFQD30ju4NVVDgNtSoTCt/2So1VMsL/Jty4Os9Bj64RSHVuISvpO0ufQK\nBFc8\r\n=HTT7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHPm5Or4UvmVpTM3jkKfOxx8CbhTRoM/UQT+vFW9zM0BAiA87jMRgsYxuuGz7GEoWFMYfTS294X/0yibT62VS0XZVA=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562236272.16_1562236276068_0.1282695333272088"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562237962.16":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562237962.16","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1562237962.16+7c29405","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"7c29405d0007d7abcb0e52ec1f6b7e8f4af11e12","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562237962.16","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-XlbSAtItcAuGZBaq4cPulR3R5X+ZPeGm2YrAglDdX0o0IGH3dabtuYaz0ZzGT1eE5dvNPd5rJjvfefp9REL/5A==","shasum":"4a5c7dbfe5d86ff01ff60c5b35879110a0d55902","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562237962.16.tgz","fileCount":161,"unpackedSize":4566285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHdwTCRA9TVsSAnZWagAA49EP/0VTO0Ib31cKyNDHqGMy\nUALWhk7+W+fLBhoK9kSaplg86NjBkY0NTKx5/BxQYHZ8k3C/P5TXgdyNxpsq\nZJ7v6Ip1lmlyyweGD/ssD/2u37CV02sm0/TqLesrmnqKbCR8JBTJtXQp1/85\nTKlosqDNyiQMBuJDfCzu/Zo5Pspabf1IgdTJR0EgB1oRuBPcs3GpIups2sNP\nyZhcRtLlhBqP321qu/x/vY5F/WBHdHkB2yCIxpA2EMeDEOGxn/l++I6+YzxD\nvVFqhAvhKj27rFxQDhyurg7q/8vje5nUDB9PDcS5wquaWkspHqbDWGIRYxum\nQGTu7iC29YT/vhFA21pZijPv5h1cTy9sndraHVsYeYFTH14XFqIbJ/ewfOiM\njhRzcPNM8bAslb/blwKRAvAmExLj7jh1umHQeNfLJ2QRIZVII04Oq5hTUGmD\n8c4Jz6e302o+P+9M0Siwb5ikcLe/MU/azYLAMkVddc1JzcftcUYCbY5N3mxc\novi9lAyBF/ngHEz/uB1POh7yFHxnsJZ96JPDJeScJu9qJbQW64HA72BVz3P+\nmWrSqei0/Y/1R7Mn3sfk1pBB3pf8ERvSAseGM+R1DRobQAbDXf5yP6TkiZwC\ngX5RDpzxN5vubCPUSIMpflcGDtBiBJXQd9GdVgOduJwGZPOYBkoM/SJZ5DdM\nMUPf\r\n=YRr/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFVxKWq/snatLsWY5uh3GvaX1Pf0z3hNNThjWtmgxhz2AiEAymfIlyAybODBtWuPhflUJnTWqhG43Y1aMR4ueSvjIxM="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562237962.16_1562237971161_0.49961958913890414"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562239058.19":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562239058.19","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env && yarn test-node-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-alpha.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.1-alpha.5","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"95678ec94d7b36ad76d34d677444ac2f3c38ac03","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562239058.19","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-YXUHmzF5Q9h4tGzUyCgXf3Vl4Q5H5n07e3/DIycCeOfdLNyU+Yk0XOSfC+V6NFEChE2cy0d+/aRlZWbHpK6wig==","shasum":"2410baef3cd4a8aa008e597444216c2ce3762b17","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562239058.19.tgz","fileCount":165,"unpackedSize":4484121,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHeBWCRA9TVsSAnZWagAAYZQQAIMeNtHTRPQ8HnPn/+yU\nurNy11I/XUZ3wCUcdYEVG75j8tyspXBVy3iz5vNYc6mu/ztAs1KEYB0pkWjl\nRhTYjaoX7M96+wUfyYhMGYXV9YoDbwP3ECJImmFKU64+3h+Adk/e7HfEUlyN\n0yYRfKXv5J6B8G8bo6vajcB8p3kWLj6Q2+1HhXk1mH+r9WHbOfRF7pVHPfJK\neE2ybNZniEgyYge2E/ualdG2YiW66Ih54KfigY9XF9O6sitwdwDmEAoOdzwv\ndjmW2Gw+EmDOk5AVdpfBthxkd7soy5Uu4m391rCxluPrOx9LdVL31tH/ju64\nrMNPgfCU8TjqrjPI4hOrCq/xZGYr6JUJYkNOErYPscHdqGi0f7vkrIpVISpu\nLeKAFr7mLAOxopcdz2UtFcATsDCv5qaiEHm4nT14NnJnqBgeDRpba0XrzKe9\nRBq8yH1wrwyyHt4IelVx8rBDFDh2KilyakmOmTggcHo1F8bxLWLsMT86pEkM\nOsjS0ebGLXyxWTy0WtULqrftm9xD8ncf/co8fAiDsQPujI0JVY0MEikIFzkZ\nwo/X1c0WbifvaZbkPml08NJj8EjoYGGgWPc2TdRhxM34XqLw6TaPgSAvQIIZ\n1s+P/NNPC/M2t3fUXWHfA3wuZqB0uvxOmi8lF0fy88Q+fn7QesL0iEDB4C7v\n+6S6\r\n=7lyn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiqS9SdOvftS1TyLZcMi+ruUcLdR8iFe/NFsfD65Ir9wIgOccLud6V9xxnV/ku9e3ewbDALRyt2Tv+DHTwibgzWus="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562239058.19_1562239061670_0.40669378650848875"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562249015.20":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562249015.20","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.2-alpha.1","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"0.1.1-alpha.4","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"22ef8c0cc79f0e5f852fdae1e03b5b78b69d0a24","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }]\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({});\n\n// example of resolving the proxy only when the service is available\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n\n// example of resolving the proxy immediately\n// in this time we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562249015.20","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-179ZQVWPWW5d/CEHjwnJnR8VCeLvOYiCynOXxLDT/dhsL/dkdQfWLNF+aT4Ue576xvXSMKANTJNk8UmcaGusJQ==","shasum":"a9dc01b1b630f6bad3cff49741657634dcc4d072","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562249015.20.tgz","fileCount":165,"unpackedSize":4448945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHgc8CRA9TVsSAnZWagAA8LIP/2U7PUFOUaDPzwxswXSO\n3VIpFPGXJA0vBUZj5L2c3WFpSrXHNUO2eTiHTocg2oMmzIR88pvhsXaUgGC+\nT+Wils0RqPkYMiybIYFPcBvpbksAeaeKcQFqWJ0bhO1qHnYoGg8JQ3VNXvJP\netASwVEYIKsdbuwiafGsQNJMtavl+/OicewXXIyM0RYXSAv5W219OQz3I+cg\nQTufmP81EoVn5AKhM6HvroWLPY7R/OJ9TWv7g9P/cDLInGEHzUqh5+XVdu80\nB2hWapW4BqNjajxOBfvHrL+gIEUwOsfhMagL6UNgcEAKGlNR92ZwqXOcYRZw\nYFGT2eUlC10+JZcZTtiFZ9LOD5aT9zUBgl6hvFzjuVgjU606rkUNlmelGe4c\ncymVApwXGYiTT13EN4n4ZkX2rEucBarvjihBMZAr0fZ+wZbYI+Z9z68ciBoF\ndPIkVSWThQO4xjzjEQSGSHOfoGo3/i/+p20SrhS/UOoqFhc4isH3umWbh2kQ\n0CMzboqgLv/V+4Zz4fBeXdTiL1RY0cNdXQQIKT8ILu8SkMmi5t851MkBAwh+\nr08QftH7MAsh7+N01MHOn4x5jftoHJ8wXzeReKJLvknrkyBUKzTC36EWKOwe\nLIkyk7d1YEh23uYYTs78YHpKX/NtGjD8zKK5atVFoCmFO8Is/NOI+qOKLzFX\non3V\r\n=RHiM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQZco0hpNgsPGrYmi8nZqL3pPgHtwiKNqowheq21zKzwIgPC+hk2167UwxVFs9PQun5G6MOfztGKwQy5+jU3HXZdk="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562249015.20_1562249019303_0.8286292071405368"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562254187.18":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562254187.18","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1562254187.18+d024806","@scalecube/transport-browser":"^0.0.2-alpha.2","@scalecube/utils":"^0.0.2-alpha.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"d024806c8eae509e830fd7dcb6863adab0bd8636","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562254187.18","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-NU7I6IV13Ij3bfiE3ysw+NJZI4COILf6N7g2cSKGHDVvNb4F+3qReY79ugeuTFhgtfyTzlbGbF2Kw9NO4flg+A==","shasum":"1ed7ba7964356901d07471ff3414687bbd4d01cc","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562254187.18.tgz","fileCount":161,"unpackedSize":4569011,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHhtzCRA9TVsSAnZWagAA/zQQAJSdRWUuWAk9XHSgfqYa\nZeh0YLpWhCE5sUJgOfktlzKJlguO4B7h4W8Fo7SnYXRK1xn0oa1mOQwOkp0u\npBNj4tT3bGR8xgvF4pYMrh8+lXRwYgSoabKjkZMo07cCN48XSMPdqAn85+bI\ngrhMiSMUZfVqzc9XIHYy65CDGr5bKF8cJogbwrpjapKgmMMBWhfz6/RvIavm\nhmY6nVMYttI5VCBGFgpjz13mrrUuRGBXNHbgC/bu1o1qQOyOmUIIxCObIyrS\nHczlSZK2cci/jonirqGwUrliHZF/1G3MXnXUlSgcQ6CAG+1bhu55SM6mrGgd\nWHCFgXL8jXH8S+uW+W9ELhR6J46QYRoumFLnAOurSXBj53rRmaExl8sXqVK3\na5/3h2skk9O74OOnpIj1YKrUBht+cH5kQlwjTEcqSR0HkKq8q5BCnaZEjclk\nOYMQgdz+7r/O7AtIoXZjg58Ky0DkuJe//9D/6iO49eAme3LmJDsNaQJeQRhK\nRGBkPyi0pdx1Sh1T9Pn9F0uG6+4IOZC+XZ7y41tQHndxGikzXIFSyqt3M4b5\nYF5VTzKfWw5e/uO7aJsvE3evop84JeQX6m6cSQWu+UtVMkPcdKBok1SHhKsz\nlUzkQ0fEX4VCISkbp61OOyJsXKXy1Ryc2CBtOWGnTaqUMj0608dva38710FO\nAYw0\r\n=vtc9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICHVCnTcn4XFPyZJ8LhHa12MKLN4tgDMNxSUeWUObKcVAiEAkPMYViy5hjNgnSMYDf9F173auAMb/yG20CRdSG+M4PE="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562254187.18_1562254194700_0.2915535167145842"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562564268.21":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562564268.21","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1562564268.21+6de51a5","@scalecube/transport-browser":"^0.0.2-snapshot.1562564268.21+6de51a5","@scalecube/utils":"^0.0.2-snapshot.1562564268.21+6de51a5","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"6de51a51a0ef8018e04644e2cf5750f9baab42cc","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562564268.21","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-VxSPfT6VEnxMWU01RgQSduDyP1qbeI9HT9QX8GP0d1Xt7Pi0Y0RuY9Ml9ayADVYI8w1arFgdJbIqypBWxt3zFA==","shasum":"5533fa4eb3ab1256cb320a3a92c9311d254d9bd4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562564268.21.tgz","fileCount":161,"unpackedSize":4569047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdIta7CRA9TVsSAnZWagAAOlsP/A7ZnjMhNAoXG3/qVvM+\nYe0XNsI7rmKbcv5HprmJnYVMRWEubhFJvBQfjiEaV5RrECif+P4meNsl2USQ\n3dUbg0yLzyuyT+PeR73s5s/R+s/3kD2alTFOoPCPKf6Rq2vIgTPk6/9Ey720\nDKWcOkbcdPQzvRaYuPRgBDJNndjnqhwINVTHwaGjrH3gmIkuYOnZcqWyMk7s\nImwVvI0tVgHGrODbElw51/VUNxox1G45e1LFogsZepO5V1uqt1B4CpD2cP8P\njZF9aoCRy0O4qgi60vjc+V1K5nzKg8cfHsh5BWiCID2kHpRMz5hP8jHee7yC\n7wZc5KC2CrgN+o+KKXq++OLbb64n4GIA6q8fnCkLsxVwkUvS1qWVCA0WYrBt\nT0G2KDSHjYfPv4X5aODUdFk2RPev/LwIts8kqJbGhQsjhNXzXubTKUyw97R7\nh6iAStwt8uw5fCuc96ou/DDKCEibkpfeUIzQId3JMJ6Vhy61S06YvRXSNJBC\nWQohZLnSN5W0ZdBuEt3+rnbD0Hs3nzgRIRm6buDeqWi/Xg7ibnrznByMOyU7\n6h78BxaMkLYST71sEHflmVuOJH6GnIPoLwJvNaZBZY4iBhF2/Oo/RSyPFEsF\n3hUh+WD7sOdeVBPHITegcO+LeMXTXk50tIIEZYexaSJoaMa5GM/qeqTrc1Z9\nbtlS\r\n=MhdO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHkm2PQ1/o3BNNztrM+/1qVP86sXFjZyjpMA7esBWq9GAiAufCHkjWPNHBUTSZeIOVcNbUrntenIlmnHOz2/aO8IqA=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562564268.21_1562564283040_0.394845347741148"},"_hasShrinkwrap":false},"0.1.3-alpha.21":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.21","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.6","@scalecube/transport-browser":"^0.0.2-alpha.3","@scalecube/utils":"^0.0.2-alpha.2","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"918404795f587340814c7edd45e442d4a4814227","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.21","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-MTIA+/d5LVd6Hfmpn/KT6LQPcP8xNL/CeWvUt+BZ9tiEisUZA7WX1NR1V2A9tOS6Qb7XUpV+qks3+VrJymSAWg==","shasum":"ba4387c8e0d54c871eadf55134f038498779b90f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.21.tgz","fileCount":161,"unpackedSize":4568968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdI1MsCRA9TVsSAnZWagAAcyAP/iCjclHFc7OaKAevbIUS\n9mWPAyRMYOLz99LS7WRCVUVw9t8EIU5IdR9WRDwqJuIL/ZUi2mXwBQSVkk+B\na6lL1Kv2GHDYWHYTrsK8aeTYsxJ2YGNEN1qqd+hWSvgZfxrYtZcscEK6WEU9\nMrnuaNSJ3+JnhOt2Wcxs90zG0Wgb6Q0OBY60pePEnzUNrFvOcsQoQkVJRaa8\n1EPws1UnWbcFeOJ78AEHY9eiChPz0Y/Unpz38OaCR1LYT0jj+RdYtvuMZtu7\nSyTyJuSXaQD0D/n+txe1iJkZf4757Wz8fL3gtl0abGx5GiVAJNCwdEQzX34R\nL60rR0MGcOnddq20675XV8vq+R4OwymHvwB0/XmomO9Uy/vr/sww9+4xLxTR\n8fqPMdffElMQMZLT8gXZpw4vO+V/4oGPgIjMu33GxJ3U/kfDTWXryf19vG7x\naHBlhuvy1EWMRKAiCF7RmNJ9iwwWYzMtRqM+3tk0Av8WizyyHzwUGXzB7Aij\noj8gYGVJxVUugAFLMy0k6VvWIxtsDV2hr0/RjTcG8MR4Ib72U9c6NTOXLEkY\nYSGxk+GuLOLQ3WfGno9Ja1YRQOjdZ4yRddr+WiuSq1xN4NE/QwffV+YDo5eu\n+rUY9Wc1mvxMz+0CYDEGiDuhI3nBsfI2tz7/Yupb+4tryR35P575KnEvs9o9\nmAg0\r\n=Ue/t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGu+SQf1ofMQlLJ7F186OvL4emC8OLtKml9smcmRmojeAiBlavCAF8UG3cgHLqsyUa06pQYn6Xpwn8yhiKCXoS3Fsg=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.21_1562596139203_0.5231190153656364"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562656733.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562656733.2","private":false,"main":"lib/index.js","unpkg":"dist-min/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist && rimraf dist-min","build":"rimraf .cache && npm-run-all build:commonJS build:es build:umd build:umd-min","build:commonJS":"rimraf lib && tsc --module commonjs --target es5 --outDir lib","build:es":"rimraf es && tsc --module esnext --target es5 --outDir es","build:umd":"rimraf dist && parcel build src/index.ts --no-minify  --out-dir dist dist --global sc","build:umd-min":"rimraf dist-min && parcel build src/index.ts --out-dir dist-min dist --global sc","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","parcel-bundler":"^1.12.3","parcel-plugin-bundle-visualiser":"^1.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1562656733.4+8c82a9d","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1562656733.2+8c82a9d","@scalecube/transport-browser":"^0.0.2-snapshot.1562656733.2+8c82a9d","@scalecube/utils":"^0.0.2-snapshot.1562656733.2+8c82a9d","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"8c82a9d81b7ed5af3aa83fa6e77b9d5eb188e728","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562656733.2","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-KVDpuxSWeux4pI+INYXJTS+inlSKddskiOew8eZNqzbVbfdf/EG4b9McT0ZIM33Je+5k+K4e/HNTMQYj1toTJw==","shasum":"226a0ade1f79e84e96803c6e2268e07b7318a32c","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562656733.2.tgz","fileCount":77,"unpackedSize":4524472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJD/uCRA9TVsSAnZWagAArNwP/0JZ6vr7uEtkN4e9p4uV\n+t3g6ajxl/uUf+SMh+ds4p8cU+M3jYVvsLhCoPxexAptgVqSvea1X087C4Ki\nYZeNC+uLp6RcgS1AirSZGQHoKzJ8P44SsC/lA75PyOzhOzxEbnJEklFLBnAl\nlqwEXtCEmw7lcvfJVBh5hkylPpj0PumJa5bPl0d7WcaVbj/EZaxSqQic44rp\nyHVju023mKEEW+sb696/5sOxNhtuA3xS6hBKALCBrSc02FeNWBX9EOacPDso\nHZZrsb6gdFjr6RMdhtUbFzE9nNQ81JNEOe3njd4zvcHYNJ26PVOfCcn3q5qY\nBpVluMSrFjxdIezaHB0TSWWhieNycqlYMPbewG9PYNkiJk0x/SKPCvJJIuXg\n9Kiw7ANK9CID/sv4Ah3oth49bQa1ADxcXGoC0fdkxhF1Ju/yaqWyCkXH9dOO\ncMbc7Od9jP23FhGhJLXEiKTczLamT1WchqUqUWy293/hVwsBwIXwmcyzw9da\ntvt4DgjJBvOkXzv9HN6VnoJjYJBLhYsew06iHFu9WFb8flM0bqItqHaCUl1D\nCqNEuNJwUsHHTm4/rgk3LdY+AgetVycUu9GODDkdal+UhjQkn7xG1FOK6z6p\ntsdA9jZI1iRXcYBqPPXWHHNZ5/+OLH36Usx3+5RalL23LN+0GrmYuQ/vlWzp\nTSTm\r\n=KVTp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFfxWLiyOSviwq0LTok8HofWLtvySEx5DdDS0UK202vhAiAYTu0VNKRi8UWzUqh+inViVoTlGlP5VMLy04PYeGoxAA=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562656733.2_1562656749374_0.2688800401686622"},"_hasShrinkwrap":false},"0.1.3-alpha.22":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.22","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:libs","build:dist":"rimraf dist  && rollup -c rollup.dist.config.js","build:libs":"rimraf lib && rimraf es && rollup -c rollup.libs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'","doc":"typedoc ./src/api --out ./doc --mode file --name 'Scalecube Microservice' --hideGenerator --readme ./README.md"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.6","@scalecube/transport-browser":"^0.0.2-alpha.3","@scalecube/utils":"^0.0.2-alpha.2","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"8c90eee992a26fb7602b04172fee5bccf6f3878d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\nMicroservices.create({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { Microservices } from '@scalecube/scalecube-microservice';\n\nconst microservice = Microservices.create({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.22","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-hEyoLLH6sacoKAZfwZ9PPUQHOHT1d/lMENFGd8m+shCiLevvHEgxJFRzy2wQaly/esYlfdARnJkVyNXTp0PJyw==","shasum":"cff9ee613b88c5b1ea7265ded9f41ddf4a10f07e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.22.tgz","fileCount":120,"unpackedSize":965577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJJKQCRA9TVsSAnZWagAAvFwP/0++urAHS5J7IwDGEj+R\nb78lzkgySluvgEhNBRGJpA4lLENCudkoa8lfgsyuLhpR5TQvqQCZJV2xdScZ\nhUOYgYUvqMp0ZAn8aNBvoGCTjcIuqqKNvbLPpTYUgnbGrVFoPWIMyF9/SZQ2\nKM98OsD+tLVSpN/75/ys+AyTmS49btr3G6YWIZRarVAxqa1GuiIhnc0rBPs3\nt4zZBLQQZ3uD9xCDN+i/ZYEn8IeJV+kj8wOWPFyz3zA3FUMr7ewJ87aEOp7s\nNfXifkRq8VeU/yul5bASY8QKcQWJrsHy+DVTkiJMNiA7mQNypxSFUaDZzyyb\nTdlmYPjW+jq2qEyApA6z4j2r5VweRHtURLChuILyh1iBi4HMWfvPoSIUKku9\nTbN9IshwFJir0H+f3SY8rGYfE35Q0adziKBxKC69JxQjubmM5xyQQ4EOzNC8\nAUKd+xRdUmBHIP9cGnkwGUe5AQibOw2jjQMm/DiEU+2FG0Z3imcSjcYFXNvQ\nC9swCt2Fem2F+eU/r5wuxnFCyw/QxccRRga6yBkv7BGHvBCuKbqpxd74w1RS\nrPp/WaA7B6KGsEaDqJ105wYhZjCVmpM2dbd8bIhY42ATNbA23FNJkr5tplPG\nzQuJVIa26eoAFnm+wFstOY5m6zcwjDEdlBT0czRBT2XOVwTC1rm+/If+Egsb\nz7HI\r\n=G2qW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTTOpVwnZ2TOc/dJZlJeu6CIK5wkyhEjV+hLI+I6fQLQIgT4jlFMGQtI4BnfXIkpyl9N6/OaxsydMr+a/5r8NnEss="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.22_1562677903882_0.029859780802870883"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562705091.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562705091.4","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:libs","build:dist":"rimraf dist  && rollup -c rollup.dist.config.js","build:libs":"rimraf lib && rimraf es && rollup -c rollup.libs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.6","@scalecube/transport-browser":"^0.0.2-alpha.3","@scalecube/utils":"^0.0.2-alpha.2","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"991afd45844a484de05dcddb70a0779da87a53ef","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562705091.4","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-PrjylP2o1oCz1Ux7CLWxWpzm3tkazFyGl1wkED8rm8uDEpkId4TkcuUK1giuJ376nZuw5q/PwpYcTI9SUeKTuA==","shasum":"4d3f3a4d287af6d9363b95bd9f8683433fab2705","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562705091.4.tgz","fileCount":57,"unpackedSize":933009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJPzGCRA9TVsSAnZWagAA28MP/jYIJazHyJylqR7RznND\n7HaaO8aCVMPjnNikvaeazgZ26huuJIjhfkTl+yG5kZc3n7ikyw11RzlQ7VXW\nqzvzhewur+reSlZX0q6VmvQmOTooreSU7E1RLdOsAS3r15x+WIm9xCXDGhgl\ndAIYrViGS65DW657s0N6U/iGK4lzjbb9/92GM0t5YLK++6AUhPM9KwlN4O5h\ngiSx7guE0iSK9oa84FeviytIJOIcKjV++8/mboXDIAYjz2LgbQOReuvJ6GbO\nE/ydpL1UbGXJGGVaMnRkL6N/53H67dzHlMh8Wed9L73NZqL8KlV5K9z3zKY+\nqfHJw9PolZ6v2iWKmA/RVzE/fmtb/JYhlS23c16v8J09SjbdrTRXueJ/n2M3\nmb2f1oNGKMgnLX2PIzRvgSIRqvvrKT1mZgbuA/cg4XaOvMbPb59eQPKjc8fa\nZRFSFhBPptA5lxCVMiODNmHb9GE434wD+2YbvPQWa4DioB5YMYH7bTGQZgM+\nmuzkNQhz4F31wlbDWOt8v77aTHU4GiNNOWbAXRivLycC6J/J0LmWbWdqc4yb\ngg5PoHH8mczDsUaaQXMWMi7J4UJ7dfNDrim/hGupjcd01d9XLqep0BTMW67+\nCNZVgUEFS7Pf01S62ElevYBR888PyTbnoWqNaycOMdk+//+/wEZXwGtacA9r\n7bp4\r\n=ZizH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDf3ogwT0yOlHDU5L1gOBqTWTVsZ9rb7VEgNthIJnJVBgIhAKsBXg+Og7aH7h/GwkshPG1VGTJ8C0DM7ZUxU8+zeRV7"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562705091.4_1562705093887_0.8040091969131711"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562751548.7":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562751548.7","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:libs","build:dist":"rimraf dist  && rollup -c rollup.dist.config.js","build:libs":"rimraf lib && rimraf es && rollup -c rollup.libs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1562751548.9+1a7466e","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1562751548.7+1a7466e","@scalecube/transport-browser":"^0.0.2-snapshot.1562751548.7+1a7466e","@scalecube/utils":"^0.0.2-snapshot.1562751548.7+1a7466e","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"1a7466e7797dcdd577a8966d616f6613a28bc2ef","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562751548.7","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-kGdqj5dlD97hCDK9tnBdq/NwiAaF3qVGD6QJhNDHmDUpIfBIt6x1NKUgZeC8WDi4gaTcOmgBhe/4ldIr8b74Lw==","shasum":"d395188fe4fc7c3fe6de384d11885703207f802a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562751548.7.tgz","fileCount":57,"unpackedSize":933097,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJbJPCRA9TVsSAnZWagAAK1kP/jmh/3H1m1BfMjaNTAVP\nX9P5XOx+wg6CXsvvtJr4fAhxHPsVekSVlYT9kLfzInxbWwuOzRmUR21ecFsD\npybSbC5XWpF9HUpRBH2GFdAQoP0/8bJ1bts/R+QrGcP70GJQZFs9flgQxrAf\nTLgmJMUafua3W7z1a+2ZA+1MKwXHwxfbKUCczieJxvR4NzdtphyM0+uaeLvJ\nj94yaeaKywZgry7HHEOqLV+C9kNgxQ+ADDBY2eANgNM0j3KKQTUOUEynCNMa\nL4CA6uiRCXZJ+a7da7W7CBuIgmHmgWZONb5Y3QThwPDEVjdZt1TtJnEVHbDy\n6udxdD+gt7SfjgUElMlYjPD5JxvW3r4cdE9U2nYw0cldyRKHJsXWBQkhfNAJ\n9pJkHRSPPph+LjeJugW6Zwll279k2En63x3jSpDODPbVJTj8TtZcVi+MdOU7\ncICXImJawIm3ZlpRRoa+HALd0VoYZSM+IncOXxYwFXXbM2hSt+Ra93E7UxMs\nbp2Dgc03sBttOevbLBYkXqUKeNMBQmfYgWCTotXDsXKrUTW87z6nVUgMY3X1\nsO7xL/kzMGgotwVrQsUugvLGCgzbuYvUbevTqvUuNO2NmvknPoA97siuph78\nKTzerSam37bxY8Zk7OMddgYc9RssXufEGiFzAJYlDWgfmgwryx44UevsJPfC\nQB1X\r\n=QKk8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCA+cDEbEfSFOPbpQH0go17F4sdwERKdZfuhGlQutlEkQIhAPPj+APAb73Sm4hjF91yyb4hMS6JQyTup+04nie8jz7v"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562751548.7_1562751567161_0.4915548341640459"},"_hasShrinkwrap":false},"0.1.3-alpha.23":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.23","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:libs","build:dist":"rimraf dist  && rollup -c rollup.dist.config.js","build:libs":"rimraf lib && rimraf es && rollup -c rollup.libs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typedoc":"^0.14.2","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.3","@scalecube/scalecube-discovery":"^0.1.1-alpha.7","@scalecube/transport-browser":"^0.0.2-alpha.4","@scalecube/utils":"^0.0.2-alpha.3","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"1fef1bc7bdaf32cf3c78513629e56e5e81fc5f26","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.23","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-WSwgfgfH7Ai4SS551QT2oZOpYTNytVNtye0qriacgFeuw25fRkWXSaM9oSlFidGN1Oqh5jWi/F7K4lSBm+cOkw==","shasum":"7295698b148938c52fc54d41174bbeac7511f3c1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.23.tgz","fileCount":57,"unpackedSize":932988,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJer3CRA9TVsSAnZWagAAfW8P/1LI84IL2dxFnrBtyFSa\n9oYh1bF7AlKEu23evcEKlkorL4JBSX1K+d0cwwxv7apaAscTGdWUg3if//iS\nwqySEX7KExE/4lHQ/v3cIzDihFGJ/CfQoIIdXF7U8Zx7l8tyI+F/bRjrQehT\nY6GBqG+q4gwKJZ5QkBAyCTfKoTroLT3sfufYbMXYIgot3gO9+ApoariAyAp7\nDZVfQKywy6BYhQBNKKuwIPO1zEIL2McqcAzjqUD5XDSQDGwT90VBfp8kvaPd\nEJChbSWSipqtoxuBbkJvEJ5QSvpalNhLgamxltDn4DquF2QGeCZ7SBaRUszz\nnTGiXhj92YbfDk9iSeqqV9yl7Gl2e3TOfGu6ws6frEyq1kntbFQtbZmWXclb\ntg1Rc4Y1n1lrS+s9qrja7lUUKSSGo36YBWaR85uZnRYk612PZBWVi9+yrtEV\n/g0T9o2GN547EbPo90X+5habbNaI/E7r89n4zrrmq21E7wzFqUI4ubFA08vX\nqCtdatwi5SFYyEUYz6/SDJlxY+zCpR+Yfc6ukDWDTIQfyTXGfObLm77zx6Zz\nc5ftfOv5GBPXq+ngs2cOGclLvDpMW4nzcnXYW4PvTi8SinSQSyw3jRHzs3jF\nv/41wUX4v//9Hd1dDuCTXxwo6hFqnObetBLvpMAiSFANBSb7lu6P1V1ax09R\nqsHt\r\n=S+qR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCENWMw9/ZwVSOLy3PC4MaoojPFX2G+kFYA47loBmlvGQIgW7oqWrAZONGdtibsrh3TmhhJ8jL+NsW2Pqs4vL98/gQ="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.23_1562766071029_0.04852731307753899"},"_hasShrinkwrap":false},"0.1.3-alpha.24":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.24","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.4","@scalecube/scalecube-discovery":"^0.1.1-alpha.8","@scalecube/transport-browser":"^0.0.2-alpha.5","@scalecube/utils":"^0.0.2-alpha.4","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"22e44df30493db1a856597acbb11b7d00ab72486","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.24","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-cN3iLFOCZyrD2oTQ9EfMDulLfVu3XmiE9X+rHnHf2u6TNRgU91US5B1iw9asN6OqKZlzuSUH7uhohzRy50VcWA==","shasum":"a3b2fc46c1cab3479affb52c3e1a319c7d1b48dd","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.24.tgz","fileCount":57,"unpackedSize":933400,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJukACRA9TVsSAnZWagAA3icP/AzPGQ6hSWBzdQIP+lOE\nnKUZddPgxDqdoVRWZdVMBPLrd7CwdOqe3iIKP+KXDmBjf/vVOUJlcscL5PgM\nwGEbedb+xGK17iV8BniVmUrt4FpmZEQylbKcXCO3H4Kzsfo0tJUgqKmp6B/u\nrOBXPomT3CmNJBEXqQ1Gfp1bEekWgUWnsTAIX5W5kATCUAYN1OZTAdpDXryF\nIcianB5WGjIr7VxXSInASKTskQMJjjP1KrfOBUWlf9+XWlQfA4GQQsGp79tR\nDMq3/K0EcdudSZCyh/aLQfhTkLiHd5AMSvZ82HQC4/26QpHq4C03YKgjojFs\n3f7Skh70rH0hle4cXFI2nvaYIRjb6hNamjmzTc8oI6KMJ6nYXnULG4qXX8Mg\n3IOG4Ix1yXwAf7Pa4K4TFF3UgOyHaraBKJWd/88TlBiU0biBzl2UKPMC9QrB\nk8BrXzRrvUURn0Ac/tZCPoC35cPbj4m7XGRaC9Aiij2E45a64u7dbiupp5V7\n0TP6Uk0CC0R6/2MLReM+8d+oXZEpH/lN1ATGbqPSpD7FbhoCI3vH9l79o3ob\nM7V3X9OKevitpeDHiTLIuZ82l8RbWVXPFjOfWsTtguElpAjF8yQeOtaPmWdJ\nmkeD1KZPNo6NFXRaakQ82BHNACDkKnJ7aT/re0K9YUd0p9wrTUI8BswNB9XY\n0ujG\r\n=Xg6G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCj7FBTi2g6wiH6eUx3NUIXOxDlb//fVdUSyLQLwK3qhwIgOZt0KwRwXyVLSeDk3KUTB9LdL9S0TbSkwh4NKdT9jNU="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.24_1562831104078_0.1254591411723427"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562831142.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562831142.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.3","@scalecube/scalecube-discovery":"^0.1.1-alpha.7","@scalecube/transport-browser":"^0.0.2-alpha.4","@scalecube/utils":"^0.0.2-alpha.3","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"e01d1f22f43c60cb206cc80a866a0005c973b5fd","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562831142.1","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-0SbWXsn4HzpHXC6TUrS3H76W5FSbRwWeqvTeb36ElbWqcP1Q3hayQ9VPaE8+t9XtL1V3mI2zYm0XPdEIAv2sFA==","shasum":"249d6a7dbff6cadd048efe8c8187871af6e9f892","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562831142.1.tgz","fileCount":57,"unpackedSize":933421,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJukqCRA9TVsSAnZWagAAc/UP/jqXn3rBQa4a/yAqTOtq\nvbj+imgfauf7d2peOgLm1Np+62+GELQLfaaKseTy2+GbzD9WXQgR4bJwkPm/\nZ5h/AK83CQAxbxyOMWTv5e1Pzzu3VAg7R8sBbfawscZxCroFtCxUVtjtx3YP\nldaxYdxcc2OdwpD6TmoO9Ak8e2c/CwPWA+YYyTY0prvA2agXnLSIesqsj1dp\n5z3Ccv5WumAjuwDuzq3oKz7HL2jxcC8QYnMkQK9i071Glo0udQGNFYQjuDrn\n884gfCsude7Ihiw8pTuA+mCNeJ9c42tb+iC1etgR1o0AkcWb6OAEuJhyFK/F\nZtoLTlI0MoY9pZPF3712OF5qcG4jS/PNRaIwfNGYnx05bp+TNmjTEDpix0Aw\njtUFDhAU55QhDSyXelyKfcmKw3+VHw0cLxqA2GBi9UksaADsnZITftGxD+x3\naUw95EwvYaGY8/+TWbOX7VOL0MMK52r5j+A5htHv5tOvgk/wYLzGB7W8CXWs\nlKOuzSq+Lkk7xQMog6d10g2DwkhG0/VE3o8R9KokFtQhQv74C7SNvF2+/7mY\n8VQfsE+RsVjUJbtIu0ENdyFZEDROmKs3ZqB9WtsPcFrAnoRXHjzEhPFPQeFs\ngQZDnTvdScTshF6ul5PczMQhOYHmOW4tAqxeqn32AqAbRg8H0C/CrXZ2ZdS9\nBvX5\r\n=U1cl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIkMfI8ETLIZnqzzn4BraPqmG5uLpvc1ImZf7hHVaXMAIgVirJp5FwZei79O7Tl4pLd1A/znMDtT/TGNJpLZQCBY8="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562831142.1_1562831145563_0.3368415073775757"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562831638.24":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562831638.24","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1562831638.26+80d6ee5","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1562831638.24+80d6ee5","@scalecube/transport-browser":"^0.0.2-snapshot.1562831638.24+80d6ee5","@scalecube/utils":"^0.0.2-snapshot.1562831638.24+80d6ee5","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"80d6ee59134c12de3fc58aff0c73f812378c3c2e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562831638.24","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-6dRerjW7n3jTGTBIKnUnw3ene2zJ9fYLP9rCat9ZeUdhUi+QSMcHdQWovNARpvvb4L6ogas7/ozBPkixWG+IgA==","shasum":"ac069ead1802c9ac1ea60c6229511bd014a796af","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562831638.24.tgz","fileCount":57,"unpackedSize":933514,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJusnCRA9TVsSAnZWagAA71IP/irlT3rbJZikYMT7/auq\nq/+D+YtLFGCdxglYFRnow57p6+/VRrLy9A+wDfz+T1cST0Pu7Z10WxQ37pbm\n8H+kzVnTfA1B+zYFSZ4bBXkACXP38lRTHEh2mwpjDltEHwJtDWwktnz48G/O\nnE7aXz1WDTYzfEStJEyMHyyYUxw9OQFU0q4d8SFDTcyFRq62fJk0XFY/X7sv\n/S1C++06GL7uQj3srcXfkOtGDaPREEpao92Fh4wmo8tjJc1HHIlGqDz+eoVd\nEuepeBEaspNcjV1069mypCh13YbBWT6mZ3ghqJTmgbVzBTXIhKJfH4IRgXAC\nOKIYosCmm10Xw5O4w/D8TfXl8P2T2yRwQXX8tK7AO+oTz/G0R+3pEkCtUQ4i\nRNr/nUdnNEhBDw9XYFP0SdKC7+/qbZp4U3MP31e1dIK3iy6NVIhb5xY7Ux0g\nKkI/oM4dv1EOKQx2TAn2ebh79noEkvK6JQSybih57KLYwq2NgHtEJE8N+zO8\nJKCz//qKzXQc/nNJJPQ+U+4Wfhj5gsZCE5noG6N9PA4r+e/9RGPBYvsiYcPJ\nuso6BXiKHoTjDoy/R3U2eTc32reYDJ6lGMF3KAgbEuO1Ra6sB+pOQu2yilsE\nVS3wcmKGnWyGk4mpSmsDFtD49JJRGSXHswLUs5m2qGh2XOisdplqFKEQBoyL\n3LwI\r\n=PNei\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIVdHEc2waslHAyE/H5Jg1cPKVebCUIBhNi4ElfiTpyAIhAJG3vkeHiIUsDaqx6if165D5VuMsQt9STV1tvhfaMIlD"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562831638.24_1562831654956_0.6812736200907692"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562846370.27":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562846370.27","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.4","@scalecube/scalecube-discovery":"^0.1.1-alpha.8","@scalecube/transport-browser":"^0.0.2-alpha.5","@scalecube/utils":"^0.0.2-alpha.4","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"c3cb64afdaaa0a21cafd7ceed3e6d204b4ae3a05","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562846370.27","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-x5mRPrtgEDUdvBAGT8RQEMdjTk430pTDWyCsoehTWeYbjqCPCce6jr3fAFPVGGMRGrB+QITu+HsyODx3pKPhHQ==","shasum":"e6bf2a83a657443e93865352c536b4181f04804d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562846370.27.tgz","fileCount":57,"unpackedSize":931567,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJySmCRA9TVsSAnZWagAAJlEP/ROQKSPuoesepRRkfJAD\nOPILaEQggWgx7TCtLWKy/l+8Y9QpX1+7pmj6vyPx7uYPu+IfAiaj4uWfrrlr\nbBMkLAF86Y7w1SAEJjlaU4ehk92NXDAMaS8u/GK/5/1mbS78sCO6OePKOm5/\nUVOOBO+wQVqaZxgCsx/4mGnpNO4vxOGPB15RdpvcCPDGrK3D6ptPmcFA+gYz\n4NXxuVG0QvhFXy0hCBpoDttWih6b9pB+9VTjBFCz9xgB/CJbQ/n2EK3a6Qul\n2Fx8gHbIYvD3IcG0n8HN6Ud0mfbCFyBQkepiH2+wCcWgvEe4Q0zNMYGOYbpm\niEBSQNKnAzsNxR8LqdXNsCjCpLXvQZZxS4lGMA9FqL9JzadTCynHeWiN3m4+\nxreK5TT3suN03KjLXig5bnqvkrAf7jxpKpXVqE/gbQAosaY0d8gf2VNLFVOP\nBhnBkHaaF7MCnuSavFPOFSUqmnrf0pt/yVO3D0P+5FWvZazAYClGly0fVU5j\nZRu7EUjNrpbPaidCk29LMqFTk4H5hFn7wGU8ISTL0UscXx2G1IxTlGPb/C1t\n2xqOBDSl0BYnb0VVWBQi/7emKczGov63G8/slq8jfbntEx+0ipITMn8+Wjx9\n2kcZaodRVcdBuPr1q298UtSF4TchEhvaMx7wq5J3IRJzY3h5aJSCh1Q5Qxcm\nz3KI\r\n=vcH3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFzfoYIgcjOM6KvlMirEGBIEyKF2pLzDwwdnTPr574wTAiAHyM7EArn48JSpmhXopMNwfTVo24DlKkkI+adJg18yfA=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562846370.27_1562846373790_0.6677371393188893"},"_hasShrinkwrap":false},"0.1.3-snapshot.1562853012.29":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1562853012.29","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.4","@scalecube/scalecube-discovery":"^0.1.1-alpha.8","@scalecube/transport-browser":"^0.0.2-alpha.5","@scalecube/utils":"^0.0.2-alpha.4","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"3e0b5a4a8e53bfe237756aa337f2a7f9ee543ca7","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1562853012.29","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-Rrl1DgbJfsJ7Y9gcHrNa5Gu7szEwda4ihXMxwXZFugjevJzsNBVDOfZ/DcyGLMK8EDJJnWTyzkRzhks/Yg0+lA==","shasum":"787db53075d6eaff69c37673f7c58d79542a7523","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1562853012.29.tgz","fileCount":57,"unpackedSize":932177,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJz6YCRA9TVsSAnZWagAACa8P/jVlQ/L18LD3Qqv1FjhZ\n9D097WmLAZiSbETU+dLgIopnnQrhJMoMDmeIhMT/bsLVtTGrzViNb06A5t3z\nTjC0KMq9PbdBLjRTd38g/00/Jxop9s0jkU/royrzlp21GgWeriIkH1LqdH9w\naUKqplw4AoTEp9ss5ghpojr7ukyROMY6k59E0rCZyZ/rzTLlSTgthL1Errh6\n2W3aS7wOOqgtGi9sp5/yJse4e6x8JC8ciWHj9Oq3aaRigUV786G36o+tdqyb\nwkzTpbVJzkSCJx6ApccAHDYLTAyY+Z2rNSQtpU+XOnC1drPnKL8hhqd4WaXF\nJN2hoCYdr/YFevNRNPzynQvaPXx6pJgpkPX5zAkRBMh2p1khw8CUgFDK77UF\n4jFY+/2fgoFi7VOZdT4ATd+GXSdes0fLvYOcQqRFk6GK5XLlc7iXyCy1ftYo\n+11i8iHfURO/FRLs7dvGLjWaqp7foBV1FZcgup87vgIMxP7V6ztLud2XiELI\n6tHPHD8vMT8FXpj4HQ9a332T5TFVvxhIVmz9Muj2W9979tmnQP/4g9uCDs8m\nCij2BTMBFbuOZDCru32kBWqozYfyHhqk1jW1OklcNCnhFoxAqkKIDtTkwsmZ\n+64ba3E+q5tFsLIeBb5TK8vGo2T+3T+D/pt5SpA/1NzawNRIEpkS2vbDD2PK\nWClE\r\n=OdtV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEvUZAF/9A8aOysLo7RvNIl9U/agTfgZqIC8U0fB3BvjAiEArNi9iXuTZuN8HP/pdRy//WqHJeLKtLseeGcT6cnVgY0="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1562853012.29_1562853015435_0.6333699707817244"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563090695.30":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563090695.30","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.4","@scalecube/scalecube-discovery":"^0.1.1-alpha.8","@scalecube/transport-browser":"^0.0.2-alpha.5","@scalecube/utils":"^0.0.2-alpha.4","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"712aa448f611753ac088278bd0ec5fbc7468b91f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563090695.30","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-acecFH2w+cnkbn/+sC1kFGXtBre3npRw/8jcp8H9hKg/zDsBQGZs7hKHvNnKCDlEObkd6aXrDdJov2fma+fJng==","shasum":"2a3c443bf7cff9d3d50ffb1bbe7586b228486959","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563090695.30.tgz","fileCount":57,"unpackedSize":932427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKt8YCRA9TVsSAnZWagAAEZwQAJwg7BCBJt5z6oBmD7A2\nl0zvVm5Gro7pF8AapZLBh6zOT4SYG6wN6taF5TfIR13llTbjclU4xxJpr1KQ\nnHax01MLVypQ0ta5TYrwRvLWhRaXR10c59cCMekrW9ill/s+uDqs54t070uf\n36PPBWIWwa2aot7Xxra7ca0Uzf7cFh5qrqn5xmjfCsjyObE9B4egFYZRbBLl\ne8vTFWT/nvc6mS/K8MR5MCip6ohB7BUBmsn8LwlhRlgej8NNVeoJdtghVhRZ\n68pm8hmu1vZj2z1F3f1V7iRdXFppFvn4WbhOugOwfHTTUlGQ4CPIWH9/p5e/\nhLH3lHzJVkJkqOK8+ovt3H7N4C+6WbFlmMmEDvf10ARTsGvA5F2jWp4XB68F\nT/VRkR4vp06PRCxM6Y+GE+D6HxExF+dztaW8paBGJc89l1DKrl9p4WImcfUc\nxTZnSED6fhYHkGbn1WGCMmoguieDKM05BY4kQTY+3EfyEGUr43JGpCFG2ToP\ng0ztccAlCs53fAMyi+eSik1CziSJPCuKJSQ62J0fxnrZbMRQM57rCtf3OXr2\n6KmCkjk/iBF//5YUoW1ukbTXqctEF2awkyuJl1JCAINYMeF6dTiB5LmabFe7\n1UwcqderCSTlLagCSrsOKL5ujnht1NvcZn0MN07R5KgXLedigYvyNrMaD2ZF\nTscq\r\n=v7RR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDuEKXVTdlErtnZlhYlZUWzQq/JUzYekxkpXkog+rqcjAiEAnaUpd0der8pca7INQza+ZCG2mzTN6jYwl8BenYKmgS4="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563090695.30_1563090711507_0.7900011623796932"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563091848.30":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563091848.30","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.4","@scalecube/scalecube-discovery":"^0.1.1-alpha.8","@scalecube/transport-browser":"^0.0.2-alpha.5","@scalecube/utils":"^0.0.2-alpha.4","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"712aa448f611753ac088278bd0ec5fbc7468b91f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563091848.30","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-VQBpod+zWJCnsQa2BHNBj1SNsXx5NStyfhw+5XrnuU/EL21ZsiP/hQ9wd+hB7a/Spmi3wsZjiWvrtkkKm3XymQ==","shasum":"d76b17288b9f1055e8d6662edb125248a9296773","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563091848.30.tgz","fileCount":57,"unpackedSize":932427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKuOMCRA9TVsSAnZWagAA87gQAIQx809bQEYDwF5d/qX2\nJ2aDRjT3j09yJx1NTOICTMtVO4vWbhn3S8vc9zBOn3Cb6cegzGm7rGU/N62i\nhdS6WJGoescZXDErcUMQegndXXn3uC3URIUV+RUgH0xxNwN+0L6bLMjoog3U\n5vffpaHhqEiXUCDfJxniI0jKktCP2XGZU1QfVszpD7BSSkmG+aRAK5TV1+xZ\n/rxhN6+V3cEIWHJvhXc/uf4HhToYPMmhW55mWEoAQJCcwBBz0lNpM2remTFY\nt+mq3RD/G51bWwvesG6FvcPC+JwvB7zqwYD/WgLcbkj6nG1wPfchVnyFRwnJ\nrbrXD5lIeTrTP6TRadkWNx5vCra5rJVAr2+jRlPjgwA9k/Oa0eB7nwHdoGSM\n+JB1Bo7dWidIs6mQQ2KT4gS4lXNOXAmRLwvSTms3tsA9IqvAcupWmIbnkyUp\nVjYUwV1jvPBIlnE6sZc8R9fY7ZkLC+IVMarxEtxs2VCgEjt5yM8DRWmvzWBQ\ndgVoYzjjpVUlc9gTJzHKPwJBmmvNw6vC5hnMFUBlf2F/BA2kERt6aMZGYtbN\n/4KbiO7Fbnpo/G6/9nWlIDMlfsNhJxVfRswKCxlB0mFMMaTDXF86Sl4O1Q9T\nIwuI1Ix/boUmEBk6OGpzwvJZZsRjTD/beGG0deNnvrCuQkIJ/vjsnDvFWWuA\nft3Y\r\n=zNsj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiKvF1kwevLDM0FxXx6w8vCRTylRRaaJaRehc5X6mjjgIgasUc0Sw7R4LcStm80+BAAwsuGys3qq4fcyf0re8/HUU="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563091848.30_1563091851865_0.6204922890785656"},"_hasShrinkwrap":false},"0.1.3-alpha.25":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.25","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.5","@scalecube/scalecube-discovery":"^0.1.1-alpha.9","@scalecube/transport-browser":"^0.0.2-alpha.6","@scalecube/utils":"^0.0.2-alpha.5","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"4ab07fd8cce9c1398001f45fa271ca417a441429","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.25","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-N0v7fTNDbdxTuyeJCAgWGJuj7WgmcaMJg2hGU+5s1DNpw4Hh24d0XkDiNrEcNeCDJzC23rMBAP3Gt4q39fdI4w==","shasum":"7e951a9d543177b866f330058385333f4a46fa8e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.25.tgz","fileCount":57,"unpackedSize":932405,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKv+ACRA9TVsSAnZWagAARLQQAIGFtiv9wDADD9PS+drz\n58Y/kGQuxkiXpujzrwQKTr2D+4wqKWFHj/EAyUmQhcvf0FV3HyurM2yH3d4d\ngo+j9vUFXv3qPz/2SahMOWUOTfSCBSu94IT4fE8xYZ7L8kjLh/iEgzp0OL3l\nSujse0cFTi9vBFjNoNRS1ZFfX5boHUGpw9tn4/nEhvJzE0b511qobuLn5hmp\n+ju3e6s2xMTZrhGDf1SMxUBd6RP4gaeNWYaj9jcaNCXWs/QKkh8rmiLe1YBh\n0Bqss0Jh2+kBXZL5wfIJdllwv84SK8QxU955ySta85gULVDuAEQVi3cXHCPT\nSxAmW5UGbPW0l/rPj7K0jn0wlzly/scCU421Sldtf0YadxVECC58xBZpKwGq\n7EVK5nW1OvTmuopre6dzyz9wo6OxJmOLzHFa174NBs3dg48tyf3x7AEeS9Uq\n24t1MJU7UE6xA4nK3mDd+6+kzyTBNhaxGu/0sJ+p3cBGVXevTB67ADNae76j\nmFsZIJhFwvJI5zkQfhJyXseD+s8phe8nEoeFty2VxGno/9OubxtA77jBynnT\nD40A7LPrCLCikVxWEiTusGqjmckfMdv/clDJlT7oZvtZuc96fyaH39ro2PD/\n8XiqraZcuFdVSRlgvV2y60ukZyZL4oXmxHc7ns2TgSXvqpf048Lt8lIvOUae\nlHDj\r\n=T+yV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNfJXi3NVPx4XDro1BqjFwJE71hMSYJfCUSn8nWAAPawIgAqm8HarKGwOPvRZKTFuWk0PaM6Cxr5CRGg9yM5CJ1DU="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.25_1563099007941_0.6930309312976752"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563099123.31":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563099123.31","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.4","@scalecube/scalecube-discovery":"^0.1.1-alpha.8","@scalecube/transport-browser":"^0.0.2-alpha.5","@scalecube/utils":"^0.0.2-alpha.4","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"a04856ebbc32233ce3f161a2ebe5efd112c49ca8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563099123.31","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-nEIekUW2MZe0SCUzOVW/PTaTOgm9Uye1vfmgd4xyNzzdsDl4LTwhFCMgTypur2qkFluFT4QyRaZvCwp7a8Acng==","shasum":"f89c6afe54d68460119f0b12ed53613a51582855","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563099123.31.tgz","fileCount":57,"unpackedSize":932427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKv/2CRA9TVsSAnZWagAAVr4P/2HRhphHEepGFQMGrGhx\nm84IctOElACQERKYcaJFssVOV+kZaOORmXmA0xZdX51JCkGYNzmUm9VSBytQ\n3g3ECtJpFuUYT86u4Rg+0wH+MpVB/EN22zzXyHLmZv7/citjyYkOyiDvSjcQ\ndwkBTnt2LojCnL8JxLfwSuEy6Qkb8Dfxnno4WHBj33zzra3j60dFlAzNEMun\n0SpZb/IU/xjRA3acqdLEvj3Ykkr/ySu9M8YNtRShqbqP6ZS9TdtHbN/U7sWW\ntAhjyQH26U8+6lQFbjKbvKmUGRoU5NBUsy9Mtkuc26GH1DlmyAOv0WvzeXa6\nAuTD9UPh7a6TigJP3VSzKx0aCtco34qUBehkvlNQi/bRwMKAhPqdhszUv432\nOv1cABbDxqNVzHBI8kDXqkshk4CECuxezS2Qs66HdRIUalxT5khnoPg96Mp/\nHuqDfjH1NsTKrHAvW4oOvccpg/xdhRBTsgfdUFp1Q4ihymKmZmSPDyRVvddv\ntxQzA9z/PWGEYa7CsTbUysK3L8wLVaKUqfZ5Ff5k1kpb9j9gMu+T+nfBfYVs\nC4nP52ngJT5xvN+N979NsUBfsj08mVdClP36Ylvm1whSMFmzGrBkqD1L80BW\n6Lu6a6DlXWd1peiDrlEt7Yr2p1rWK1Vxg91fKLHLicETAkvnbaNiG/p+l3NB\nSSbr\r\n=bCZd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGd4IjtEolhNb2kT599ZYv5vLVeHjdQ3eM+byCv0a02SAiB6BF8jnjMmywNNRIFB7SreL8NW+gy8sT+hkPUfxIjZcQ=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563099123.31_1563099125886_0.4028049163396876"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563099425.32":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563099425.32","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1563099425.34+7e1f9eb","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1563099425.32+7e1f9eb","@scalecube/transport-browser":"^0.0.2-snapshot.1563099425.32+7e1f9eb","@scalecube/utils":"^0.0.2-snapshot.1563099425.32+7e1f9eb","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"7e1f9ebb52933bb5c63baf7ab0ae6d6b39785f6d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563099425.32","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-WY2su8x1D9X1xy329uqPIz1LvSIt/42opxQ9McVl8+WJ3m3Q+Yr53/kjdKgb846D7Y8QnyMY0hFivl5BDdA4YA==","shasum":"4c06dc92aa4c922e008386b4a99850ee9cd369fa","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563099425.32.tgz","fileCount":57,"unpackedSize":932519,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKwExCRA9TVsSAnZWagAAiMcQAKCpiUzCOcJk3E1AEsXN\n1vfgpriq9ySehvKtKPavP7jNUihI1UeRf7Lxz+d+ruo7OEu8+avk8mAQUIlA\nyGJaIm+TO+A8lvcyAXokMKqpghUz9AM8PvX+d0JgLR97ISwh/uDxvJzxNgdh\nMbur6hKwsOkEX9ZMFUJ0nuNV5/Jv7PTfF2eGaOwWLsxeLse1MMQJTLvOQsfb\nHmnSAB4MDn5T4RphxzU6tHxg2yLtr2994cy5w3dBz6oSk9I4fmD5/uh8xWdJ\n2c1XvSOVUHjGWQTOvmtRB3OtU4YiZO7DqCtiREqq8BQn67UGJJIDip4UkjF+\ntqRMOMXudcGSzDl+YLIXFeArCAEFOUTmPS51LdyBbUdA0VOjfTspNLf0rJ8B\nwiCt9iYqvYObdWIHq8yFKUAiaaPsDj2d9mcsL3q2ypSnrchHqG3icbF+rp3I\nSp+rJP7TSp8RQaOqDRjwbTcMZ+uaMPe2f7ATVEfT0AYnQ+cPDPFShbwCeWTJ\n401VEpp4pfdUyAf5LB/i9E2xqngJoNSk6j1LKr7bx83R4S4I/3C8vK9yv3u7\ndqWqLtcsfzAgVcVH1402MB0Eqtr70AYJhmcGwx04cwUIDkB3wiWA7QwSnFeo\nQCV5vtZ8TSjBi7Jg1Vl+Ugc8YlApoY70o63gjbj3gkalKilohAiltBNfXk5w\nlWzt\r\n=dpQ1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBh1I8mwltsk6DAKgquZC2c3PIdeivmWXs627mALvGQBAiEA5jN0gnPhX8J3aHws+VPdQpL8XiG4xbSJyW+B7aIVciE="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563099425.32_1563099441230_0.8318687508034941"},"_hasShrinkwrap":false},"0.1.3-alpha.26":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.26","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.6","@scalecube/scalecube-discovery":"^0.1.1-alpha.10","@scalecube/transport-browser":"^0.0.2-alpha.7","@scalecube/utils":"^0.0.2-alpha.6","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"940db2310ba183ac8a2d65fc7d22e261ce452231","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.26","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-euvXhhHDSBg6aoCrWw4+4F9JAnNpcXlBKqVn6eTzWOZ+4LFdVIoaJu4FJZPPhLxA5Zx2fY+FL6RZYCkn56Wsrw==","shasum":"fa0cbff81542dc11be59a776e225a09d5520628f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.26.tgz","fileCount":57,"unpackedSize":932406,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKwq+CRA9TVsSAnZWagAAiGQQAJMvHhynU/QjnrF7NZEw\nC5lOsMxToab5rtmEu1ikgLxEMCIsUkV1aNvXGhLJC/UfvHiFYUpnp2Gg9Vej\n5e8ZrldGLtCvND1bUbOk+HyRxP43cAoo4h0SZTqJQ7Zf6K2hclSpRSNOvMW7\n93PnzPoUp6frPYN+ImOL8p51j5g64cORbpH8MNNBf2j6XyMMges+Zr0Ix8Sa\ntib6BVI8uSg3ilgkKGEYcZoOH4Ni6m+lQfsJpnvHpjTXlPvYb1L4b66jCHqu\n8dvGWXn+ixPiuUjDvE/yg/RG/FsaepzmAgAzh61ND7UQP9cmm+Cv06DMV25m\ntzEfmYJ7T+nAac+LyHoSReZXGv6tT+G+a216JldaJEuiR905k0N8Q5TzxGEf\nNs8uwSk3O4Wo2ofIvp5nqVAz8QEiqbrIS4AmXZqJDe9tPII8jn/7irhXPWP3\nDiNGYJZo0nTyQvVxNgFq05vHW+I9pX1QcWbk7DoxAX+xkZal2Zh7xX8a6RLI\nUthI2r2Cq6csuUmHZaBAM2uxZSCM4dLngbe2cOwlm48jVrZVDux+LIH7lcQy\nP8YyT6ViDMrON1XUKJUl+xNyp3pNFjlEMZuraAxmMVAIob6CYgBaNTStJDsC\nSpAYCtx9/wBUqtBjVbqxQ621/bCclJYeu/cZIHM9sFAC6M+1JGAkhqyoeRnL\n8c0g\r\n=B5uH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKFshV4w4Qxtvc6c3nwLgO+6ZJiSGF9TQDDvmKnSsWpgIgKeEKeeb3Q5VKIXQtD/lDnSFVleszebWmw2kOrQW+Dn4="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.26_1563101886030_0.049832749661029574"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563179607.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563179607.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.5","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1563179607.1+cd0165f","@scalecube/transport-browser":"^0.0.2-snapshot.1563179607.1+cd0165f","@scalecube/utils":"^0.0.2-alpha.5","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"cd0165f06823e89317019687750e801e83d6f54b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563179607.1","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-qBM/GBQ32XvjdaXvQCHGQ5UaW+IxuddIATvNe5T+zS8kZcDTtSeBEC6KET+2RJco+aXObFJtFioHMQCK+B4M4w==","shasum":"9d8fbc50041c5711ac2f091cbdab1574adea9d5b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563179607.1.tgz","fileCount":57,"unpackedSize":938208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLDpfCRA9TVsSAnZWagAAXbkP/ApnUNZp7gR9XKNUcb4U\nCDivEhqxA0bDdXPamLd6woTiCmYWC+VpXErzYsc2ryuQ4fmioXpnys/KExn4\n5eYzaa7CXbhfQ+2gQx4ugFbCzGxL2LGm23M+XrLgqMd1gM/+HwyEJDKJHmCX\nnXkwiFdQ0qR0aLUtnxuEdROrHHkyj8YoQAakDDzQQ5E0WL6IHoluzLz1eq4r\n4mfvOlqKSYRogB43id7OC2ZHGohbT7QJWS8XiqVYnPgTZzwV8tEaJQ/Qhdoq\ndRZEy8sNnysPwvtZfVMZSdOhSAixuWS+dN4T5z71Kwf/MbvgVTnbpXe5JXAO\nsEsZTcCalgPzHJXCRilRBNFTFZ36udNi6gOmX0MMybbvhhcVb6X/v2iLHwOe\nGQ7Wfu5Ez4ombJmLqaujolN8kSq7Mn1QE8tXjrJSyrgLew3z6qTW4LK2YB/j\n5i5quf9arX1kX+U5I5WaFiRpR7VdqdTj1FynUBc7WTI1RqKnApcyPLvs19GZ\nYv+cvukZYUovFLO+jrhKFjl85FP8iNDEHD8Rlq+eoaLNLcwR0/1JyC+b7OhQ\nTBFJUnDkJ8VVyDorM1UFVqmv2ReapmTNHoK/e6uXZsjlap3yUa7dIKamDPLu\nlekow29ikt88qKQzgOIaRKjtpMRURHvkzWtaXdOJQ6F0h83LN5S2cpZuz4GH\ns/2d\r\n=VNMB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgGIvKu6YeLdNvq/r+XZ24Z4It7Zb9JRynFkBV0FzpBQIgToOhVxleF/TP9EHfyPloPVvk/VpFaKINdg4w2ytdIGQ="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563179607.1_1563179614612_0.15249467061461375"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563283241.8":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563283241.8","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1563283241.8+b0da19a","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1563283241.8+b0da19a","@scalecube/transport-browser":"^0.0.2-snapshot.1563283241.8+b0da19a","@scalecube/utils":"^0.0.2-snapshot.1563283241.8+b0da19a","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"b0da19aa657b582cca40efff7cf08a5d95226784","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563283241.8","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.15.0/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-I6EgpH/dVkvpFb+fr0TydkuThPO1feDKyxprzovSD3cFLCqDwX6PIuKFry76ihSMFHT0aERg02ZKQCkDLRtYDQ==","shasum":"1d7a9199c3e4e8c1b33f7ed89451a13406f680d9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563283241.8.tgz","fileCount":3,"unpackedSize":16376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLc82CRA9TVsSAnZWagAAwE0P/3Nu2Pak86WdgkRhLnCr\nShGxy23xeIZh2j0Cto2w26KrrC3eP2DiJRpyrkVVP4RWs6+Tz2uYLrd9gqQL\nSDyqAAOA/dUbPqFFlU9NTT5yUBrJznOeWTqPKoBxBrcxccvYcrLnzbawIEBL\nYQJ2kMJJ9AvK7OrJPk2EGCi9BQtvTSpGC6GOefe5GbfZt0gitX2Njk6Ta9p2\nM0jpMUkm94psAM5eeCYT0ihr9xOVzlPIjJBE/JZPwXn5OR9Rt95b4bZlkVRr\nqtxmZu2dl2LEfaLv1+bKa3Xpty7rOnmk7xofQ5r/uRoUQr6HVHDOr37ZCoO7\nJTxGUd0eYSzHQFFjWc/pN2+zY85kINUHmhGpVVhx2ReKSmzwQZjPbiqkhw4N\nTft9bZ574PrNVVZZ2wTovt+NE35hDUFQVTciHiJT5/0J/p01w2qGKFDPq06S\neV5bTZNbaXvnH/avVeXQ8Xy2qhyRIU/EFwfEj0Ms9omdH9jOpo6RmLnhwhZr\nFx4kyqu2F6voxA5p1J4fgbBdqb4Yzt4lT7oJxMBXLzB3GS9mvrpDYWgVbo9s\nXClw4ODeLXR6GE8kmzg8JkqNWh3huN7tVtRBK8B29rAeFKa0tFppxnEUVo7M\nMHG8wZDJC739PddNYU6cTcj+wLLU8fgKRD6uAdHC5DDzdk1gt1uuTEddMMmd\ncJYv\r\n=1+M0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDh6hHo9/BNTEtEASMGJJ5UfuhR3EgH3jOkhITLBxeZQwIgeWkHdgeZXcNX8luKrBlrtoVByuIGXeauuJvja8FjvXM="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563283241.8_1563283253958_0.921908879006522"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563284510.9":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563284510.9","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.6","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1563284510.9+953926c","@scalecube/transport-browser":"^0.0.2-snapshot.1563284510.9+953926c","@scalecube/utils":"^0.0.2-snapshot.1563284510.9+953926c","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"953926c8142db148d945a31138b415a1de0827b4","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563284510.9","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.15.0/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-0RpK0wwzgOqu7BbObPfzM4bjQySWPLmupK/s32Dpf7MPUy6hTY+KR18LQXqgxTdX+8dtyjYvgeGvKDHDtYR/0g==","shasum":"5c6eb479ca783b94ec3d04ff177e7f60365cee37","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563284510.9.tgz","fileCount":60,"unpackedSize":923014,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLdQqCRA9TVsSAnZWagAAb3cQAJgB72JdFvsqJf701Ok1\nxlBN2pEupaSQEReldNdtDvU7onsSy0T/jRnNqE73d9xEB4SjoJxBli7VmrQb\nB8ClWGPFtTfzKkztO/ykqk2xyfC/l5CqBYYvDhuQqKSQDpQDyznqlid84gD/\nhuHnF3krgNuGyG76h9tZxvQ2UN8j6SFt/tXkMVgYBhQHJ1Q4Zi7Ix9yaQVC8\nnDI63fhbcdoh0ZwkBX/cHaqzpmBiWg4Yept23gDPlhXCMTqD2kdcCpdSAkRc\nwr3ItuBawOZpsB0basqEL/RPu+NsCSad7UNC3S7imXCFgd/UOkY7dd8wk9I5\niC16HaVxwVErJT1JaW+WHL24jntcQpIxwq26aDLqHo9XfiLkcSTQki4Zb5Qn\nmVLzfMYojhFmvtcXQMtc96hVmKm3DszfUmnxjZADqEyoZEJG/8YX1led+PLA\nk8FCyuhtOnC6BL4rlPfcJyLj6AeHVLe3tVVIWByALYlS3Qj7liAp5YBNXIvP\nPoPmlQPtjp68yNd4DxcTOgpXfLQ3wOGPqPCLCPVr43kkq2n8LsYwuFaGnbni\nqQbBJqMlqHCttWjgnKcDtuGJilLajlDnyyF2NiVpxCPRqiK1vjGxo1KydsJh\n9YXjFr72Rmuu9WNs7nOiwtN0k6wBjZq7rkxN7gROitEKDeUFJAjY5hs6y3wr\nJV3z\r\n=1B8U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEnDH0+LLjrqLvqzWZW+d1OcTu057PaCAwfnd8+q5DjmAiEA+c7e30Z2L+MhV7dHbLiUS/wIhNkmCQoh3csdWFH5Uy8="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563284510.9_1563284521519_0.8090205028555348"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563375651.10":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563375651.10","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.6","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1563375651.10+3624ead","@scalecube/transport-browser":"^0.0.2-snapshot.1563375651.10+3624ead","@scalecube/utils":"^0.0.2-snapshot.1563375651.10+3624ead","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"3624ead74227f7b2ae51cd367fbc2b8eba74f207","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563375651.10","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.15.0/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-0Hrsz3Xq4HHaPMYQI1WgVtdm+YBBTW6XTSIgoZhH58vDOwjNTVN325ObGhCrfVBNz11yVe/Na26NoYcAL3fH9g==","shasum":"db65f725df03587867f224c256ef7c2ce60b2339","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563375651.10.tgz","fileCount":60,"unpackedSize":924247,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLzhACRA9TVsSAnZWagAAGv4P/R3dVJgX7D8Nhx2+YGvs\naBe35XebmS+6g9P57KC2WvwLCH5SRypICyr8dHVSlMQGBDrCU1jAIFD8HU0c\nHo9gVGu44J+OxT1AM9kQOL8m/yB+GcWO6BqdGOfnA1mfgpa3L6BIcXqQaqef\njRZcw0HbaOX6G8pfHH+tEITgf2jyb3Yhnxx/xHfdxmgKqYFd9HUkgHMvAWN1\nGx3YavgvHEIfbwtad/t2TwgFKZMTkYmh0bCYLWBbqd+9Nhox9+JwiYEfTDkq\nCekoGvnwohzHnkjWdPtPbm3zWgkuadiRYmHq/82B6nDbTctatmOqU1aw27bv\nXs2v62a1RWm1Da8yg81wBI4JQKktfJ9l6ik9u1lEpcg3uwzrdAYO8zE3TMUl\n4/E9OKtVTiqX0WdHtJr80npezv4T4wfJsyeE1OzJy3dnHRAQRkleExEoKE2H\netn9sBWXaKZd31GRLNMeYp0yfLK9ITlb0vevoPfCGAVtRSHfgFkGAY3wnM7z\n1ZXwJSe/nEwwWQ/loTqpeBHzqr2EKNvLVgOxin/K8FKztQgR7U/Kld6AEvEi\nzcvc2x5cZqqWi8HbrGrou4i6oFefO++QW9r76J1v1efds5TksSzHC+ziWsNC\nzVB/mVZERor/HVRD9xCW54n7PO9j0aU16r038SHddC6r/jN2E3OV2va8AycZ\n16c7\r\n=80Yb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMSXeXS9L5Bk7ahJ3gZJhAnvRA5iBx9ZllmiksVQ9OHQIgEOcoBVrSv+ARvK3y7X0i7hafgT8d3G2k4yxN5hGFeLU="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563375651.10_1563375680147_0.5707674389054676"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563376995.11":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563376995.11","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.6","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1563376995.11+3b85f70","@scalecube/transport-browser":"^0.0.2-snapshot.1563376995.11+3b85f70","@scalecube/utils":"^0.0.2-snapshot.1563376995.11+3b85f70","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"3b85f70eb5dcf7eded7c2baceab779d6984a64a7","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563376995.11","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.15.0/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-b2bVYxJ5aq8/SsD+cUnnRga84vr0RZ8rbDvBaujrZSzcv+jhPNWhZ05nr5bkesZJRAkQt5WZRz7bA2tqykO88Q==","shasum":"d7221eebbd548448d2eaceb03e2dae335a0a48ac","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563376995.11.tgz","fileCount":60,"unpackedSize":924695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLz19CRA9TVsSAnZWagAAcNkP/1VeJH7qA6GWjjijknif\nV9l6uoXX2iSFy1UyY10CLXYS42bzHDYoJBSCKRRfnAtLwCRtq+57OcyvuLU/\n1jvdxFX9XYFWoR36IWLYrfo5jSiqaYBf47tGxXv4TuMI+Z7WKALSfz5H5Ead\nS/V3RArRnbJgtWZZGmPslLUQ6y4bk90ZnaPE3dxcxfTYVq8zmmVcUhC9dWqa\nfLkPiCPmxQ3SqkfNQByE9rH5v7u6efZYESdBgIrQmSGkCCSJZufEauw1Rqiv\nlM1ODfGxaWyRVlUbuNPA/GdM8DCBsjCGtRBQAbC7LGgfFtFQHEAyyFxFsyn4\nJiwIwkLItUnttufKgb8ztG4GCYfcfBysN2TAwZeZYGQ2N5w6KG2TR6EmzSTN\n0YF5qN+coJlJiR65LlCHxosGwE/okIluY9MxYot6jT2CosOhdMgcoBYKwvub\nLY7NnLjxU0fLLARrYbRN7aP0Ru14ai8J1BO4+eNuC+KJyOM8Z/hSrVPeDTnx\n3m+elKapjsyu/M9E4aYMfNGYFtCGtyU0qdNPfO568B66H2QqEgXNXEHsWK2r\n7rzETcZ61XdwojVT+qtXRXOV+pjGT+EShuOoEo9lnDUJdI5cfPh2aS1Oczig\n2u4qlPn/CxWfapb3HRhCNzM/tD1j1G3ax2RMxFF7ZQZJCE/4uKrBvdsG2nrk\ncPKd\r\n=t3OT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAnrAP+NtTWWJJgxW98cqbV0ieKlzeePMTm5y+uoRhYvAiEAnGZGgQrj32c0KNCP1VAqZnyVfTAv1osI+EHkZeW11Zg="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563376995.11_1563377020288_0.20448530815255173"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563461668.12":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563461668.12","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.6","@scalecube/scalecube-discovery":"^0.1.1-alpha.10","@scalecube/transport-browser":"^0.0.2-alpha.7","@scalecube/utils":"^0.0.2-alpha.6","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"552a27fe0195a7ada7b9f652312017dfb347d2d2","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563461668.12","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.15.0/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-a2i2Ay5kA3kh+oehSAr2H4A0MU/F8CqSFeMiJKo8PMcH9L+dihfYjVb+qytiJmGHTXZZjnUx3PEpBkTVNbO6gQ==","shasum":"6a05a3c763df66c543aaf314bf0eccb2a79f217a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563461668.12.tgz","fileCount":60,"unpackedSize":924715,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdMIgoCRA9TVsSAnZWagAAnu8P/R5hipQfniDNVI//JSLe\nABZMV0bslyxWSoHhrxbtqswo/+FPwhlH7kyVGhAjb0AT90A5Omqlg9C/YPsI\nunYAtHFXi8GclqIKl2oJdwYJDXlAQQgerBlDreFqLYD2sNBFEji++iwkcDnn\nZHjLXLUcxnOHq+4LKBujQeOM/Wd29GQV6HpA+F224AJouBC69qLx07P6lwk6\nYGn5CHzZJHehTQsf9k013QwwGrJZo1GVVg2XGhFYLOGGS4UaOzhTDj9qmi4/\nzF/S4h3kv9beXlTNlgHsRXnoJQ0FLWa+PfTEB+05ZuNrb1J1RKQTjmTqPprW\n+Po4+Xyc2PEPJwaaFt73qo7VoTWwKmLUPi0xT38AlgqYy0i0Qqb9Yj50g+IS\npOKPScy1k21S1qvkxyj0TLwLNYpyaB9UKeWvEZDcLyCFnbKgX5kuXnslimJa\n5S4sLc8dQreId5HFEAWm1ZrpDXoAhzFzg4vPYCteXqd8iz2MJ/BmbD+o2N+E\nyjA2U4j7P0Re2RJ6wZwzltvi+Kn/5Z1M+g6TevyI5dOF9MDC8Xzpk1bELq9D\nWMrOEgYT9TfDFAOjfVX83AqjwtxuBjrWY0XH0MuROE5Ui7DV9GEkv6POqDXs\nf6l2wrggrmth60uIHgH3/nhzlPGXs4fxgLC/4cZ1XpGB9G+HT8vtMk9s1fuj\nrnc/\r\n=KNjc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/3d7BehFbAQwnJclSc0o2tAZepR9C2VbTXI9B17oVygIgSw3hacEN9IBqIRWMKprI0yLUYWprqrqrViqReXgYUwI="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563461668.12_1563461671250_0.4364264736964554"},"_hasShrinkwrap":false},"0.1.3-alpha.27":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.27","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.7","@scalecube/scalecube-discovery":"^0.1.1-alpha.11","@scalecube/transport-browser":"^0.0.2-alpha.8","@scalecube/utils":"^0.0.2-alpha.7","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"ae962d62c4deb8016761bc7e0c9a1c6aac1648e2","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.27","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.15.0/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-iBMuhvQcxK0LPNmrDkuD0ADv/6IzTcZIdki/sq1O6TN6Zy2Yh6eHZ/9qhKsm7A/zXwMCwnjuDmikAiVCBY4T7Q==","shasum":"93911d34ad2a3f3fa253e5079407f9da84ff1846","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.27.tgz","fileCount":60,"unpackedSize":924693,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdMIqDCRA9TVsSAnZWagAAqaMP/11aYRVeYRTSORAjzkhz\nvvRElEOJIcHDaoMMeiII1Pngp0LdFmsKcZo06oGK3Jqe0TY+6QyLBOtAtpgj\nWG2EVF4NFEXFrpIJmzz+zR6BgSQklPbUp0GLdMkTn9OOhSo0uqg/LsA27seB\ntYnM3Ei61d8h5D0e2hkLtSyAuRsCFlEoW3GZsJBDNZ2HVSUmjLjnLh/rdRbu\n+7ICAMYTs7ENy0LTLOl0NN5A8ziIxYf5P8nuAIY6jz4V7zM1ga9z5ibdTPaJ\nXwobz9Q5hEsOytrpY74RTE4cYUpk40TxsMNSO5iY34V8Q7UpiFq8/hZkGm6c\nwAU0zuwKTZ7D+X7nub6nUE1Cd7HuyMlM7O3ndbOa+IxL3l7VyDnKffBqch+q\n7evq6DhN5DHvijMxAud59V7ntT/Yd8s6QsaRau11/z6o8+MUkx30FtNiSDGa\nZuug/qS/IvTHWNBd1+iSr+MR3g1ved9Swb2oxp0hy6xT2Oamr50ofmvg2LGO\nI9t4SoCrDKgpqsP3z82+31w6sMqpVXsIhVOSm9Kpkr6a4hDlsXTu0VCrHueV\nstKOzUdrW4BgHwJ4gmemrYsOLGFq20ryFcgKPh0gHIAqLV5LLXR690ZbxfwZ\nfRvPxbqAxUyFjwDXiHwKOxs4/yyrsmnm0VddtvF3hPPmbnZrv9Q1EWiyr+bq\nju9C\r\n=u5Cj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC21tN7iAFSDuy1K5vses8ca6h0/y/YDKXAN+nLnZHKTwIgBqontKhHHcokgfj/7Q18J3LHE4FwymSFXVJomsRhWkc="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.27_1563462274984_0.3874876653501762"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563693729.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563693729.2","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1563693729.2+0a6986c","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1563693729.2+0a6986c","@scalecube/transport-browser":"^0.0.2-snapshot.1563693729.2+0a6986c","@scalecube/utils":"^0.0.2-snapshot.1563693729.2+0a6986c","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"0a6986c2feca5272bc159851fad3dabe44c39422","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563693729.2","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.15.0/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-GJ62+xllcnH5Pvsp5oCwHjCy2g3QweD9jM6tfotLLEEagApeplcu5/AA3EUHWnQ8SqJXRvqtxJQYlPypMvyPDw==","shasum":"e5ab8f8ab387b50c6a0a59f403ff9f3b8647803e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563693729.2.tgz","fileCount":60,"unpackedSize":924801,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNBKxCRA9TVsSAnZWagAA4fAP/3zce/656LbiwcJcgZT3\njj4dTMfxnsBq/gxUaOG7GcySeFhPRCEYHkFMcR4G4CU30MLlBAQbjSfbc7mA\nWM6gnRV7hMo4u4ahgGVQM0YDF90yXsc+tdk8E32sgZc6Xqv+lS4WSzgaBQS7\nCLEajG1P7aVidOlnwI6E4Kru+wiIV1fxELYnn/6hZQsj56HAHdL7YvMgThUn\nQum8Fn+B5J9vQmbjFz7gLT0lx1/4M1Zs/cwUpqtQzGIBXUoHGxNgQHHUv3XN\nnQlxUYhaTVVm4LNQNDy6Fv6OMTNUz6DEVpZgcpm1ikyE/e+dWNe6I6eAY7K7\n8dYBse5ncJA11UqNWQgxE2GaYTn4k8tn+e0cZUTLQzVyffgaen6sdlRqDEk2\nzIGKCq3sAcNqVOK5/1VtkukxVXwIdqMMEYz1OhGkU7xZxNfu2/JHkozUliTi\nWxCr8TusI6ls90EWiff+QH0LcKJoZ1i/REPoJvfxymQQl2ey55Un43X5QboK\nWISd4mpLo9LILkwdJc34g6HYFZ7/4GguXkPW7uqUUgvThOf/J9w4W6fKkkAy\nwOoEgR678RlGC2IX8JS0MZ7yaeM+l4Liq5wYvmeZG6l8p4Wo2XIWCaFZjQw1\nNEXb1AyPC+06zvTP/TqRSrC9ya7TfFC1UYI0OHAKphpr8oCVOcSRFlT4OJYJ\n4439\r\n=h0Hj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHdnu+WDrsYn/cBeoGAOdrXihfgdFQ5wqVVRYhTPXXrUAiA5rvAviOeYXn03n9C6c79qlUc9rvNL5c9bSJokm64Yiw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563693729.2_1563693745099_0.32915601382118487"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563884277.7":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563884277.7","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.7","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1563884277.7+7e9a9ed","@scalecube/transport-browser":"^0.0.2-alpha.8","@scalecube/utils":"^0.0.2-alpha.7","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"7e9a9ed6c830181bc2b44f88291414d33389eaec","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563884277.7","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-xrY9H23mnJzoGQlIX1puzjmzQH3gTsVsxN5Wmp4KJDV+4QSXTvP9Vtr9e7eVgCcVsDnGGIPddXdrUW0wnWRccg==","shasum":"7253291bcb5db93cf99cfeda77040475b977f9d5","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563884277.7.tgz","fileCount":60,"unpackedSize":952663,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNvsECRA9TVsSAnZWagAA9l8P/2hMwPUktMJgyouwsJfr\n66A3XsRRlfIMSnUGcAqoTUD0vCk6QwlnR4zXmRSujtxCk7Amqh5PPoiaSkpz\nYevTaY7Eo9K7joxllNlcmTPssYq27uW3Hn/35+/7gDWHFvKPAlG1YI4YoPPi\nMacdWDCZcvDNmr8JB1JB5pPhKjkrCUu/ueH7RvJw/4HVM0TOrWPNQz0IkAwg\np6NAvSk34SMSVmi2TZHsvQtwwHZvG0RoYVi59PKhmVfvhUNZbiQgCYo5XGcy\nILH2W3IODfs1k4OeZGqA+Sfyxhd0Fvgo91s1CAEECk4SwQAf4I+UfIAwEYLQ\n9S3l3cYUgaw0viyLYFNWhglwe8F2aCMLGn99IyweCwiv12pVIvsuFM82P8Ig\n2iXYRwoLgQa+wn4JK0TsdGJmyD7aZWMg9F6CekrumhjtUsSx3sEkyCZZOmvH\nvVMEGlhGETAsJuiOwVbKJJB4J9XTdy3HROSfP18kC4QkaMdVPcQTn7EGV9u2\njIn6NJcADJfU4oMdlBD/93VhKTfp75VdO2LJLvpCTLcCfd6H1uhVnLKyezjx\nBDATfD9vdhgaYZcdceGkqqz8tIcvBhF4MVJCuB/3+Yz7bX7PQv70TZn44YcB\nGMmakQLARnsCCWnN1LK8sirCtEn9fjxwhKvszKTWuRmYZS9L4gC0EuQccEjc\n2n7Z\r\n=zw2l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG4uF6jMXWP44ik8yEe0hxWolM/o5zpA0fIAULGnqfROAiAwt7bLb5O8tHER2ihC4gUWBh7H9iSAQZVufawmOnGFlQ=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563884277.7_1563884291368_0.966305294191288"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563887401.9":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563887401.9","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1563887401.9+574e30c","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1563887401.9+574e30c","@scalecube/transport-browser":"^0.0.2-snapshot.1563887401.9+574e30c","@scalecube/utils":"^0.0.2-snapshot.1563887401.9+574e30c","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"574e30c209d6b825dad324e235dbf7afcef6e2b6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563887401.9","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-LYGXyK73IFPBnJpc5vcLnUfC4CkdOdATLWw+GOUH+he03FVnMNikm2f6BbChHUtFiHXZPJmeSXiVIVk7ZDUrSg==","shasum":"988ad9f29e95bdc2157775702979b2f57a4b8fb0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563887401.9.tgz","fileCount":60,"unpackedSize":952729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNwdECRA9TVsSAnZWagAARyEQAJEV51zfu7yEitGADYKC\nMT2aa1Cg2Qp3rDGlkl3wdrlv5AKDhw5j+dedYzv0oAz7hXKHLI0X1PSGXp10\nZrvUrvDilxadG1sTZJsuISlcemeEhyc9bjLPlZkw8GxT5nmxNUQx6F32Eh/C\nlKaxOl6f7DIjqEafcoTlG52FxJPXEaT04E61ZxpbuGy3yTIOAo8FHeNgPbDQ\nY20DJNZkswjs9skbcXfyqrzJi4ogOtGt5y6pooKD5pSUV4pI8FW/L6yNxBgn\nawn44g5QhwiRcOnxftJweMXZHMPZz6hlFz0fdkuYF21Fn8FnPgJNKd9yVpm5\ny6yS/XFJca+6tWHKzPxZ8RzOF/SInC5Feiwhrxf0PXGmAmgriInEKEDxFMsB\nhKVJKobUsE/YPe+jXM+E35/F8Ylj2LgnqZ+xPwufzH9LnoUjWvp6dvXiUJP8\nIynHk8eN0LUHorzAy52cB68hUkC0UNgATPUC4J935uKXkIYPKTraPLVGxrmP\nVkfbsvMGYkV+VAjaKRY1epqy5QNuyyOdlK0h1Pdiq/nXVKcNcf2qNYDs3pBd\nFyIENsWF6y3Kc3MR4vaB6gYsD1sKHGN6jxIdUA85kHImQ3MwXj0/uW5ZOX5Q\n9qI6BJbdAna+4DLplt97A5718rHV3hzTqPduXkGRFOxU5Mh6k5D/8FcU94qs\nCVsy\r\n=3pMC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICUVCrJlz21lWS3t/T6mzOudQ3aWABUuE+VdLMQkwlerAiBSMwZgczf5Z7NLjbTGCOePSkLd8nO25Kendzhzpq7pWQ=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563887401.9_1563887427233_0.36203671109266833"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563958227.10":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563958227.10","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.7","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1563958227.10+4a016fd","@scalecube/transport-browser":"^0.0.2-alpha.8","@scalecube/utils":"^0.0.2-alpha.7","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"4a016fd830313ea094dc55ca509654ed6d6b15b6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563958227.10","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-7KhtXyfiA7y8i7FLlaQ8qSKu+UhZFY6qtbPl6mW7sTtf7wZiVO8TySoF/R2BGkc6W7SSS/sUlcJaUzcpDck2ZA==","shasum":"fb7b1e317122bf3e7d56972761b78ea0f60a85d3","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563958227.10.tgz","fileCount":60,"unpackedSize":953994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOBveCRA9TVsSAnZWagAA5nwQAJsYdD4PamV+bCksFt6R\nBnVCeySe6SXT8x5+RPl42CqDeoq/GfVJbdeQRwCKmQmlIcqwjowNV1ZIFcvS\nX0VCxagf4fH6O3qft2RnsHS2F0t1Q3s94161w1rTFMEXTdLKShuFakRPJ4Vp\n+Cn2s7+pLH5rtRdqVN65WK7TUS1Vhmc/9U3Dzq9FS6afOObzH1OSu+AUwLXz\n1+auRoqZv9pD02CeBet1XHTOd6HXScpELOrAxPHlTuiSMdlRGnwanQC1nbCH\nxXgw5kfe5xHHAXtYDubDsjzAMKDWV+pBfnQzBkAwmnkOcoTcPDG0cdF+D7C/\ndQ30QK7/XdNWiCBeZBgYEJ7zkoYKr99ZD2WCGu3Cj1vHw8XSR8BAQ7+GbMAQ\npIW9uJajHTBveEEmVm63OdRbpESu8EYHDCYJ2eTkGW8uTmgRIj4oBpG0kNoP\n3YDUVSXoCY30egWVnP9Dcz5WgWMfyhal3ookDjmT1AmdX2E/dBXA9oq/4Jk5\ngibCyDo7HYBycEqBnB5sZ3OcIqb6Wy4RQdXcWkHATccafto7rhezzCBRoCbW\ndw8KluTbafWdbCeC1a6PHO7FztYVX10y6sla/qWw1gHKkDW8VuZb7b3qvDpo\nn9pTW2spnty7FCceijU2mJ97t40hx+RehXzFCoIP56Aos95YWrxsnxRoGVrw\neaNB\r\n=HN1N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmoHYqLDqmaV8GsGbrkdjDbPFKSAsj56xQ5phNF2e4UAIhANpJ/FbSfSLf1tkSakOLOzu8eYN51v9cbrCF8iUb4TQU"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563958227.10_1563958237908_0.8999377059537503"},"_hasShrinkwrap":false},"0.1.3-snapshot.1563972477.10":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1563972477.10","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.7","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1563972477.10+4a016fd","@scalecube/transport-browser":"^0.0.2-alpha.8","@scalecube/utils":"^0.0.2-alpha.7","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"4a016fd830313ea094dc55ca509654ed6d6b15b6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1563972477.10","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-kxc3n2oGfca4BhDsgVlwqlYneZCB7rCtQ7jcQ/lmpcKgATXUfZBm+wC4mcpwOB5ErvlZeFZw7XLDLv9f6xMmvA==","shasum":"5d0896f981ce43079fd3f6f9b59369ed5140c3c5","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1563972477.10.tgz","fileCount":60,"unpackedSize":953994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOFOJCRA9TVsSAnZWagAAfj0P/iDwM3uQR48gQ2774RVz\nrchG+mTLpeuF3d1OHIrrmuZvRLBUlpDqbQ8J+JaDCh4zH5+GTKkVovY0zagB\nO+BMSB9HY3/+Gug1cXGkNDtI7NeG82QYjyHv60FRGHmNM0rIcSnyl+aSxjAF\nIL0th2kf/B48C6NayPmuBLnjPAjz/O4chrL2/cmaiywkUP0qo1Cnw7eG6kC2\nsz7hunTzz9dAnw96ZBUXMU2YOnhBhc1QKmfiGLWHKLdxz6xjJ2mF8yYqjmCf\nUSbuMcR0dxVOmvx0dDtpSUnWYiXRHdkF8DnugENsXBpixAkIz0X/t1jjgYh7\nb2IQdwyk3F2HSJgq4c3zbe6tgTeYErZD8aNbFQuui2LBEvx7adXHTZTF5R3o\nrGKe4YpnqTIAKd93hKXt3lsx31dLp3stFmg8aj06PX9G4lAZ7vLVizJo0Ehm\nJhzlWC5sbtK9uXvFbR4dHpUoX4getM0BCEaO1w3cKHaqmO8syHvnxSezkZST\n8bapCJOY6ruGAgAHwIXWPxCOWxPKOWSHr6Lhi6PQMmoOrq22V2uX6EEIyWua\nGCzfs1F8hkKgd5CvbJeiYKRx+23SyBGeIAr2cmcSukA6uIbOaZL8gGqiDj9Y\nYBHE2LxsS3UT1W9ZjOsuTScrjQF0iApf+DbSZNdMhgBe6DULGO3h+BE1J9RJ\ngpIH\r\n=vzGG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDMjFG7eOlSDzSun0kOBRxQeLR0cKAOmmRSxkIz/8iKSAiBOtGq7egLzVSgGA4eRz8Tt3D9oLTX7NDvobjQXZKdNXw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1563972477.10_1563972488992_0.44855150338955174"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564040660.11":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564040660.11","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1564040660.11+9791f21","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1564040660.11+9791f21","@scalecube/transport-browser":"^0.0.2-snapshot.1564040660.11+9791f21","@scalecube/utils":"^0.0.2-snapshot.1564040660.11+9791f21","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"9791f211c3fe0cfe99396863940914254c4ab476","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564040660.11","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-wiChtgvudKROEVW2Arg1s+BPgN9wcTT8bWXV1myPJXSqp4G6d3SDclcnRI751q1BS6ysaqLRO5ZKImdEiRxfLg==","shasum":"36a97e0f232ec739e7fcde7e205ac011db9f34b7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564040660.11.tgz","fileCount":60,"unpackedSize":953934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOV3pCRA9TVsSAnZWagAApBgP/2W+20ho5yMR2ZK1ne0g\nqjPmKO+ApNAhOsvvHuLWcyRT7MsDBWTSD2eIE+i60+fMkIC6n/+W8p6Fc8vy\nMA9ipptvmGN+KzazzLdwwNnFsvzPlOyks5IC58KcyYPsmkaY9xInltjCD4Sf\nW2/W0r2olmi6feQ2fjeBm+QxWoC3RptZx/3Nybd5bAmNl4lPfSJRqdQteltp\nX/a8r3Bp9ctxKAn+imXrc7YT4GsXVVwS8ecTbfV/3tVfyPe6lF/jC1V2jwlw\nhLcI8oE6kCRs1eeDBSX2esadZg/SE699xMqxdoMWzrY0i+NM5nMJNQxOXQJe\nJ4Es2UBm7ewxfXqiI1QjmzTp0m+aY4J8K4pstWBF5GoOAxuCx8W9vOBQllwP\n/TN37CmEj4RVgJwWYOL7SrrzdWdjl4+Avlk6sJZqdI5hGNXdf/Zy8QTxxjGJ\n7bjBlx5zoCnaao9iEk/fpflZGl0to64+5N6oOGq/ZvV5DIxwdUwYIVeXDlfl\nkQ6JHbKb2QJAkR9sgpqlhG+axQ0+Bh4vJg+HP9QAR3p1XYeHoh0+AgMd6Ucj\nHcFkpjAvnrK+N5R+Lm9Zw3gy1dEsMwiw8s0RhlShIufYzoX96IEqns8okRTw\nqN/dPM11HvyW69xu63mc/7lnsGGEjoI6gdOZ/Yj3Oik3fdIWLhDFF+0gubZA\nPDCD\r\n=eK3q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDid3zFz8ia+Iz3aSaR70dIqWeMDrbqQXA0hc7RC/mepQIgKORyxGzrndj84R4NtzYdIT+HYQymZDBAHqQJ5M7HPZ0="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564040660.11_1564040680880_0.615431890805161"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564042350.11":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564042350.11","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1564042350.11+9791f21","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1564042350.11+9791f21","@scalecube/transport-browser":"^0.0.2-snapshot.1564042350.11+9791f21","@scalecube/utils":"^0.0.2-snapshot.1564042350.11+9791f21","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"9791f211c3fe0cfe99396863940914254c4ab476","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564042350.11","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-icflZPu6zzotOhSxS012Wfp/HS1ODzsRGSjw52pFI3HfXE6zHsRYNMp0Ny9BOw8JuXnyy59XfJJ6eRTvigFTUg==","shasum":"65300e775edb2c4dad0ed3a92bcbbf41b012d0ea","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564042350.11.tgz","fileCount":60,"unpackedSize":953934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOWSDCRA9TVsSAnZWagAAWLsP/07CYtM7eSeaPm2KH+Nt\n1Y27XROH/SyyAj/5jbM+RhjCZI+6vBpqZUP5cqNdZCy3UEO4mihtaN2fUsX0\nzOjAZrPlY15kx8Ly1y5ANU/7JUQLOHjeKCNC8rz/0jvakcoRov9dlWO9gyew\nm/qvBNTbVxLJOz9CC9hlYxa7iUWEIJC5iHva2+9SyPaj1mtO7UPloAIQrclz\nncrdmmpi0sztmzScNQHDNFSpQDUO1w1WIlEQU+2XCPBBqP4IDifEFzb8VzLP\nHB4vwjEuBROBcGS366EyDpZqtXpoO7YwH5eMw5x1w7GBHRIX/BlXtuHxUemB\n2Rn0t0uQI0o3yyHDCibxA5cSXzGOt8cnnTuoytL46yMeQXeyijR9FTfmZP4v\nS9GCG1TG7MfqIgn59T40f1w89q4hvhXZLHNk+uwznd8++7HbcVShKob8xcQ+\nzXsgRI9aSg09Ka1xAJLOobYB9f7G+7Mc6Uwx+n0xPlQdgYht/Bud+W934LPZ\ncaO/ecbdQlERpQtlxKSUX9Bn14QBHn+vbiim0xQHJzU+o4AbjfTpTtAjlQZC\n5YpdSGIkoCpPQ4dPE75oUM8Cf0luzNdLEZqTF1XmV8uIjW+jIxS5lAEfY6Tr\noN+kQdZIzW6Cut4DTGibijHdyLP1EdAewFXHTkgTfOC8CVhY9JxWgHRhDFN6\nyQKe\r\n=usvu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVmYjPaLTNnkPkI1wcguzu2Nz40l8X4xvKbIVKL9A3ngIgObJb5u82bIHXdSR3a1IFpNQXcU4kIf/L5UNIeVrGd6g="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564042350.11_1564042370956_0.4034100278715005"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564048931.12":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564048931.12","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1564048931.12+1032066","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1564048931.12+1032066","@scalecube/transport-browser":"^0.0.2-snapshot.1564048931.12+1032066","@scalecube/utils":"^0.0.2-snapshot.1564048931.12+1032066","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"103206641703eaf29aa4ed81c3c2177b07178f49","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564048931.12","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-8DajgPEHLaNklD3tQ1BzQnI2SyZau20T6IBy1YoUlzNIdFcEcDcvrlVn2hz4exe4j5Q1WOtgajVQI3yodeeiUA==","shasum":"e59f0054e2cb427b26c6964626c434acf4f4570a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564048931.12.tgz","fileCount":60,"unpackedSize":953928,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOX5ECRA9TVsSAnZWagAAOqcQAIr89PXRV8quha6C+3c6\nCR+qI8+gH0O+GKAKYjGExlr/vKbv/o6U9gF280mZGPkJ5+NZnNBlr8RlmTKk\naJiLyGg+azb/Xig6n9m+0CaQrQphfKCC//26NCKx+kPTDmQUpYr5yx5tgvyT\nBMm+pyfxOYbfVeV+D1ZOGCl9X+yQwC0Csy1onwqbvjl1JOupWyFsgAHgImxo\nsFCQdnTKDH9vapJu454Xnso+JaRWxRWc/DFvX0lFKb7vrh2zGPTcPuhJaXHm\nkPD6fiOShh2RpSQfNoYyWobjp0uZQaDL6vTI7bHVtvH9xDZ8iaoG0unAKV0u\npdklpRss8UXtmW0dAQXdPGGLMsOneMlD3kvmAxn+wF1tavDd6U7f+Kb02LXM\nydMV+VyoKdcfZR/U7EpKTrbo0Za6J001PMUMqigyaE8+IK0lyPsTBa6BKd2/\nQ1eVt2BWc6CSHZpVvRSzniUfnxnrmN0uhqOMkS9mbDXzQXwdVm4c5y8HTlra\nLNBLvCWjj5uYFamOauPEV8u0sy02UVIqNh5SFXXtE4moHXfoyWeaSKrUY9v9\nIscgCr1DgyAY07Np6c3iMNgoUSrbZgjI+9ctsjfgop5JwuTnEru0AzIUQmMV\nW4Z6dSSJ6STREiPwBNf88rlFoNZ3MgKVoDiqQlqpu0trYy+d4PdTgR0778cT\nBcjZ\r\n=miWC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEhygNLwY807xlZIhws8G62AA8h2larE8rjyG2uyuRLRAiAwWVhGiOPRIKtWOqshifZpm968W40hwEaF3vs7VGi3wQ=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564048931.12_1564048963565_0.2347257743386253"},"_hasShrinkwrap":false},"0.1.3-alpha.28":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.28","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.8","@scalecube/scalecube-discovery":"^0.1.1-alpha.12","@scalecube/transport-browser":"^0.0.2-alpha.9","@scalecube/utils":"^0.0.2-alpha.8","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"e2f5e84083dbfd8a5c15f465c191335dc539472b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.28","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-b10smRYMpJOvjzCPpXju2fucwdQtSf1+vsAEMCzYHc/3sZByxvS3gYuavKIBvxNO1/5nwliZEUH9boS4d6fg5g==","shasum":"c9c7395280627d370b2f21e56f8cee3308653375","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.28.tgz","fileCount":60,"unpackedSize":953815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOYBtCRA9TVsSAnZWagAAWywP/ReV+3AUVm5kS6rMuZd6\nUaCo/YVkTZHBZfzYuKrfZ3hdKgXnPKSs/8lblbzJZcZ7Ua4nth8JglRI9p+f\npnaRX5/hSqFQ90XBEjj7aBOq/GSOpJKik8Lr2oJRAJVtA5W7xUbNczMrwjab\nThrRqc6lSEYt/sOi4ZCpWvIvBYrdnEPNMIUJhuF0xIljsjw4x9zp2271+9ou\n5apPctIO0aPxb6DZ+en1pALlKyXXjRZHvpIHjEMPUfI36fNXRutHvJpKOv3y\n/cjLUb0P0gq24xFhmDPQrcFZ1whLlSojUXdfwwzJ85FXB48CO7d8OTBzYNS4\nqEZrN54oTSaVfQoqFh1flDRpROgUCTfEVDYjL+FRNFfpVweekoZJzuG5KQRh\nIcckvrpF7+rNdmz3EGgBLQ9GfihcELdL+OqyNgEV1irWDON1acjKTqi+ByyR\nBrCFvghqzu7hub1ulEucBHQkV/gX6LTijNqb6UvOVkYsarmzhWVdbjhzl3dO\nMiDlqaSGjA8vEXCm0ohO9P/Ko/THL1BNojeVvv0YhD/oDG0tN6qhL6EV2xx7\nu3XQTVAvSeXD+5BBER13uYI1IFy1KfQ4jJFiKFe4cqyZEgNEURqeyCpCOk1j\nwJa9sMYKJ7w9AVnnHfeSZ8GcyBBCeUBVl43VayZNwmJp2WTybksg9XhCRW/P\nEH++\r\n=Pk5f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICM+5Gnb+4MW29fwH2TxI8Mu3y0MyeJw+G4yg2LjO1J/AiEAgln/N5zPsQum017nqdX0//ECZyTdIn20BqOfkjb9n0U="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.28_1564049517082_0.3064673623862926"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564059044.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564059044.3","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1564059044.3+81b5e50","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1564059044.3+81b5e50","@scalecube/transport-browser":"^0.0.2-snapshot.1564059044.3+81b5e50","@scalecube/utils":"^0.0.2-snapshot.1564059044.3+81b5e50","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"81b5e50611f943969e2178d9b10cd8bc9c35521c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564059044.3","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-IB1sm+hTWgLCPu7TLFzeY0Jpl0Pq5T7xL3PiyploELe5GFE+FMgqEdoerSsORpshAu+IQYNiolLF7dQpA72E3A==","shasum":"d46bf2466947da6b1e60cce6ec4860e685c796ef","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564059044.3.tgz","fileCount":63,"unpackedSize":958244,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOaW2CRA9TVsSAnZWagAAKBwP/R25tiebNb8aYcg5jzOx\nppeDPnLYbgEwOIuVYiEgb9lkuQYGfXpWyK4NVOBesXJt54QmixDJYVGN58VQ\n7fM/hl6POwd752tMmrx4+GTvUyuLbNf4rKGbTwOGgZcGnnS1jYXyq1jdgSK+\n8D6+sbVjKnmIbga1YPLnsOtAY547nWdxjMx1cTus0FmaFoO4NR9rP1TROU6l\n4Fkd2xPX1pqvjQo+n1hXe7/XpGx5EmHITytbSz22xxvm+G3rASRIaFYUahP+\n+SNNwdiugHlIJoJdHjXMq4FGiCqhu/DWOC5Z/zStmefCP/qr/IQo1JI6+YLM\n+Y7Kk0xau75f4kf2l4quMKCcFKxlwQXm51Jura6+LgE3QFJBOOwhZXOOuom+\nTbPvlb9cM3nYlZEXakWclcz4UZDigT5b3g0FX0nF2fDp/JiUMuEZYoCDIgs/\nwVURe8s8VqI+1jVMC2+L1R25Angf9EV0X/hkFwfEZ93QXZ2j6Z0oKfjfmOPm\nOMT2DNuXEf0ki+xvm7WUxr2f5OlIm5pXHKJ/Kgpux0uHi8bFxhz87t/DYJAj\nuNNWOhrEMdL8ISxybqjUoLa1FqyStLsobpbdD3vXJWW9Z19LOI+UF7YloQuJ\nDtToGS6PYcvgQgYOFSI7mYP0RqMdCbJBQlTf7ecO/LPykeO3zLHsXKPftXqC\n0he7\r\n=pI0o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDs3Jsh/mGjEaOhUp/opNvNeWOZVs1qzeF8kh5a2+YG1wIgM5AwT9z2doYzIj4Kuric+K2rVgXqTZ+mIaAMp8cit0A="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564059044.3_1564059062000_0.7575759924982701"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564392337.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564392337.5","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.8","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1564392337.5+ecae863","@scalecube/transport-browser":"^0.0.2-snapshot.1564392337.5+ecae863","@scalecube/utils":"^0.0.2-snapshot.1564392337.5+ecae863","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"ecae863d396824245632a0addb2c087511b223fd","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564392337.5","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-Yv6tInov1b+QDx1vCp8HXd7zS/118mlSmjE0tdSYGC/s86/Ih0ru23GNeIshODL2I3kskTwcEtQrbFD8HystdQ==","shasum":"b6d55228938b49c0da2544afeb39670c6bccb63c","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564392337.5.tgz","fileCount":63,"unpackedSize":957973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdPrutCRA9TVsSAnZWagAAbXEP/iTpryUjlrGXAMjhu8Pn\nNl5XVoGJVSF+ycpKQuZFtIHaYiZtETfsKgELth9j2lwwOF5+sAEZK9w/qds2\nGEKK/vNaKL0jji4aVlrbFOfGt6BgilImSdzbnWei3MMfeTfLTNu45kZ4xUL2\nTlmTvKjqsdmPWCBTFBr36RoicgZ+2sM/4br2F1aUBvwqIlOIaz4sXbVW7TmA\nND9RmjwCh9AoaLU3KfKdzcFyCFsHGCcYFZwh0C4EumGf7sRWe+bJGvAD3CZW\nI/qBpsiM37LHo3VhUnIPXyyMyipdoA5ZGCF6M90WDD7Sxvyaen/7LBUCqMqN\nzg8bE8gN1YtCoY41ND2hGsBXhJIZ63eeiPKsmKfH/ulHTX6mbq3F5pj9oTJl\nkLVsUrzI0yPnJrRtKlZsj8KW3iR1FLSqAwGcLvzXwAlHzn32DHmoPe2Hquk7\nbbBryZWKWlcm6o4teg3AL0eN0xqLhE9iVosd9Ue7CYf9S67Gn5o/oWn0FYs9\nVG0ihdYaSfFvAOJd66q+jGVN9IQ8I0TdgOJHdbq7OdOHDQHkRCrnsr0exE7H\nomGkPfGk84gxrcNnfWpWcnxVJcLc3pkDLbAZhnA6cQPoyA+wzqkMRqsITkVC\nuTIxiGTW18HjZ4ZC0nMcGJDM9MvfDO0PIVFY4G5DYWaJO+XD4f3Qhh0zDRzr\nFAIF\r\n=CfYc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFoYfhyxLL3irWtgqpqG+3isPNInOGZLrf/eJRuLdnHMAiA9rgM8/AYgpBh+z4SXWvYIV5ZOael96VQwJkKitcpmiA=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564392337.5_1564392364450_0.7773311595370431"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564407023.36":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564407023.36","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.8","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1564407023.36+d264946","@scalecube/transport-browser":"^0.0.2-alpha.9","@scalecube/utils":"^0.0.2-alpha.8","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"d2649461587c67fc5bbcc024eb9b38b07f5bd5bd","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564407023.36","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-+Gl44gqUBZtxFN4O4TZq35k4ty3x3NnYw28LYl5VQ5ECdm6KtHvRFLt6/s8WbA9CKq+SoPqP4S8fSqQMSPsRoA==","shasum":"394e969f473fc81d8d405979e16eb4d0eef71c1a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564407023.36.tgz","fileCount":63,"unpackedSize":985589,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdPvT2CRA9TVsSAnZWagAAtZUP/3WcpLH87c8eEOUK34Qa\nvE3Nb6V6uQsihaOXA963nqCbA0GWrmuOZUy7qMGFNsoNe3+ivWvDcE4k1WnK\ndx7iN75btyJk1muPlpbfRVdJT72XScj/vsiXdcbtXJiBXh1sIYSSmoqmyKgC\n+PpeVumOD0Az1Oc+w6/a4ViY7no6dRv6BAe4WatLHnwY0a0zBdIeJ7u9yHiC\nZ+u/BmDeQRfgYdCz8cnPeidxG341Wc3NpIs0BUZQWCxk7nfX6YvHdZiIGIS0\nxxGA+czow7AmJvfHuXlN7b3BZdw8LGiDvkAooZ4iGv1bsO/HVAhi7sDx9bOm\nzzRFYI9/BD/a7W/rQn0zBawkvTIoXCausdZYdcUVkTHFPZnRe8eJZh0Jp/TR\nrrqLKRcXwIrVFR/laRbKoOjpoOm8xdR0L6RY7ZqfWb/8Z6jBRDAWjGGWlh0c\nQYr+UKuR5ucVmDJ/LVykcd6vydBLcPE3GVrYG2V9rqfCPev0i1OEasdOgs2M\nMZrQCuvkMNi5N1/leRsyVbCiKkjBx+9IZya857aOxGL0KH9exhwTa6oevMTt\nQ0yIl3tSM3ACAsmTWB8Jvxfsik6pQ/ZwZ0x1jL0YDDN4ub0se5mkyCQk8Kfx\nciHG68GNiZYijnnqX51xfsICW+InihkN8x3QlQaUJrD978sJpC1jVReJjfCa\nV6kg\r\n=KJbl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3MrEa4OILd5wTVR3gM84tQTOJYBaIOfXNByyLTb8D5gIgXfpqqzg5ymlvAqus9QwoqrEFHlaWSlTgC4rmHBZazP8="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564407023.36_1564407029709_0.06392501610185741"},"_hasShrinkwrap":false},"0.1.3-alpha.29":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.29","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.9","@scalecube/scalecube-discovery":"^0.1.1-alpha.13","@scalecube/transport-browser":"^0.0.2-alpha.10","@scalecube/utils":"^0.0.2-alpha.9","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"059dbc5d4f785e0492ad49f6e6ac0f4f69509962","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.29","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-tAMKS1t69B3gv3t/20QhDGkDyLDdY14pSxN/yQkZWT9UBGFcIfvhngcQPiioku2eQnzg0jQsa3mf2x3Ovblklg==","shasum":"7735bbc3e6082666c7e592fd6cfef4af0c493f69","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.29.tgz","fileCount":63,"unpackedSize":985546,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQDMSCRA9TVsSAnZWagAAAasP/1P+m+9tS0GWOAYJfzEX\nF2dcOk4E9HnOo29vpg5oFczRYjOoW/HucghH7dJGYorboq0ax1Bc7l4veTyd\nZzhmoja//xWkSZXqw/1oj2fWr6hmuPm6V67x+SsB6B5Dw72yQiLuEHoB3oVI\nNsVfm20OqwKOh5vmtO2rnBt4M0KwR8TPQ43sIeDsf8Zhd6X9PZk2wyN455LE\n9IC/qa/HFty0fV9zguMCjFsa+IygDpKGD49aJkeMQmlId0cO2BQ9j+EPLJk+\nfXlHH+hQMqt4Qf2d0wp7FUoYYEJFtESZqOx3fWWm2MIvQhQxGZ0p69mYjM6C\nEZ/F5IhiviIx+MseEHNS8PIffrDMgeoGTH9h82EfjRtYK2s9tAsbnXLNLIkC\nhtr4KbT4uxj3LMudDzh24X88B8jHc0MZNP4ksDHpACqG/UuFbgCLKgTmlHfX\nOqfNu1cfa9kORtBPQ7rDfeY+auo+K9sug83t0+xfpgvADChN8EPEqqZDWUTh\ndvkhhnz5iUo0UMwFAEvmikizeDVg6zc9ny3X0KlxAQryktKEPwVzue+WsgQb\ny2qY4Q8WFjDXL04jSpB6aFNUQTCl3QJfkbwDr7VZKbdYYtvIkbzD4yZT9Wig\np67vP3RDqH5yZAdM9XxbcvY/RQ2sWgBuH5fW/z+opJG9XHdeGRvxpM4cu7dH\nL/HY\r\n=KVeC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDpEY2e4sJqZu2V8dz2tbpDZ7pNgaMwVGV3uubyDgEGHAiA0/j/0RhxQlEinWUZ3dfAX7LWO33Xx64jXSEjKI+RIsA=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.29_1564488465486_0.5395729311864441"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564496780.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564496780.4","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.9","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1564496780.4+72d7e01","@scalecube/transport-browser":"^0.0.2-alpha.10","@scalecube/utils":"^0.0.2-alpha.9","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"72d7e01105f7631a18bef520affd66f8d11cf05b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564496780.4","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-aGj0ht6o8eLboj3sixf9rOSAEP6p7ocAByWVfz0gTXQGdIyP+89P++Mr/Q+VH3STw7FaFI/fHTGRgvf7NBRqrA==","shasum":"637b54c1f088462a98bb26c83b47e3f37fbccb3e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564496780.4.tgz","fileCount":63,"unpackedSize":985742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQFOaCRA9TVsSAnZWagAAaG0P/jiY5emk+AjI4hrYv4rt\nnip+p2Iy/ffcNQ3cPRGCY9caTwgvIg1E+T6LYDykBda0dT+MQdXD+xClKxF5\nxliWVU2TdQRiEGFSJ1c8xjosp5NiEBjS62zrZhOiuun0lze7lrlZ4ps9QOdg\nfFprVrbX0ept2E8s2oPG5zFjKCOTIRKCQTU5+WQq1aCZGHbxgDOJ/QGGnwvm\nbzwBFVlNEU/uxvZFCqqC/dDaNMmbaCX97cgRcZSJfMZpjfEk4hr+qLpgV2tY\nYroBHu/mJNmLClu0g5fSrH/8KTd9fmyXM6VW4J7Q1FPuxmNFi9Wt7tZUH5YC\nfdfTYDMtsJiS84XrduVlb8LL7RkIslsZNEBcZAnCskR1OEPN5XDBa6HnWkFF\nm/Yfvn1K56yOxfnsZcDHa6N1lE9E/sASarDSc96F5bby/i4EfCmEGQSsRhw4\numXvj802kTHFv89FisKcQihkPFc0reXXbl9t0HGuXFtSf56cYaHs6+XyjRwX\n1UGojCUoV2avrCkyVi+ZmSYsGD/XWvvayNWFN/7ogkRLol0/8I0/1+ot8Zj1\n9gMULwGzG3m2T6/EBRtoZTKy/6d/6O4iLilXGNGmdIA++66ftB3I5UAgOqf0\nU2Kurqpf3Pdr+9Y6HP6faroGQY479FzJqZPPxiCR84Job6cTBi8o4lSZgDpU\nwYxD\r\n=BQNV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBt6N6nZtbsMXgCBxsK9yoGc5WpyB8/LIRQRdJUi6Nq1AiEA5BWONK4nnP3BsrfO+MAYZYsrtlGUuSqpf15SNyGYRgc="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564496780.4_1564496793834_0.11307558826182884"},"_hasShrinkwrap":false},"0.1.3-alpha.30":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.30","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.9","@scalecube/scalecube-discovery":"^0.1.1-alpha.14","@scalecube/transport-browser":"^0.0.2-alpha.10","@scalecube/utils":"^0.0.2-alpha.9","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"20e5b9ce91b84c3976e02d698033db2ac975d9d4","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.30","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-b1nupOrMguIM9ybns+Vf+xrqBUP689/59K9Fs+z/SzklVDwrDGOfivr4YdnlCweTyzAwLwVPyJTPLVYICjBq4w==","shasum":"c871825b8b79b23eb62644d5471e37a26386b92b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.30.tgz","fileCount":63,"unpackedSize":985700,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQUzJCRA9TVsSAnZWagAAndwP/RCLgdk+ergrkkJRqSXj\n66U1xT76Pf83L0IZObmq3+1A/Yr0du713GkdTyoxwt3rGMLglHnZ34HXayCU\nftvokMx63X7v+R/IhdSuSYmPZqMrzatz5RipHtut2qWUFR3aUmgO9V0hi6+x\n/RYNFtx/b2OWsFeO2zNNk97JxcllxDqfU1gtDskwkBFdxCI/Y4HA4F1D2iIz\nYNs3KgeilhgqRKlAtV72a+P4R92LSNSt5nzH8NPMvleWzWRZQvk1xtf1Qqfb\nbn0WRKblsJK8Mc3koY7PH3oUvj0pOHar6haprsd/ATftbUiCGeZ2UleTZXKd\n3KBtT/jO61rXrJzeljx4IBuLcxEh9znm0wjQhNk6EHLDMu9h1en7fove9p8/\nVR+7gcSfWsV5x029/+Mtjg3+shV95Buokx7NgXFXLTWwCQel5lkbW95tGsOB\nj/nCRT817WwbFCc55FObYBtMnQ8KDoSI0djEfNpETnrzbQmBqSZ4InRPhxQA\no83DcdVZtmUEI2LoFNcYiobb3C+gPs9a6l0YloaefqqBsRiB4Q6CkZB0ZNJd\nCJ/zLi/KfCShM5wwbkpvkTSuGLE/tgKHdZ6Tjmwgx6vVtvyIy7S32CYWUE9g\nsGgIetnVNEJGjN9asMnLbYSfY3HzWBHohppNqJPWKxVEjeWBL9EsJm39QvTh\nDKlL\r\n=LoDN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAnuctfxzQZruwiVL3LfxMtZB4dTaQzofObv4OHSGyMlAiEA7MkizkOlrtVCJwsO9IvHKp0ioQ0TL0DktFc2h9GrrH0="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.30_1564560584655_0.6427515107472885"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564563590.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564563590.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.9","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1564563590.1+12a37ca","@scalecube/transport-browser":"^0.0.2-snapshot.1564563590.1+12a37ca","@scalecube/utils":"^0.0.2-snapshot.1564563590.1+12a37ca","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"12a37cac94326fff47b03060f1fc7905ad5a7bee","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564563590.1","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-1WP8H1nO14eRNp2aX74JOHbxCCQLPPeqsV/M6kw7q0VWP4ARr1uBqfV1FHAjVrFcl/VkFxBtI5AUAzn/89De1A==","shasum":"4a03d120c4b112d176edc8fdd85111ee84de3f2e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564563590.1.tgz","fileCount":60,"unpackedSize":985693,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQViYCRA9TVsSAnZWagAAAEEP/2qS5Pqi+l7n2aVHmgHP\n/QvJTW91Z2eobAqwG8R/H2ESP6SCPOWzA1NqZ8TkoTudePSblzC0Dzf3RwwW\n2JZua6It/KmGpP/2fC/AdWhZk9bPZqA5AST842t4wfPvJzYo4gFK/XXrr2iG\nh+4fvuElWrdYrYh0ffRi6EtZC2Op04P/xMBt13OWhHDpdhEzpF+Sfief7dZy\n64IAiX1qhgyK1Z6Y3yK6iHmzn9XessoiR3LAFOFi09fXK6AAvIZ7FTGrtP0D\nuB6GwgOmtAFNd1Vn/+UwrpxLVsttjFP8+T58zeb7iBavHRe2sN2EOIk8lF1k\nPuK3X3ESfHHZYi6sZnThsgmFp/jQoTV2PA9NYcWfqRflV8KBZtzi6cKDTSFq\nSv3yscI9AgRv8BDm1baibDl4DYLrslwwwRcnCzq84KbwFnBisVjtx5BPhyqX\nDEQ5vkUvvP0bO2Sx2W+u7Xx/+fdLE+lZ8+OTV8K+wiZSrsgNaGt/7SWYoMvG\nv7gTGaLwfOZZNwvsTcLl28CbQhMsLUaMYK8qbadJfiAsy0Okx+a3y6J7Z5qE\nV0LQ1jpAj75/qh7syxyi+u775xg1SEw63mmh5UFBYt71H8I9DPmlq6vZYwUM\nG/HFBQd8Bzk4PPVMW0hct6qe82NeLSKU464BeqmXC5cWWv/iktAbt6FT+KVY\ntVZb\r\n=SsLf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGjYCbksr0ghaOIxGNU/UGJNjn+dG2TIrvZYWw3xJcZTAiBiXLjznRba06xT95qrLi3V7uueBNaaLiri1q6VM6sH4w=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564563590.1_1564563607505_0.013340379372092537"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564575050.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564575050.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.9","@scalecube/scalecube-discovery":"^0.1.1-alpha.14","@scalecube/transport-browser":"^0.0.2-alpha.10","@scalecube/utils":"^0.0.2-alpha.9","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"a1c72472de47e318a5a7aa57011e0f48d65b0792","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564575050.1","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-YisfP8psaz8Kzs5f4762/Pls0tdFeP/rBR4T60nrtTv8HYvmTHzCEaV7A/8iyuVUvctM6T2QAlZ3XIpIjkfO9w==","shasum":"023894133f658beba680699734e2cd2f24cd7c47","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564575050.1.tgz","fileCount":60,"unpackedSize":986032,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQYVOCRA9TVsSAnZWagAAIlcP/A94sa46YPr7LlNJmsdq\nL5KnOHV18mCSb5cZi3CbIkJT4IGhPOXQ9vuf/A5GOSZWAyVPLDkbtOYfCwV/\nolMaokAluaj91114cwC6sJuqJSK9pKaJtnBUExC3ZNZHETtmbsM0E4oc+dGw\nEnXAomErJ6/2spaqWUtgXZIuksTbONtSB8AEuu/Jk5ZPZ7ztT3O1gZANxnXV\nxRKY3OYSL05fR9bW1KKVI2BokJ2SeAy2qfpouA3+d8NN5LAdrVHv1SSVy88g\n61eFeUDmhUxxKEgdP+qIRrvCawBdh3USxVIYw1jQoUw1Bta9S+j0JN4C+kEF\nqDd9xumbKH0gx87llr8KDDDt05KdViP0Ae0lceUIj6whVcpXsKx2Cqw7vGVO\nDgHi2tLq0Ux0QfYjhtGO88Rv882O55MVqGhn0etMZg4PH4tC1JhUhiBOtbhV\n4cVuLjVGZ6C/8Es+s2SkwegiBEXco7fG43kiprXonZZnwclltwSeTdKbOyDY\nkiSBeh7I65H9Qhi2kik3N3ZD5q3vQlkUdtRrf6yykNBz1N7I0T1JOGpzpO9c\n8rs+aTSAP/rsf06g/WjwDqqgD4HxsFwzIuxNf9Ned7EdHzOUuqUwE9JXKKWT\nyenMeKzueMZXtmpi9ZpM7lOho5iIdFOB7oWLwJU0zIQrqGg8FNQ4hVW9ytLh\nmC40\r\n=cOHs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoMt2XZ9uz2OXPMyHalSstvGVOonPHljsVr9V6GWFidwIgCgsuplJwvElado5oKMT4y/k98jV+cMmydxrvSRsWsu4="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564575050.1_1564575053750_0.29234343126772355"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564576982.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564576982.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.9","@scalecube/scalecube-discovery":"^0.1.1-alpha.14","@scalecube/transport-browser":"^0.0.2-alpha.10","@scalecube/utils":"^0.0.2-alpha.9","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"a1c72472de47e318a5a7aa57011e0f48d65b0792","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564576982.1","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-bYA82cQRGrxDuna7j1r34EMCTk0cUrC+pJtFCFOumaYvIAznvxEQcarSfZLWsH/eI/KtRUka9zn8Y5HhpbdPcw==","shasum":"db65f14c0aa323b54f4b4d1bf072c49d293510b9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564576982.1.tgz","fileCount":60,"unpackedSize":986032,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQYzaCRA9TVsSAnZWagAAB1sP/i2QWC0p80Ka0ODTAl1p\nSG/HiRSOmB3v0wMlRJFuTg5LH68GW+hfKo/AiZ2FHWr0c5PEaVlyBvUGQbh8\nwy+QSrkWqGlZj/BcLlIySIyaf4oNfKjqbuGxRK9r7NjGebUn3wQB2YE9+J8W\n+5ouOTglRldO4zaCZ+Tm9tatJPsG4dDScAXqa4xczGWfc+BZgbAE2rEBBjXh\noj5r/36h05pnssrRISSFgTaTNcPLmhvSFzAdwnaBgT+UG4siKhDiL71mYDNy\nSiHmYDNcVFoB2HUVPwuJ1X+sy+qq/eYv95iWajRzHdX9ltMo57mrv7sQxCJ7\nXKnCMSoP4D637mUUU6k2pDLgR9FFke2OLCZihEWozKoOZrbVEsyat/m4fCK2\nxt/59LcsWx/P5ZmDE3GJyiXOPMS3GmtcbWf0XR6RoWYFukxwg6RlXIawkG63\nvFJJSnH61VCa13eXsZifj/LLvHH+rTo/wFbuAI+qUf2S6QYjQkWljcAX5Jz1\n4CKz2qqpWw7e5iui90khWK7p3Dd2FBmwYnm8JoRgUTrHIWaJjHLabDvefMZw\nJ48PkofLwS0CLjBER+LnjZ9G4mTIgfTdAyl1M/+m6EhdjNktdMtk84pNkX5M\nCjZI2xxBNO5Y58tyDqT1iSphEbJtFvBE39e0BV+wnbpIZ8RESC4BzM1lVkPR\nGd4O\r\n=tQMC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD6ea09AqZZh4zpouD4HAARHF3Ho3z3itxGjw7PTXBZJAIgLZr5RsrJgzeiR3rsJitBXSMsR3AGmEHoJlWlsDFaOTM="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564576982.1_1564576985458_0.9567736191143394"},"_hasShrinkwrap":false},"0.1.3-alpha.31":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.31","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.9","@scalecube/scalecube-discovery":"^0.1.1-alpha.15","@scalecube/transport-browser":"^0.0.2-alpha.11","@scalecube/utils":"^0.0.2-alpha.10","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"2211f64b4d4ab0aca1b3203260136cdb43c9a192","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.31","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-ok5WqP5jViJHvaDKXSaV47F/RggUXWPQ/dFH+EDLOkl8grO5kOgIzACK22er5jOfPx+3xsFrgrPdbfG9akhD2w==","shasum":"328d8f61d74f06989f3865936fa725a130ccddb0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.31.tgz","fileCount":60,"unpackedSize":986012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQY7xCRA9TVsSAnZWagAAjJgQAKUT6K+xdBaJoWlWDLls\nRlAAzPXM+k7SOjPQj0nx28jyWcG02+ho7alg52+x3MJe54pZ6fctAG41VQ9W\nmKkMaQA1Z8H7Iv4AHcXq9YZfRqVs1mHjTqGdYT82QG+9htsIyv2LJNjEwp22\n0KbjgQuDMtM1SRUBeI5WOGlF758c7A0mKLU7fhijsTWuD6UzIP1lgqi86X6u\njXddU5hbP7Z587VEgPje1i2RPKeEMphw9dVA+Ix6h75H0GnYiJAzXzCuTs4q\nsE2kP2rbcUqKNSadgS/UWund9WXgKwIurw9Ot+Mb3b2foMBIwQuesNE/AWY/\nyJo70cxGojBdGjrEOczq+KqM/kFcdmEdo/i0aYkmtiq/sJT6X7YW4GF7xe/c\nGQeMlISQ5OOQ4ibjtHIbTsUZyW0OlNv86xQ5zHJAEiGI1WkH4OadiDJ5y1mw\nhG2vh3A5r+cCCD9d4TuO9X1V1ezl6DFW9HTLNjv9D+zGvf/vlzvsNF3RXzV+\nRN/pMZi73g7dJtoC+d+b8FV/EG6M3ufIHafVtPqVPagnxpLR0Ylv1cD9pGX6\ndKYrHf10b9c5XLypBxKkZubmLqfz6/BOxMD/mCH258zNoO/MCqY2T8sKWQ5R\nx9X/Kx15Hkoy4vVSgiKesw6rdCztKCKSZMy3OBXN1BZBcANTmL7ANfGJ2TfE\n1rK8\r\n=aNLn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBVMVJyhPxTGVXhu2BFl4vmiZHtKABjUPPwnzFJJNqy8AiAm8tbUlWKqorGaF0yG6ijsKRwavWlgpQ8T47QtseYDXQ=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.31_1564577520813_0.8481222107458257"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564754630.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564754630.3","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1564754630.5+6ce815c","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1564754630.3+6ce815c","@scalecube/transport-browser":"^0.0.2-snapshot.1564754630.5+6ce815c","@scalecube/utils":"^0.0.2-snapshot.1564754630.5+6ce815c","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"6ce815c3dd8f3f98654497373a559f3fbcae6e50","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564754630.3","_nodeVersion":"10.16.1","_npmVersion":"lerna/3.16.4/node@v10.16.1+x64 (linux)","dist":{"integrity":"sha512-77O8P1qAOS78rbWGCBqSy9Soug1dhXk4jYrALT131PMDy/b/kkfhLmWTDEJK3IawG/UaVG3YCifGo3AhhlAGKA==","shasum":"f95795a639e2c364c037504e5ced2ace2ff913ec","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564754630.3.tgz","fileCount":3,"unpackedSize":16376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdRELoCRA9TVsSAnZWagAAMYMP/j3HYzQ2Chr9NMyp2kfB\nqG6y4LOoI4PCDB0RMmehN/KymFry3bQj0bbZMZPbrgLps2pxIkpqgUZxgsXz\nHGgAtbrcdFT1h7b6JIXp9HOmwOOt3vNaW/T4U8GGzDQu1fnb9EetT57UoFHa\ncRRX7Yz5RgY1lRUcdh5i1HRQFcJyajxeX0HnyhSWh8iEOoGPNhoAM6YMTPen\n7j71P9QGcMTBkka1kKmnuY+zBcE5ANQLEzXX86zwkJ7Uo12d+LU2W+fPZrVn\nkrjThrOiGvZj09Qbq6+XqpW0cW2cEQ0xXRKmEJW1ZNc5ZOdws5MNpcddopGC\nKA8lJmXl3kJquXGqvlBq6oXbO9RwiHtVehPrvWD/Aap4zTcBvH7dxdbbxoJU\nL/2d8f1tMTIE3eVlmaiKYJzl6gI49W9DPsqdrfjQ/gw8kxlL5d5WY8j5Gygq\n0xdsoIDosWsviIgMyxb8ygkR+Gq6dPwx3kgUUih1oqY3ifJRRJSeOUGa1wsv\npFAAOMPLxOot9IDGg1VTH5AiA5mNi8B7hYtnf7Tq6td4K6+rUn/XwM6EyuZD\n+lF7UcFfoQECxLGoFrr+XWkPmiEAJoH1E9sHF2UA4OeUXyfg5zzIvtICtbrB\nLFWOe/nPDuyFv4WxoA6piCpDmvoE1hB3O5+iMlp5M1AjnR0q58C2TybGIjvB\nM3wo\r\n=V2Mm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9GtJzrIsr5BSIF7tpo0yWczKUOu+9MtzGjS1Y8VB+AQIgMuIrl0vE+RzDp6aE+zbcvZqGLIfpwnDnrJE/XB53B2g="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564754630.3_1564754664350_0.858841353512483"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564761337.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564761337.4","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.9","@scalecube/scalecube-discovery":"^0.1.1-alpha.14","@scalecube/transport-browser":"^0.0.2-alpha.10","@scalecube/utils":"^0.0.2-alpha.9","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"87f6119f6416e26f6949e7cd82a1575ac5049672","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564761337.4","_nodeVersion":"10.16.1","_npmVersion":"lerna/3.16.4/node@v10.16.1+x64 (linux)","dist":{"integrity":"sha512-l70IUhQFJRgEINe2z+4oMtGuw+9j/Jc9RIGo7Q4UEEIsqaBfbR5b1wz0iMU/ahJxXbJJokEdr6vZ/dGu0t8qaA==","shasum":"c44bad00396a34f4d4cd16d42be1a21ad9cd7ffe","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564761337.4.tgz","fileCount":60,"unpackedSize":984506,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdRFz+CRA9TVsSAnZWagAAOYUQAJjYDZ8bnXdeOzVbsN8d\nKiQ0saFTDXb7CbVKRbz5InCLWby/dwaFYGJmreqilTgTZUyho7oLUFwbAipq\nnBQ2grx1cZlhuzcrzjgFyEOKsA9eIkhGrdPubTO8cQ2ISQT29Gu5wvoKFfhT\n15AhDsk29lIW0vuQJg/k4JDbqpV7t/exUkZvQy8BQRoim+EuYhZSIw4hKEl5\nua/URfDaFuER+JFNzGK8aQIAs2CXKx7yASP6oWmGbjtQIh5ZizbHaMKDok35\nsx10itQ2eDnHh47J3RcDnjCCFjNwsJoFkYgsNp1P7XNpGeWYB0tvqhs5IM3Q\nY+XD3o+fLt2AMwyslB/Z8PDl80b77axUmGDE90dB8Pp8Pj+SIiGC+ZhM1/Jy\nBsYW6oecf2MwbkSPBrt6jtAUiHuOZYYnKN0kxFd62hORnHMY6fuU/yn0cJ+X\nBCoroPUXvn4BrSlsLSmxo2JoPRjBWpxxxczfJz/XS0q9ZWrFTKALIcrVe4RT\niJ5QTzVJqKbvw6a4eAgKEiXQuTJTy2cxF4bV8svKs4GrJQUUlHQfcoNIoXcU\n3lri9LVMq8EEJMyHvCJRJ9IcK6k/IzBlZIpYDiKu5r9C0Nuv4omzH6CSsylA\nHGYDwinWSpYXHHhY5XtJcZeA9u+TxR5rr/NcBxafLcHFVSVzyqCku3LIS1OP\nr0I+\r\n=BeHG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAsZn1y1r4iCzVG1145+FNNJbxuRGIUnnOWU7njFDvIAAiBo3KsAFUbroqm62pXl2mUlPKE8+Lv+DdSTk3oRsc0bOg=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564761337.4_1564761341059_0.9433273603866092"},"_hasShrinkwrap":false},"0.1.3-alpha.32":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.32","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.9","@scalecube/scalecube-discovery":"^0.1.1-alpha.16","@scalecube/transport-browser":"^0.0.2-alpha.11","@scalecube/utils":"^0.0.2-alpha.10","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"7dbfdca530df96bcba6a35f1795f1fa8baf1e98c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.32","_nodeVersion":"10.16.1","_npmVersion":"lerna/3.16.4/node@v10.16.1+x64 (linux)","dist":{"integrity":"sha512-ypS+y6P0DDDievurDIzS+D36zFytwcAz+3QlWH+rqaZ49cm5QLaUqNxKLqMBlnmjCK+COI7D9g138yNzcSlJjg==","shasum":"eb12799ae0089c9fc19954f181d559d693ba4347","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.32.tgz","fileCount":60,"unpackedSize":985306,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdR+CUCRA9TVsSAnZWagAA/fYP/iPblJkMRw4p+ZNIOSDv\nUVMXRBjjMeeXLGMLi+Y4lXgxBeAr9yMs3eNlJW6hlIxHbXklMx7ZQUU1KRXr\nZcaZTRYAT7RxnUpYDDPY+1NIM3P450vlOCLxQHWhcPmlSVA4oRMCn8VA3vlJ\nqryhf2FvtxPisHcOAQJCwKWynUAXF9Sxm1eYl3zBoGf54KVjOA3+ZGRgI7Fy\nRfLRWn/qvac4YFd402kl19F2xaqX4aq/m+qubQYvPPy3XPPt6kR5Cpv93YUx\n2XLQz4MRY9671rRW+CZED2A/sMakI2rzoTwmQBEDSICNDV8YZtB1mwIBYVsy\nQRiEFb9hlKdgYw5sgU7RrC963EAPNd55P2scclXZ5+RLsojWJigWu47kgVFi\nwQJ6MEVPorz4gIyouUeaFbH4YS3G2MkbntciIr814HPYxAczBy6a7ykqPI4T\nZulcf21dZtHS5oLVtMV4NfnRnvSZrN3eUoMhblrKhfxgS2xoMXCBfc6n676i\nGx8qOEEv+doACyFLpwnOF9f7kFAs6ZN7B8gT8vhMSX7bvDJM+TPUjoeGcbUH\ndLL1V7zrArcyUvPO6kRu/e0xjH9rJMFtAqwx0Ckw2qmbYXecp/3fhAJ0PeXw\nkeWYgyCUqFoZ2OpBFv9lQAarrfgnjR6GCwLyhSqNUQlFJCfOh0xvwRCoQ1L/\nI8ox\r\n=3N7O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDy+bsZ2iK6mCZLnzR2qB/hHOgHVb+P0qcq0hH/SyFt8QIhAN7sTZkSmnbaTAIUnUDf6pNUXU0PvPLIMDCO6oiCmtb/"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.32_1564991635393_0.9208072758432448"},"_hasShrinkwrap":false},"0.1.3-snapshot.1564993835.8":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1564993835.8","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.9","@scalecube/scalecube-discovery":"^0.1.1-alpha.14","@scalecube/transport-browser":"^0.0.2-alpha.10","@scalecube/utils":"^0.0.2-alpha.9","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"e520c02e9b04b4169d74cdf37079c07855a61a32","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1564993835.8","_nodeVersion":"10.16.1","_npmVersion":"lerna/3.16.4/node@v10.16.1+x64 (linux)","dist":{"integrity":"sha512-pnttFyYHRK8nBymLrGafRSeNM7Q1dSI8BxIkQhqLyrPiR17g5sGiQZ2AYS/XdiVrmq7/hiHQus73H0VOcJmQYQ==","shasum":"67f84106cbc4daea66f933170dc2b7e686096f5e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1564993835.8.tgz","fileCount":60,"unpackedSize":984086,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdR+kuCRA9TVsSAnZWagAAbrEP/jkd1Yq02YShrdo3FzhB\n/oBlq/QDexzfsRUqGY9kc0yHuD060BZba0wMvkvEJXuY0dCzwi3QicHhCEFr\nEvwzSigR/XHDwekiL9JVGmetp3stw3DeG0e0Xeg6fmPH6J45PkVDlXY5F2P4\npd2CC8AOndbz55JPsNuE50Jq7+qbbjeCrgiLFJZ2EVpSEaDwajHjMwPP1AXo\nki9Ky2fizOJ+d2z1hXMQk9EARsU3ybWcMldQKwLP/VxEVwMgVoGNW4wYjAFE\nyJkMpQJ0OKyt1bRZyGl/5B1p8rlRPJ0sMmFZrJcDRfztrIKEOyGhfGn9n98b\nL/VrdjOPdE63DUsch+yMy66W6C3A9vLaR51ZQmLwpZIQrYsdjuvmQDR38bHU\nUlOkmLooUFJg3oojd9UtuMeAmCmWRrVskhJZ9rGkeNFe3LH+ubV7Jn86ABBo\nNzKQicazB2jCOtU87ykbNxoP4r4WKhGM/DYhyNSU3t76C261w6jduy3QzFiR\ntMTan0NwqOeZfSF1gjNdvSv8wPgdtE2ncgtehoPiY9Uba9XNtP/R3ve+bFRS\nj3lQow9z4t4sCy0K8vq+FspC+4PQgPYb/tOQ1vqqS0RGkgIFTHQ0UOxM+lFf\n6K0xwy5j5mTi36Rc28zXBvkL1Ed7u1boet7Hr/urH9+UMIP4FsUd2Fkiz40O\nqWRi\r\n=hPj2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFoY7SHCGFy6HdyG0cS1l9rp3PLyxjX9exoOur/LlkJOAiEAyPIox+Zt3dzAmi0Qq/7FpZHOIinzydNfm1aWV5GPuBA="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1564993835.8_1564993838068_0.006459042019421046"},"_hasShrinkwrap":false},"0.1.3-alpha.33":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.33","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.10","@scalecube/scalecube-discovery":"^0.1.1-alpha.17","@scalecube/transport-browser":"^0.0.2-alpha.12","@scalecube/utils":"^0.0.2-alpha.11","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"1dacdc027826bc379d43e598529fd3b5459e62cd","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.33","_nodeVersion":"10.16.1","_npmVersion":"lerna/3.16.4/node@v10.16.1+x64 (linux)","dist":{"integrity":"sha512-SXYrSU/nwSMQmULgMvfEmSUtC7bRAllYj76HEpQKWwAF2AYMB28jO5c4o1UewfnIzJ35rhZP3Qjenbt3EhXRyA==","shasum":"433f3f5173790ba3104323a9e87d7107956c1377","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.33.tgz","fileCount":60,"unpackedSize":983764,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdR/GbCRA9TVsSAnZWagAA7IIP/3rvxhc8IccdtKbi9ylM\n9FS+RXJwrm47A43/Q5p5osX9v6KBgQ7+I6paa1aC12Xl6Dwq+MsiZqxUKt+q\n8gerRtHE0TimD5/ICb56zwjxgWo4J8zAQyVsOZzJYU9FL4D2zx2Q5KomjOSQ\n4nOJT32+S5X9oAWV55lq4Y5/aovFj9+midiOIN076pRilcDirzYh2Z6O4Hqg\njMmB3Khcocn3/iy/12ZbGaNl0PwKBOiSjUqucXNRtwyzvIFnD/YG7QPzBwX/\nA31fP/IA5XHuUKuGJ0a/1EqHNxMpM2ETnJ97Kk5q11p7Nqwgc7Gq9cWsd3kt\nOIsThnPj2sGnZKvh6vguLmlZK+NJWOW3JmJwF64BssvNqJcMIrMfTmwiQxcW\n617ROqphyXyDSEaZsMJS2U1Nor07TRZ/+PiEksWtPtd2Zjy673Lblsp0QTOY\ns0A+ob98eqDD6VcQr0J/i6YrCc0pyf+ytvD3J7zmFs/inNz+N+fB6xnzeU3o\nPVFE6tz3m4qjCsYe+dv/aSb2Vzq+ykYrpa0vW7mrPs/JhBUCQR6m6j3GdJHj\nCIckI4ItfuxYm5dercM7hmzpz3mZh5edAYN9SCTORR2r61ooapME7ehbZkTj\nk++xTGyb40bh9m89ugxyzTV3IqVT1wwalzwnxQ9/eH+82qNRysdQ24gUssCL\njV4s\r\n=qVIV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCP5XU7KZlNSGUxUTo8ke2ezb0pzDtWYY78jECuO8AZUAIhAIj578QG26V4jdkc9b2PYbfZSmUFz/Baj/V8jafGysCe"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.33_1564995994264_0.7893468838680364"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565014940.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565014940.5","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.10","@scalecube/routers":"^0.0.2-snapshot.1565014940.99+cbefea2","@scalecube/scalecube-discovery":"^0.1.1-alpha.17","@scalecube/transport-browser":"^0.0.2-alpha.12","@scalecube/utils":"^0.0.2-alpha.11","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"cbefea2a4d532cb01640497b719a486752d43c5a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565014940.5","_nodeVersion":"10.16.1","_npmVersion":"lerna/3.16.4/node@v10.16.1+x64 (linux)","dist":{"integrity":"sha512-TlJkHnB5WtQ2OB6e6O86n/lHiO67RQYkX4UhKlyzbzn0yPJKWwiDOB7ZtVX+6gY2HHpFk/5Fq9zRg18WlYll2g==","shasum":"5754b7a8dbab5e7cd9f3c015124d64a585117852","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565014940.5.tgz","fileCount":3,"unpackedSize":16359,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSDukCRA9TVsSAnZWagAAPwwP/1nR8JZQoDDyGLGSDjgT\nDuHwTfX5gK8EaYkfMGi1OxLE1/BmLIXYK02ZFdYtR6uhIWpjTG/XEi5at+DR\n0e1QY4QWRig0TYQ0amghYbHRjnjYJXt/OyHUM8hbi7CZmNEK7++CCndhQYGa\nrcY877Ck63+kHBuKKJgkM2AiZrG+OgVmngkO8//mrNHXThkx9r1P9OjZdp2c\nCctQS0+Bh8p7qRMK5agbWFKYaDui6R+Bh+RaAPj+2IKV5BZY3WCAdcvwbsmo\nigAiabv4r7MBtq7kqdOo6gHhpSWxMIc1Ah+fr4nKQswqnkT6q4fsxbckB/Vw\n6LybAkXA5WpS5djHHQTOPkUQA9HVhhtlI64cFIuzP+O93ODc4oN/LD2pBCjU\nvhVN0e1PbTZgDHrUB35sDH7oNGF/Cjoxkcjzfbud2pmTZd7j5mNAO+Bg7aMj\ncTT30kCN2J48UU/W5jxjVWHKsRdf6gIYaSGa9rHjhFaO+pgriR/oi0nuUYbH\nY0WEvrhn+BnHv9DZN5eE/I9vbUwdj4QfjZqLIuNjtULkI8A2pCHOtYoeQ4ss\nJU11FtElLapu5f5UdJZ7lEW2cmU+kk6YLLVXlzNFhPkznTbpU2uG+rWraO+q\n7CMOQQ85PaJr3CesFWbpKiotcvfOdW3IKBUyrrgKCrXdpsLT2+ajJYPwsJTO\ne5xY\r\n=H+V8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDwKTn+tqcco/D+Y6g7zqnf5qfLozFc5y9eLfwCE4hUGAIgcmjSBVNowVYGVi+zKRY7NWWs049eBHijylGeeLgua1I="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565014940.5_1565014948198_0.40367053822274457"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565015401.6":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565015401.6","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.10","@scalecube/routers":"^0.0.2-snapshot.1565015401.98+254e155","@scalecube/scalecube-discovery":"^0.1.1-alpha.17","@scalecube/transport-browser":"^0.0.2-alpha.12","@scalecube/utils":"^0.0.2-alpha.11","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"254e15513fda1976b21e76344dc9635c6c9f0b19","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565015401.6","_nodeVersion":"10.16.1","_npmVersion":"lerna/3.16.4/node@v10.16.1+x64 (linux)","dist":{"integrity":"sha512-GwoXArJw0nVzQ3mzidLUXz9fr/+/6xvAzx5mzXzGY28Thr/xfiRTGVPdUMBw5q4d7l/pqCDM8HCLHVi2/Tz0qw==","shasum":"709c451d187a475b8bcafabda6868c1f463e9de7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565015401.6.tgz","fileCount":57,"unpackedSize":984728,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSD1zCRA9TVsSAnZWagAAJE8P/RFuP5nsKluHpBaX205Q\n36S83mUJ1YHvJE0e4fqGV5HavkHnreUikSnorrV/pAxppb1B0Opgc0bYoEgG\npJGhX9xhQuYCJAbvR9IDZMb1RoTRpeOb3YvLpBoWA1vV9Gl2dXonC8Xmjav4\nXdQpd4Fk/MUuwlfpGRveXiKXUun5ZR1VrUnqGqDRcVBDdY+2Q9sMBGHkrlhX\nND8dBew7+8hXpbkvwybXe6y9sQ1nR07qoN8mszuqBjf64sBgUuLKxKyDyVGM\nDFtju0aDGZNnALPmUkPZWkdlnfZxVfTt8ATa56VGWtFFYFgb9tXWncKgabTP\nNJIABISgbTwYkvjGNCh/E6LEQkiPpYxHUqr6n+Mo4dkznxR81O+stRcxTZvg\nkgLSQtL3w4v+OYMNNRlZ/3xRIBaP5Mz6PQilD72wZPcl/wFnNAL6ec/Zumy4\nrODDj0Dm5PSBL6EjvTsyasp4N+j2zP5LtlnZiHxZnPg1oop2LVhNsxrHmCcj\nxc6HXIliwrb/SzpG92jk4xo2OK/cA2JgRyTyF6RStfMWVB1nNMnswmcyrXn1\nSNCnrB0NOzHwzMSON2neIIoppST+0axqgcgEYQpO99oQhrDY2QQNGSfk4jLM\nktRHqUGTK8T7UfygCzJTEobJXq3HwAwFDLEGcXGHNHMro7eP/0F6L7svRSgD\nCBIw\r\n=qS3y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDd9pNdgYGlKHUpgUNznourf2DOUmZXls8v6sXYdRnnBAiEAvpF3ce6ZVFzhQ/t7TbyZY9p1VuEuC0V3/zIRupRb8qE="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565015401.6_1565015410094_0.10143109467839673"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565160659.7":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565160659.7","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.10","@scalecube/routers":"^0.0.2-snapshot.1565160659.97+e42955c","@scalecube/scalecube-discovery":"^0.1.1-alpha.17","@scalecube/transport-browser":"^0.0.2-alpha.12","@scalecube/utils":"^0.0.2-alpha.11","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"e42955cc51e74a6516442baceed08135c70fa10f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565160659.7","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (linux)","dist":{"integrity":"sha512-UjNmIgfcuaXyrxg4n8jCqVXnPrbkI/TU7IWkfhF9+LKyTRZQ6DEtAeGteoybtAVzPXuKGCWiV1Lcl27BkWkCDQ==","shasum":"ab166620e45cc4e7e8108e1d05d0da19b288159b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565160659.7.tgz","fileCount":57,"unpackedSize":984844,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSnTdCRA9TVsSAnZWagAAeRkP/iTSfmyVSOTaWqHOriSd\nHhdKNs1CB0iWKLXM9w81TtEdgRzs3evZjo+tTZq100shfPiu2EILJzRqOVqN\nshrOOIkmERuGNDyu8DqovlLXbxWX5rQp2m9wnV1QbI0/lkYh2vlxYbANPSa0\nO56QJ1FQWWTUX26YrlzE2wxs8AxA8bK3VjxjZL+hIMjlAn8nSRQHtbACAmYm\npNF/rxVoTV0e+A9KGx7n1gqR1xjUmKYd/ZnHZmcTuOf0c9wCJIGMezJR+Z+/\nih7e2C+k49ltUPmIFyR+DzBIEgAdVEVIhfCWnmUISWgaKG8iLOwbLK5CDLEH\nLTUqQjGwKs8TLLIzqO1+U1vDAVCdEx/MqBnLe1lUgNsDR5FNjpKKZPP9pmBt\ntcQi0AtyIf1fmziChBSrsGPo2NnXucQ8lwIj4mPlblxYFznQk2sIA016bAWE\n6cnXbDxYOJiBkVKtm5XgojqbIMnPUzG7hLhrIvRVVwsWTNeHIMxnWPjBJSeq\nRwxvMpNSWMoACcIRvlJt1aMOo4QgB3G5XUukxwoXZUYcpW/QX3T3rOsTYd01\nDuRB9gX9z3hrcr1GBGbuJCHkk+gREid8JzAR8jtqCHabEaoBm/5Nq7kBD7jM\nxdNxPy5WqhUHfX3jwYpSLoBnsFJGwjuNi72t9MGsnGoxziBwFbC0/W/Irfac\nNbkg\r\n=CKJf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICSTz7eyQfSe0M7ljFiv+d4zOxmOGhlQMD6hI5ImxzJyAiBRMl5VvMV08/YjSmAXZet7pQ4ooPnh0QRk2nPIEtcWkw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565160659.7_1565160668940_0.9732087737370312"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565172153.8":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565172153.8","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1565172153.13+69c4458","@scalecube/routers":"^0.0.2-snapshot.1565172153.96+69c4458","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1565172153.8+69c4458","@scalecube/transport-browser":"^0.0.2-snapshot.1565172153.8+69c4458","@scalecube/utils":"^0.0.2-snapshot.1565172153.8+69c4458","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"69c4458d23e5d8150dd8cd9a32661861c1a157d1","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565172153.8","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (linux)","dist":{"integrity":"sha512-/cQdGYbHB+DDkS6Ukd7AmatDPZEJh+fL7nA3jIMvH/Go+piu1LfS+Gf3YRuWwPrYCVKafqi5cY0wFUlFqvmcjg==","shasum":"2722f0cf574a9913aded58f357feca94775463bc","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565172153.8.tgz","fileCount":57,"unpackedSize":985427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSqJtCRA9TVsSAnZWagAAMYYP/jbFiqCo6qOtzL1KCCZY\n6cBd1LEoZyx8JmLM5KkPBnLCK2fVvTEASe1kUnsq4LS7y34MGq0jvD5vzjgC\nKkE7Xi0EPoIS62IdTdQzTWZvX0BzjuK3qyWY1daKU3FsCDmm+JiUhHKN4Sgx\nJk2D1Xt7P0hDtwGJzbNAx5IQLueW/+f13JNm0thiMi8signpLjUIY5CxATb2\nX84yMVWLVECvo6UDibYb3M+9Ijpsvrq1bOtaiJewjup+GxwsYcD75dQ7rmYh\nKmPB80rhmDl93bBKO7euJ39ZhXcafPCL65nONPIBgj4tbRqY1D4u1ZBzN1OA\nLRepIxppkJaUVTl8cfvuEf+0CTehIB58dWn0E3zFeXA0zNP06nzuqMtMDgqV\nrRN6ePxo5poL2xBA2ijC+BQS8+MzzOGEu/HSbrNfQiWXcecNQb1MZTBFDAWE\nVhy1kmdtdaw96GGNFO6P6x7fmTU0cEA4WKpIBhXV792/PXqzdoIPf4syXdSw\nQh9YWMEXBmnIjfvRn/W7dFEXnmnAxrO8sUrP4udYAaYmv3jbKzp6VzghSGWr\nPK0GmEV687g5XjFE0Gemt9GJXLm6K1mOb6A+hV0xH2ouF8QSz5TAsApvJHvU\njIxonSLhGhfGbI7pjHHkAh85jMwkgAsDvBgkhXWv2Y9FreU8TFRl0F6aRKWe\n30L3\r\n=m+A6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/8nj7WK6aviNoJO//AYWcI0wZLgbbzF83xOVOqHul7AIgIhdjR9iMxowILAxft4FSXmX9DAmjtkeUkacVfqfre2E="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565172153.8_1565172332381_0.2829367414822668"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565181801.11":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565181801.11","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.10","@scalecube/routers":"^0.0.2-snapshot.1565181801.93+b007d6f","@scalecube/scalecube-discovery":"^0.1.1-alpha.17","@scalecube/transport-browser":"^0.0.2-alpha.12","@scalecube/utils":"^0.0.2-alpha.11","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"b007d6fa621f419348a6d083329f51929eb6165b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565181801.11","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (linux)","dist":{"integrity":"sha512-L9SmUXnnUlbl3oLsOT6BTfzQelyRVElRTPGb7yfij5jsB0JszJNOGSUX9XNsXKtuWG1sItXt8cigYELhW/zYnw==","shasum":"9004ff940bf64fde5021271dbe3b21ac920c6a14","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565181801.11.tgz","fileCount":57,"unpackedSize":985115,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSsdwCRA9TVsSAnZWagAApHQP/A7hOlScKCDaLo91fI6U\nnQN2ihbwKe8yTIlOCj3bNtLxauunEpHFiOSmHpFb/PHGffExNgvv6w9HiOi1\n8E5TZlgqYN/JMXdt0oaRVoImYJVJPPYOAqnR12QsTiUOULub1FacXfNRyFge\neE8ho9D09/FZYbuZd3mRiVayvRlhNJR+Sd/cPcST8cv07ZzyKmW3eI44yCJt\nUKAZsuqj2thwtCupk0ly0B51speusM2zvLWUjmyfB985owN0niB7PQY1u0fb\nyuBB/Ptx/P+9Pw+runkq4TOqFypRzbV5TYWMdgVc/MZvRcPYl4wxo4GOnD1N\nsCUswZXbvmQ2Pu/uTi7nIV4HW6DAcujZdHWODAIFJCXodnxnGqo9DTj/yGIi\nmvAUOi8Qc345Dc6zlSeqWsXwbjzKk/Ya0k1sTGGBUXWhvWe+Qe+csY0nz6O7\nhLjYpmUvfiVUDHeLN+e2yBYe1R8CVCxLg8J1G4NQO4U0KxzP+61LBvdWDD8a\nyLc+4F0g7Z1dNiH4WCaIs9MEhk7yV2lGDkREDAiF3JZbISOnm3L9WdCm43mV\nnn8xSNGXfIpl5rfILDDa3qbJh1iwI5E9RvVrFxKehNqmMbd44hVhYRZydjTh\n7vBxNgJlZcDakXPczIQ1tD++5Kjvwc38dRSCn/6kVdcwi3VUh8d4hzxtb37O\nlMAb\r\n=GTBl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDD1qJGuViq9lMoEyhIuonDZMyeGG8clAnB2PrHDrz+DgIhANd39PbFBnuwLjf9oYfi7PeV8ydYFyCTyTOHe102SRHe"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565181801.11_1565181807881_0.7105508732087151"},"_hasShrinkwrap":false},"0.1.3-alpha.34":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.34","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.11","@scalecube/routers":"^0.0.2-alpha.0","@scalecube/scalecube-discovery":"^0.1.1-alpha.18","@scalecube/transport-browser":"^0.0.2-alpha.13","@scalecube/utils":"^0.0.2-alpha.12","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"6829d9aa611c108ebd3bd7bc79df1679a9a39965","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.34","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (linux)","dist":{"integrity":"sha512-xskuUxONlFGr0A6DnSXq4XxoAP+20x1Oq9gh73+QwsHm/gHPyjodN39XMlZqS+G12x4mAFqbMVs82eKDk1ozxw==","shasum":"fc61c7c1452972c91ca64d8311c5959b8503422e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.34.tgz","fileCount":57,"unpackedSize":985070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSsudCRA9TVsSAnZWagAAB3kQAJCK1YsZu4eFifm/8VSG\nxDIA/D5p1aBVjRRPcpO19Rnv2uMgev291DVU85Cfggnj1J0gwuEfzajUghIT\nRRSfxOLrVYCCzOnSuRAJ7WzeicAv4z598cltDoEcl6RAk/iEIKYO3Bx5yvad\nRRoudiAEcIv94WRh0AWsHKqrnRSU9KQQh462JTM+MHUaXUSn63sGztkyRhEX\n4Mn4dzPwEgr7jzWot5/5OlThkzGD7CU8FmY6bgIWW1M0P7ibzCMQGggT82eV\nnBqHhD2n6BrQcDu+DsHeBQzyhtZNOZ9SW3v/UxSfoyrALgnxyYdUFscE0Bhu\nFnBJUX9dm4EkFRW3ZBIXc9w0r8LYEfdHqQ2Vm3JgqtqzMK5+WUsrNERfjx/N\nhl3W1QlDc9qSuKXK/t/p7/5jQMkVnjAmKmiFnD6geyT072IcirwFMdvRzRh3\n8MWdXGktn6GE/VlkAnj9nqoyf42CI5s5My2aqt+Pf2f7aE5lrYajDXg7fwIU\nTIEJjm+qZU6vaeup/rw7q4WxpRIjifBpYst24X4DuZRU/ZHVAJrWpzhbY8Qr\n8L1l5RGxg/K893Cgfy+XZomo7wNoZw68arcLyo488nE5B1lgL79l2hDMgaXx\nU9UatM9KydJoMnVyDGY7g+Dkfu1h90brCstzJsUIwFhrQXL/zQFCCQwm+jg/\nEmkx\r\n=2J5H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGosbU11W37UGSoF5cSQ5by9ZWG6cFTQdSqFHMdoEtVhAiEAhRLGsuqEWoq7Tfie1LL8ZknDQNCBmwtpYf0uX1JoFB0="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.34_1565182876645_0.8808532036348877"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565182903.6":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565182903.6","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1565182903.6+f2519be","@scalecube/routers":"^0.0.2-snapshot.1565182903.100+f2519be","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1565182903.6+f2519be","@scalecube/transport-browser":"^0.0.2-snapshot.1565182903.6+f2519be","@scalecube/utils":"^0.0.2-snapshot.1565182903.6+f2519be","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"f2519bef1345a6600fe69fc5cf0d2c2fc77cadc1","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565182903.6","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (linux)","dist":{"integrity":"sha512-5Itk88VpjhrLFA7kW68VKQwVfUZrZmQg2DZ+e/7o/oykLZ88JUgaRHbFKB1PP+u3ke2ISCz9Vi7M2oNBpO774Q==","shasum":"27b38df6dc7151efb6188be32c8c54280bacbd38","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565182903.6.tgz","fileCount":57,"unpackedSize":985199,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSsvQCRA9TVsSAnZWagAAnuQP/28DF90jhxwkTXHD9gnF\ndrTgcUkiWvujHSsj54HZoPPfDoC9ANshs+PB3H0brHmEM+VyNL1oGvp7K0sH\nMuF/aIkOCwgqYqewKjswLRPv3BTPsqO4QkUcUYIo1EHNd0QkLJVMfekgQSvG\n3TYSOzKPW/05vJvDbdUxJ5EoNslr/d8s2qNMxsnZ9PZkkSgdgSPinH9sqQoh\nzEuiCNlVe868EGwMPmQ6AcescIWvbzZlMBr7UlTMDCKLFCRQ+TLJnfCXVV5c\nYNZmd19r2wsMQGQtQwwej/IGjUpmXaqpvMBHbdJ86eAU4/IWE0Zhg5M0QiMo\niTtRiTAAVx22hXgDnlg+vbxJ2vhI68cCN02hLitY9Kyxuez2o+QIpM306Zcq\nGOy4m3Ul+Gi8XJxauphIyNw+K49Rc7Z819gjfCapT6WhlyKpNZ9QvrmOdL0v\n+A2fytC/SjP/WqF9h9EtcTBtDZbPeT9Bj89XEobG8djUMWPLTxoBtbrYsdub\nQIFzF7Ccexo/TPiuGvJslwvdD8CUb8rGRWw9yQjfZ7s/OpotHXHsiWqaQnxM\nCYxlnVEDGqFWBBOz+RCe75B3WAeSi/6NTI3+c7PdVbjJbyz3JXMobHnN/bEC\nqRuUs1dSt/Tf1e9E4r03udg71dnIAF9m/68RhKNQQPjP7cFu0R0WD/TynqIR\nS4mF\r\n=gG91\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAcIoMmsqqccnKYr3Ga7JiBjSz72Gj96QRHFj/wxmezWAiAX/hIuA8yZa8qcNJr79w4bepjKWjmo0KZJ5abxj2aGNw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565182903.6_1565182927527_0.8745182887807603"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565528584.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565528584.2","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1565528584.2+01f7c6f","@scalecube/routers":"^0.0.2-snapshot.1565528584.2+01f7c6f","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1565528584.2+01f7c6f","@scalecube/transport-browser":"^0.0.2-snapshot.1565528584.2+01f7c6f","@scalecube/utils":"^0.0.2-snapshot.1565528584.2+01f7c6f","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"01f7c6fde36ff738b07fb63345feed37706cf74d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565528584.2","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (linux)","dist":{"integrity":"sha512-FRq4kFkuCBeHyGB3MwF8jdQzT/pEOaJupWO4Wf65whbhRP0h0BKsyjzMDXBLa41EJSBolm/VDsiuyayZQlV8IA==","shasum":"6e65df4cd1ec6e2b36c96c8e9989c96d812ffde4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565528584.2.tgz","fileCount":60,"unpackedSize":996894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUBIkCRA9TVsSAnZWagAA0pMP/A3lfJ3VfaKvilouXBML\nVheHkicE4Onxr1zZUSyGgjTaChpaQ2yVx8u0SbCJCs2gHFCU5tEZXNGYWba0\ndmvbwQ56UWJa94BOxmlS7fW+M/wv0vCUxyVFGe77HbAqx6s8QIUPw/lFHzHm\n66KXymnIfkm3vJf1ubhG8NR3IqAtnk+AwMPto1DgQF5m8CTTz7hqCFATUyyE\nAYF8/p5xrkO4aJOe2TWa9/DQ/iiG15obBXyFXM3cnv5zDg3CmsR7eHHV79ON\n1a5J5WAREolGae3gm+CsXpYHpOSwkklnwFP+aOnorASu0gv0lxICU8e6WLOk\n7dR8h4xj68ao3oHmOk4Ssr0LhDpbEMBWoRGJ6UWQrADYsdTadKlf8ipEJvlc\n48WODrlS2FcsMnyz4jpzApcxje2c0IYf56Cjqb/v5K/6649gpRZ7pCI5XmlK\n8beRGVtRIDMsg5za60MIZwMimoB0dFwQMPp69xhcB7Wqqx+qqegLxlxRsLy0\n/F3m6eZZP3kR9ocu+GS2eO8uaWkTfDhjpvwTqm6Kth/Tffbhal9LaKWLTMVM\n9qL24di5qyeO+fjsD8mvt/TJfyP34/obuRySsBpk5EFMFhiZ1LzDGJtkC3uw\nIBoZTYdpvfPwnSB2Wh+ecmyPmGjzfTZ43kwniaArsZ2TJt9Cspnd7EilKPhc\nmUdb\r\n=Eddi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4g6wI8bvDpObFOXpVqYYHqgEtF5TFFZQcswCxPjzdkQIgK6zuuAofrKushe3XmH/P/PUk+se/GqtaGbBVA5eOdIM="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565528584.2_1565528611498_0.6932144241926514"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565599152.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565599152.3","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.11","@scalecube/routers":"^0.0.2-alpha.0","@scalecube/scalecube-discovery":"^0.1.1-alpha.18","@scalecube/transport-browser":"^0.0.2-alpha.13","@scalecube/utils":"^0.0.2-alpha.12","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"9a6ab5cdfd71d572bada04733c8277d520113f16","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565599152.3","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (linux)","dist":{"integrity":"sha512-WhkleQ93S+kjYlm9nvIXy0LHmTO88XI9zajF7MXM9fKs0459/7t77t4eqF+FtKlT9zSugz3dzuaffu/jsCfaxw==","shasum":"35fd672563c77d909a6d9769948d57d6f13809f5","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565599152.3.tgz","fileCount":60,"unpackedSize":996949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUSW0CRA9TVsSAnZWagAACyUP/1had4oSwY7JEoN3Zukz\n5oX3GQMTWnD6TW4KQp1JeVJsEPrsAC6v8i8J+hvw1yxfuBB6x1vmccnLZzWW\n+uJplgNI58FnYXASXpdnPIm1XqXoTbBTmLyuKEhF4Vhjygkg5E3ZIY0hkaib\nhs3IA82oFuFVZTsf3mDwexXuKjuML5PjbA+wZwNucD09d9tLb4EGTk9KtlGX\nN3NTCaP4ze0nKigw61JA1tpgLR6Dj969+NTJdWfxnhFG1Qv4giwaNfHUHcgk\n8eEgXamqCDiSoLjqALOAaPQXrRwlziZ+fs9PHVKvMyvoDX2WZXU7h7gWZbAx\n4wmH9CAZZOyDgKcr+v6C1USdxDrED35si9IO5tqHFHvQldOsGXzyaS+y/fDT\n5y4jazSezPd6I/D10KdTlqyz4ewG+xKXYT2ZamaMrQB8q6/UMNC0+X+K6IxI\nxiT7vJuLJ4a9+OGpBCVbg+wC+SxpJke1nSLa4bcxALLTz1yFE+pPKPpyfu7Y\nIYgVouuZHffONQ6yB1GdtxkbU8+MkAshl0HVrdinLeE7K1meVcUHdOvZJhec\n3kI6JhpgyJTBRJZTaq+BuMoPLBfjaBgyBBu39sWbbbV1/x3CztnGU8J8PEIi\nzs5yPuVWumP/9tBuKtrcB8nj7iruK6DqSPS5I3pQGu7QZwhURt0jt2qeWxLT\nd2E2\r\n=AIwa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSEyKmQJpSD0Ck+ArnOiifxWyzbyFB8ndpb32jP+24RQIhAINLHD3/iENQwrD7hNtGvIY4OYgsAEak/gcp8cqBU0/i"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565599152.3_1565599155494_0.679491590485668"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565600280.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565600280.4","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.11","@scalecube/routers":"^0.0.2-alpha.0","@scalecube/scalecube-discovery":"^0.1.1-alpha.18","@scalecube/transport-browser":"^0.0.2-alpha.13","@scalecube/utils":"^0.0.2-alpha.12","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"2ece11bdab3c330afb36279b79a3cccc2c84afae","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565600280.4","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (linux)","dist":{"integrity":"sha512-6b45DvZuJVFX9yuzyHIObhOr0oYaAsZAkhA14/HLrFhEJFp016ISurrE/knsOt3woxtz5YbQgNTEqaEziCr1xQ==","shasum":"2962742940ed0ac1f996f72178452361167864c0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565600280.4.tgz","fileCount":60,"unpackedSize":997574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUSobCRA9TVsSAnZWagAA73MP/2zHdwrpz9sVLM/yhlSr\nFQJrJdzAR44f4YhdI+kulReM86vpknfEpd2Eu/B1S38jOYwW96sMd2RZUSOe\niJPk+uUuAtjYAagyQfdL+2oPDm/eTtiWN2VWnre1Fy/W3D+nL5GDqkuXn/ZU\nBt3J0QxI4KBoqPmg/JmiZIF0SnvEY0GpnOBxq6OGm4XMnfe5Yt3Xl3rsf6u0\n1+UCFqlYicol1bt7kyBx6DPzJUEhytRZ/jvJE2DilNgE+2OOw4ms2LJce3MP\ncfTyJBPgMCsWhrN/J6cFWZmQKPILonPsLfXzKJsJYRRnOtbQ1Du8h6PLeQwc\nn3RnhNnpZ4PygGhndLmmA+cJIi1ZtleYPR3jcr3jgzvuRiY6tH4e6NL8iHqR\n/JGeMudrPtWAVThyGrJ5S8WPTGQs+XJz3CeZ9tbVeiXvEFE74GNWSPIPUong\n8mnYzJODwcNVebX0bdPWmFYFyJziEpRWIMavQEUbFiSGrADnPQIMPlxqG6zS\nLgS2o/uviTTpQru3KIUh7VZhCNyeaQAkblGdfw32qiMOihcF6tWAegVAhe60\nFKLIUPMCNSFp7tztwESBDFcEsD+OdkozlnTkHC/qWvvCH8gEg60KOEoCpGBX\nd9Mx7W+cYkKcd46/9BMme1LoFsCrQpqm/RrPOpMgZCQI7JINTw5V7d71qJvk\npZ/e\r\n=DC5P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBUz+IuDnsRWC2mZs4cyy9ZK3XUjY5g5oPtPjVC+0rV9AiEAicpQbVE+P/EE73hPxmOAb4yN8Nr/EYQyc74FEbObwkQ="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565600280.4_1565600282930_0.11434654025543134"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565604509.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565604509.5","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.11","@scalecube/routers":"^0.0.2-alpha.0","@scalecube/scalecube-discovery":"^0.1.1-alpha.18","@scalecube/transport-browser":"^0.0.2-alpha.13","@scalecube/utils":"^0.0.2-alpha.12","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"695acf337ec999ff9a8e5329d5aa0f6f910b869e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565604509.5","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (linux)","dist":{"integrity":"sha512-saLS/ku4lYsqno/i+AjUVm2HtvOewfz+ykR5TZl6aCKWUfUmnm2we7DMeFq+BebSeXiU16swRalofuaz+qeobg==","shasum":"34eb9424944f6e247c97e8ea70432eb850b24a43","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565604509.5.tgz","fileCount":60,"unpackedSize":997574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUTqhCRA9TVsSAnZWagAA7NMP/0ju9OBSrd0L77gVthag\nbBRPmlbeT34yU2FyFFTeGS8gxRvNL4WhhWaEnaNtJEnuev4njUHfKaWc7vfZ\nBBztroYLbeedsWfFbA25pUBjWQWovipkC+Db9PYtNBJdzyESN7F1iu+uE2r3\n2988EjbMn7fZeXxjzXYlrFise0Bt5NPMn0kGa/sJUHKdjs9mnxALrXlRcTCy\n7v5mzCkX9mTMNn2EbYdZMlxMvGFtUblVZYxrePkQ9kG/yElTh9QBaF5WfH+1\njdEGixHEf+8OfWqaz46Ve+KCwA6HQtmheej/lMq/xF3iurW/I/28Y+OYLpI+\nVajEdG6msxIZdCNEfyhXEFP0vlKZ5BT5/Lware8Lu2urz+gE9maVPBCI2Ofj\nUdiwfDNAOQykyu1VtCk2d+1Cl5yo63/YeTKwlXnblpuykcgMp6xuBsO1RIOU\nqb7/1P4bygn5X2LdCcloQnukrXpj0MeOpsrbe8hIwkTX/Dy4YMrxU01sWIV1\nbU3YmfAAQCMB4uNGZi+rfMRod0tn2nGi/CBHR8HVPtisBH6/mpIfjpQlPUa/\nRr9rgU2z/atFZ24uLkBkoEY7007WdGjhjPLPtRxPvU2ew6xei3spkwCf4r8I\nI7NSylOjTRyA+uz6gY2pugsaSwCZaZ5iuD4pd1ZYlV9bqBrdj3X10BySyqFI\n/Sxi\r\n=BLLh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyBdWqvouAuuiOYBYXvqnn9iDpINvFgHmN/oMlGUTSawIhAOnTA6EHWFJG9xSAJLnpCmdzw+61tkhUjMKu9lXe9sFg"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565604509.5_1565604512263_0.7267949534559632"},"_hasShrinkwrap":false},"0.1.3-alpha.35":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.35","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.12","@scalecube/routers":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-alpha.19","@scalecube/transport-browser":"^0.0.2-alpha.14","@scalecube/utils":"^0.0.2-alpha.13","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"fd9a16bd0b91a9f33c45df2aefaab15cb1147c05","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.35","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (linux)","dist":{"integrity":"sha512-cu0L0RqjEj7n/OrKyQDbRrkCzp/WEzwx2slC0MWpC7rNXib7dqwlENkjCcW4bgihkPNvZI35VHqMR8w2qmUJ+A==","shasum":"7d30dbd2a4814e3d127f92e65e63d61a2137b0c4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.35.tgz","fileCount":60,"unpackedSize":997553,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUUZTCRA9TVsSAnZWagAAPG8QAJNwUtXlogwxFhCjqBVA\nPeXI+SglZCJp65LVv6yC5Uy3LljIbD8+5ZkWo1qS3hAk9LW9ZNaxobvNoGNa\nSIK1sTHW1y+yaMkhJeab0Q1W25o351Ki6ioqievCbUM6WGODKW20yFuUPXtc\niVoyUEp5B0MXbkcgALnJQsVjZ0eiejJwOsiF8fNBDr6mzfrALlCsFoBehoRl\nF8MazNHD0F54iqsJszRuqGiKlQCLpdDh51+rqzkVI3pJMqqpri97qSaX8N8A\nf0bPTGxWrVCEQ4+9iVEUmCszdFmrVcn6YvwiXSArNsUFwxmMyhdQPjgHalU/\njlQL8MeBMv5jOFUnBr8ux32mHq53/zJnCh90i8Un6jkaFEZ4ppqMmg1Hz/G9\nCf5TUEoqgUw6Fv0ODMjjvBorNdRouU9OD520qnQEXyFRztEXChLiu04YBSSe\n1Q2hbnVKT9jH1fARVdcmZnDi5u96dqwLYdWeaDclAocUFhyg1zCLJsCtwfT9\nMAkVfyk1FnAg0uqI2ohx9vIZzyGz/VkU6HmRAfF9NyIPaZMtOiD3Puvtrn1I\n+X2AwpMwcSUuTXb+m1U4tF4SxyBw8bZbJxcW6TB9q9WrAkaa5DcmgYQ+7dWx\nO7gWtKiDpkAfByuC+ZdJSGwL6BNYg2WYisp+KSsfGqygkfph0bh5pxmRDyrp\nrTYo\r\n=TUax\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDBCq0nD/pUx/W9PHDNQ3h4fDekdFiX8J5eOQlnQoGAnAiEAqOdOfVijUK4EzW7tpJP/kDQS6DdUmLTFpqvD8OvG9XA="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.35_1565607507000_0.8756309990558226"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565879804.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565879804.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-snapshot.1565879804.0+c9ed5e0","@scalecube/routers":"^0.0.2-snapshot.1565879804.0+c9ed5e0","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1565879804.0+c9ed5e0","@scalecube/transport-browser":"^0.0.2-snapshot.1565879804.0+c9ed5e0","@scalecube/utils":"^0.0.2-snapshot.1565879804.0+c9ed5e0","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"c9ed5e0a73f1068165eec2e4a4bf212e05b181b6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565879804.0","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (linux)","dist":{"integrity":"sha512-R8AMCdXmQepZGllzvRfYq6Z1vF0ZDXZd9RR3D3bDj7OP0sXlYUFfd7mvCcF005TaAS26ij/GIBheGtS5V3D/9w==","shasum":"daf95c8f27cd096450c5e528902c27407c089ee3","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565879804.0.tgz","fileCount":60,"unpackedSize":999664,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVW4dCRA9TVsSAnZWagAAiuQQAKAA2RVhbfr5XPPIDUnr\nSLPw851fecjvvbjVY4HIj1fFEg9HzF+8NzoCZe5Q7aaovAuyFGTiHdkG+6Rx\n5fDpB/bdkGjJyZSTvVGpXTXlZFuRk29Eqeg+JIxhcani1zqwEkh9WtZ1OGmI\nr0URyAVr1SlPPy4IV+cTOGGMF6OUJY9/dQhx8vIlEQIJ6KbEbV7sYdz282wl\n/Pil665AfsKc6J4DrjKNd7k/k2aZTSOBQKn4o4TGQPS6FOKqEKwwgcz1ez+b\nf5poAQCihQ6yJh0EW07EqLeg7dejbVQBKQJZULtQeoRPIHBMVfHB/3RMfVp0\nX6MdXKmKTt6Mur9YU8UZkTd79v9HNu5x+pQtJtwXnVeIS5pB6pwEbbWBHOXS\nsPFXURgfgVOO8qddPjJoguKi9UEmOF5W4QaPd1ZE7UmWkojHGQayGmNIlE6Q\nVFfoMMgFm/c+5nx1RjEkJekAVqC6bogGxAHx78mGakhYT+SeZFkrrfnrvq/u\nWWzd/LKe0GR1HYs7eEoWXoN3t32wNuHg2Hr/1c6bvpNZr0LgqypIpmHIGxSS\nukdtOeN1wSJmEcYlnLgvOpUtcc/ZCwPB56AOubhHb9ChHY0SAhRnN7wFCCDw\nUT7+6wPpPtjT+soBRvq9QaqBbHcij5FoNBNRRcImh0EadJpobDdweEKa9H7n\n0VA0\r\n=6bZH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAksHtw7fC5TDO+gwjP6ngjCoVMi34FENecSdaAw+xR3AiEAgvaoa4XseN6LaGB7rD1FNvR93q6VLzuQdJNZIu3wIvk="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565879804.0_1565879836200_0.6452010970365074"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565942097.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565942097.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.12","@scalecube/routers":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-alpha.19","@scalecube/transport-browser":"^0.0.2-alpha.14","@scalecube/utils":"^0.0.2-alpha.13","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"07d93cdb1853180882f6c11065848e6780a5e775","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565942097.0","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-Ya5LsPHy3F7RmGhhiFyUIBH6MqtS9UHNMWpo+i9I95NMiT38a6PdAALoGxrkEH+Iil2SPRZw4+kSvG5198mrZw==","shasum":"02118611b20ffe6ded1e5a797874de6d7e1ed60e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565942097.0.tgz","fileCount":60,"unpackedSize":997574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVmFUCRA9TVsSAnZWagAAG6wP/RbHVoYSS2w0moH2EBX9\nlngDvqUeqVnrJWiO6gqENZBYeCH6SUbE5JYkoPcTTU7vssTmjz12CxXZlffK\nXOAf6fAeBlJwTWMaaISmxHdoyhfrq60pj3e0UtpQXRrp/+hjpzdz/s/0/b4F\nX8BHlvM32jC4eu2dBKdGTVnRZ11tF+TUwsT8H5W/oq/pO3hx0SqYt1CgtVMZ\nEbwNpMiizSkTwI0e8xb/Wpx9jXHoztpVFa7Ww5hHBCTuaBFCFt+DVmqNHYMa\nb39i0VlcZbqkXmrkMrAMvekhKiCHT21ZHgDl3oECrLUJELYy/5HOO0V7uV42\nJU85GYGrbR4UaB7Fiuh0iSQFi1/RXBGxn2j+QFpikVDTIMvW9J/Br9Qges3m\ne8d7/891eX7dsJ5MDf9XvbBDBc0acRNY4nVq1BUXliH62kglJhwwcYDpJU7P\nGIO9z6eBuF9uhjoDkAD+32fLrYV2g+ETel97BORw4KM9XDnHbaQ/4DzbNOg0\ntj9XmDG61T5hfsjXpGsf28ArliYLtPnnsDLNV4gCd+GJS9Mp2C8pXrSvQqPW\nHCx1tqn1EDLux9QcJ9qD5NuDfp1LkRIISq1QQlJ45GJVPTrPFEAT2tq/ab1I\nOGsQ5GAjwbEW9Ep4t42cD4aJcXCRvtDy83/7FAKtKq+C/0JLQfkmNuTqsJff\nR65G\r\n=MClt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB1yVaMf2PagrGYUBNOeESDrK909yTf10d/OFTBwGAfSAiAUV+FXW7M7KQ0I3lJvM4SoqwETnvEMgEWb/NP57BWVxw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565942097.0_1565942100090_0.5544297582643309"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565953181.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565953181.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.12","@scalecube/routers":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1565953181.1+baf3ab0","@scalecube/transport-browser":"^0.0.2-alpha.14","@scalecube/utils":"^0.0.2-alpha.13","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"baf3ab0a2e583b8f6ee3c869440d0a743ab3cfc8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565953181.1","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-Yr66JP+s2M4CpFoO8jm2PrUic6ENrBN4bSUb8u5uOE1+uRN6BfP9SpbW1lj1kuk+2s5qhZ8aNfkW1OvrcouabQ==","shasum":"478014c10e22d8c2377fe879e48ad2b93db63055","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565953181.1.tgz","fileCount":60,"unpackedSize":997603,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVoykCRA9TVsSAnZWagAA1AAP/1PivVV975a0hz9TWd2K\nHgIMruaUnR6ieNNYGAOJ7fVZ+mu/d/6rewM2M6TLl1jKrly/PzZ+F3xmY7n7\n8K3z94STxjqw8iNsbePMJfUU7MuQueewphECKQkBmP8fgpUa6AbICI4C38Qm\n1E/z4z83JkzPQmH6Wgx9xINypBzsSK7zoqRS7U4HP/g1RS+Q45avyF2dByTq\nAlBX9QI7gE18os5N5KloFIJMVGy3F+4XmKk8xmKUnUSCNKdR7hhxyg34MRSC\nM0G/gwmQFKC0ZoHPzycKHqsXOPV9XjcH8nAWHs5CPOvpxE+/hS4qODxHERf4\nPrCqQ8/X1WjMBPJjO/YuHNpFPU7XFx7TZSgVmQ13S3keQetcdYI71nDquqf6\nWMF/TBjzLXVTJbExqpQtYcGQiKSgnB6vMockVPWnFzEL5aCL54iMZf2BfHAP\nPWDCucL0XnH4jEiJsqxoSl7gSlS0B3JVj/4+0MGkV3O5QXRciaRbYPqGstNq\nOL0FKKQPmkuhVYDx3iOD4KE1PBQpVYh6ohb2ofO4ji/sFIHvs7KSnk+CLMC7\nxL+3PeYgC+JnFPvghiJdpBVQ8SbtMHC9u0TAV8VjN1s7tdGFI9HxiW3OmLae\nikAhKbSDDCLqP7iXWEZDtT6Tp8rU+WaUJngg1S6RwEbjN13xiCiuei9OUywm\njbT2\r\n=1Q0u\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCK3Namy3MTuTH00nFFoIGDQlg4y+wOEeAVcCYeiFNGZgIgJil0rXSWjgL/qMgDu5LaqHNYp5N3Om+GXPRDU8fa7l0="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565953181.1_1565953187876_0.4943210649053751"},"_hasShrinkwrap":false},"0.1.3-snapshot.1565956153.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1565956153.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.12","@scalecube/routers":"^0.0.2-alpha.1","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1565956153.0+df49c47","@scalecube/transport-browser":"^0.0.2-alpha.14","@scalecube/utils":"^0.0.2-alpha.13","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"df49c47902d7fbaa6dfa12a187f202edfe4128e1","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1565956153.0","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-9JEX1b2H2uogMAHi6ra/kdy3rY2bntbKW/XoJHnwT2wydCUNAHSIMhS6p9A7SJnNpOc6zc0I+JMvy6S+BfMm5w==","shasum":"d441c560df3a504e58b1a27207699815c8474435","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1565956153.0.tgz","fileCount":60,"unpackedSize":997589,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVphACRA9TVsSAnZWagAACGcP/252AVUnIWu2bGci3ro6\n/7+ShK+Dk8gSoZXJxE5Qq6/jzbcOPHjoX2ZvJMqyPpNV53QefE7kYu+GzO4F\nYOdfdsM2uGI1UW34cthKKsA3jAx57MZVJEIatLusySccQZOXCrpRW2cmnhfW\nthZ3bjHfADsLAYLPw0eB9MuTEXDPtzB94VBRYvn5jhFuUhiuwHy5yFK90fl5\nReI9isKtB7bWmZAQnCsP1S0u5Z8Ib7CBp45+eWXkhzDmpxeKkttyOMSDJESJ\ns8d2HZqO4lNlkrCDPXKPW1OUFu/HhLNYRYSBVh1VRFckgB8NUydu5MlPVUZZ\nCTQtsCwmQGK0uIZuEdKBo/otGkgPedLkpbGNezu059P9z7kA+sYrBsIFSMqX\nkFDz/jWrfvLlGISIohsJ9EMG0jEGh9waMCybw+DRyXMwuDJSWanU5ZwgxOWj\nbGG5amey2tsPFhrHpMW1pRXbUyqURxj2CZz0WGqoTxrWmZ/T2+/ps0HngKPg\npcte5751xudZF7Om0X1mfRVrMP1BB+SzbHCla6mKKf7PzRE6d+/KEH3E82nJ\nvGx9B65u9XbrNOgomgcBEhDGsJUafCu4uMXxsZvXJeiFi2I0DOQUKClcIftk\nQ9unnHoedRk0378ZjFKnF60f4XgTCDBPDHY+4v3ZaBTQw6KqvDJJHo99Hnft\nB/Fb\r\n=e+f5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFjI2Ps8ThjRmmwEnZtFoomDMgtwgFL/dmlV+rsymxg0AiEA/9Ix0iaAX2DBN5FqgiOnTPUhYU9m53yRak+VnzGVFK8="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1565956153.0_1565956160039_0.8759147846884017"},"_hasShrinkwrap":false},"0.1.3-alpha.36":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.36","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.20","@scalecube/transport-browser":"^0.0.2-alpha.15","@scalecube/utils":"^0.0.2-alpha.14","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"98609d0305c923cce3b0e5399fbe842ccd612cc3","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.36","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-9pzxMXrH3k1oIKEob239CJL5O2RKQXceriK1FokhBnX7NbAmN8Q3JG8MSe7QU0cBeZG/cHrFK6mcF9jUCwcdmw==","shasum":"c669802a285775818a97c50d385e641d87a4d9ea","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.36.tgz","fileCount":60,"unpackedSize":999537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdWOdhCRA9TVsSAnZWagAAD9oP+wXmJAOamgRTLJ/R0n0N\n6cjs81Bxtlq26hJOWKPxrh8x4P0a4Szuhpgh2CIxBOId9u9+hWmvOARNWNmh\nrqHDCTyDXtcTL5rf/X2POiI6ViQrfl3xuLntxIRsmOQGQmnZWbNb6quCZE+T\nXlwoeynnYjGev1SqYwHBzs8HjazEIYeXP57qwxDN0czP/eS9vbBvo83dcyt/\n7rqncvBTDMVCZOFGju8/0qNw8LXFJHZMxgJmk7IlBS7xW7wHJe+KiL8tkztl\nHtrX4W16K1sRJHKbRoWcL9H7Qe5p4DnqiFKeVY8YSSZI0NPyuedpYYMlND+J\n5AQiJRQdxaXLe71HzsIIwNQn57yaMW1ieZJIl5BpEdsqmmt1kVzUmwihMaXl\ngIPj5eyhCsyprt32Xud6d0LY4tsJlnfqIIPKyMUxC/uQvNC5I9z9brZEsTD2\n4847ftPftoG05IwNKLEVWOaH/PK0m7cs+fg2+Jcjxl3pnwRH/XR3c0L2XpZ3\nrRAH3hNLJ76nsmXdSJYFwHFwWj+CBDy1DE3bIBbnKV/X9qlJMoEdOB8SI9Az\ndhlDDgvzuag25NU/1j8+AY/8l+QwwuRomEO3tuwK+moZdQlRVMFMucoAa3nY\nIGDeDLfmSqlY1aUDxGDfXi+jV4G8bw0Jcs1VoyUcb0UUCjHBg0uFbnCEsLAg\n0vIa\r\n=FRqE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPABfeEGq82ZSQA+hG/nAke5DBIWcTehswyWeS0h/FiAIhAILu5+M5xXIhGmG1vbM377l1rUAQ3HXeG8PbyteetXVa"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.36_1566107489108_0.3648967843952926"},"_hasShrinkwrap":false},"0.1.3-snapshot.1566108010.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1566108010.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.12","@scalecube/routers":"^0.0.2-snapshot.1566108010.1+35a8af6","@scalecube/scalecube-discovery":"^0.1.1-snapshot.1566108010.1+35a8af6","@scalecube/transport-browser":"^0.0.2-snapshot.1566108010.1+35a8af6","@scalecube/utils":"^0.0.2-snapshot.1566108010.1+35a8af6","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"35a8af6f4cbe2af327fcca4ff1be32e03490d057","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1566108010.1","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-sa5mUAxWCDomz3QtVX8LWWir14CUENysZmw1L5nRkvqDXFvdLJxuJ4mtjONSlfZxwuEMXjTwYFnAu11xTpcBeg==","shasum":"172bbb1a2f0dbd5d6e06fe7470df9b62fb88de7e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1566108010.1.tgz","fileCount":60,"unpackedSize":999643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdWOmBCRA9TVsSAnZWagAAhhEQAILF82Jaqz45kDnT6IiJ\n0RFSHfMg3aQ6eulVP+4RRjhFixbg1WBRtHf79ejcsIURwdtHJypQboWSGAGh\nQbNeiAlndQnsrDTPcf5MVU24XL8C5mRpmRseJjjApWvDPMaIlZ5Hr1SxrHWs\n6I8c7glLoQvQep4xGuT9cqFyuG7L4zgeovcfV+V682/e9jgEnBJvHPseFSoe\nrb71+LEXLAbI4oEI3es8BuqOfRGY3ovaa9l+0AwtRt7t9AsQuEwbfzmvrVWP\nslyOq2mEyrumEYzO0+TMWA1aiPik8isxgESlFkQoQnwDDclU2Oce6f23oLaD\nzqYjNF/U2o/EgT80eF5hCvFoJxRZuWMTUBCOFHGp/BbMRb6GaOj9MaBf784N\nh4z2exppklFxfvdAfLPmVgb1VKGrpeWbI2HaMqWTFtsj3dpHNEq+2stJf8Op\nql7ufvVxOuaaNR5lxjJ/SBbCCkdyvCL5ogvlQfQghW9As6xGDWw2ug9HU/2S\nU9AnmqXtcBdw3yR5y6cdIxnIFKh6Wr7jQjyKZTvQMWUgUofVTfDR5dLTA/Gs\nRaFYPUPHGgEnARb1E77mDLV6kMiE00bClfQY6AkSDVJgygvItOIvmgNVim9+\nU0t78jEyjGCYhBM2JV3sJtClNc/NDacHcsJ54rL/OzaVmzPZdIU9IXxttPmO\nwlRV\r\n=qxc8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICsM3tA0ObkS15moEgouQKemiU8nNguC3ezfqqE20GJTAiB7UYzX0Twfm6g42I7/kA028SAhHPRkOwuCu+MF3JHFSQ=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1566108010.1_1566108032923_0.8363066862118826"},"_hasShrinkwrap":false},"0.1.3-snapshot.1567075661.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1567075661.2","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.20","@scalecube/transport-browser":"^0.0.2-alpha.15","@scalecube/utils":"^0.0.2-alpha.14","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"8e077f2791130334c2e377c004a7282427af495c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1567075661.2","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-NVg3TCdHN0BWwlddwx1IilsGoFYnDYLWxTqrWBG0ZJAvHX7KzfNDWL+OSkizJUbMVC3yPvzVYMVEc4Oss1pg7A==","shasum":"4932b9d0fd34c721c83f9d4a1d48c6992ed68648","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1567075661.2.tgz","fileCount":60,"unpackedSize":1000360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZ61QCRA9TVsSAnZWagAAF6QP/joqT0EIFyuyKCaJR9hj\nCbf0j6Bfhr3c6GxTVURvkloM/admyT0MQ2l1rrsGaHEVfuDPTm+T0vyI0biL\nVezUIRZ+9R0YgIYyN7OjaCk4IgDOZhMXb2g3TOSqCz9kNLJVFpEfWQt3b+Ur\nQRz0hq9h5pqAhioPYiOt2wssKk+dyKdED1dza+CU8AmCWS61TZWlEANDTzg5\n8CNw6oZfBoAe75UHfbA2UMn1CtGMsRyBbMzpdffli9SUrLsmBZykjM9VajRZ\nMU7IQYUTU7+xizbOV6plPUiESudYVIziHLQzrn0Q937q3Xt1IeTVAO9n50Xd\n+rhlib0iSRG0/vr5P5/KYvu+9rxZ9egzJGs2uzELLheQFNlXDGhMylGfeJVZ\naYxCA2Nugh5L3aombVvAucJF8QqG2NZD/oWBM/h414KGdAaFU7lfhfPsxgdE\nLrSHGsu+nqaBcWDEoYycxPHltckUkzMAxbMywgnK5a6Q1k4FFTPoOn/JvCFk\n9TP9qWFE2Xodb7Mho6B3P0fWAMNf1U6kxHkqERoy9m35EAGKX9sajmQP97IK\nb3yJ++pY1L80QZZChqd3CCvo1xsKjVIlMaNi2+91sTP/zEpdvZzOCg5JKr4A\nTDT3zPMIEaPlTJvZjoNXcuvb2BGeBVLAdiZtn56reWkX4gMzOdkog/6XMIty\nf0Ug\r\n=FB8w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDGkobCzTMGF86yejn8qvmlYUsTLGdP0NuZg7pVfmK2AAiEApE75ajmTErY88CIvYZv5rY16rki00rHuvI0gioeLFS4="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1567075661.2_1567075664252_0.4585765882514323"},"_hasShrinkwrap":false},"0.1.3-next.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-next.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.20","@scalecube/transport-browser":"^0.0.2-alpha.15","@scalecube/utils":"^0.0.2-alpha.14","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"c9179a28ac6e34ed4935f4c1033b594c4b8abcba","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-next.0","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-fcLBES9Ez5Jlxm1Q1stbVXpPq7GlDj1Vjp1hgQapdOIi3nRaTfghRg7B8PPHVhy7PP56wEtmW2fX1k/gO0NT6Q==","shasum":"ef6cbae6d39d2e0881936ad0e3399ad8e395ded1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-next.0.tgz","fileCount":60,"unpackedSize":1000337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZ7ZmCRA9TVsSAnZWagAAULkQAJHl/ztNnEJGhczUv7SW\ntWHoTDsVVec8b7yW8NFY9WlzqUu4/s09brWyEHQ37PoJS1cKDsIrueWwHRDS\nsXStdTn7BemoJ+YlJOSaEkIcIxbOXKs0Bk078TopddBoeiWNqIw0+kldCNMh\nir9A/cMiC622KWEcbnp+AO9RbaYJbCRgLp4xDxKYaH4hssh7fWnnUIYjQR7y\nwxOR4i3a/mOp4mLXN+8Q4eg/bKJVxBUjP3jG7VWAum1vFigKyftraLc2pzNe\n6ykYaxTSR53Q+oHIz0O2BmouYjAoKJnZyuOAVfW6Voyz/myhtA/t9PvIEsJR\n4neQHqs/t7S/B/25CnzmNfGg5c0AL2mVT+xDM9+rX/ep4Z2R0rpIqcTIoqcG\nKrnbdD8JA6sOWegYTsHAqU+woyrVqNK06dBOj00AdfcHwcOG1yjGiv8YgCxO\n/hBYBCHhRjRQ1iuJdgCLT6On/PjfmhgdQH1ZPssFlr0K9j8QLS0WqsDXdpNz\nRTZEdNTLi4bUNkX/yTBK0I+KQ9TU4WqQfcbJY+SMJp0ereXZMoLKb9DfCZgr\n76A0x0n3b+uzFAP2vrw1x+LI6pzxU6owKK9tfamsjwEHy5uP3DaGDyT/BkRT\nI8EvXCUh9Mybu2p9YTv+fWmfvLDX1EkXQAmDUUKy7DCb2kBUwhCh9Wc0RgHI\nUwI3\r\n=6h/b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDg52drr9A4OKZ0DeyplCtcoDsZDLUN4s5pjou54BIXsQIgEW3L0sZTQhnn68WEtK6mylOLCxC2F/uvdG/A4D+le0w="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-next.0_1567077989346_0.2598816521953713"},"_hasShrinkwrap":false},"0.1.3-snapshot.1567320926.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-snapshot.1567320926.3","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.20","@scalecube/transport-browser":"^0.0.2-alpha.15","@scalecube/utils":"^0.0.2-alpha.14","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"6fe4fec0ebb1b416e11e0b0fe22a5d8d23faeedf","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-snapshot.1567320926.3","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-uOEeYJTT3ZYFe4NvG4dEUjsuK1k17I2suN/qvRk55TrSJhAKckASNItw1G1EkbyuzE2ANdFGv4g46rrGM1G9YA==","shasum":"f84bb0809b6b48066f991c81bc4f74c7f23e3ea4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-snapshot.1567320926.3.tgz","fileCount":60,"unpackedSize":1002016,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJda2tiCRA9TVsSAnZWagAASHEP/1M/ZxgybpMs30EyocSc\n69eFDJCQor3lFdb3H0vsJrAZ6Spl+JqbTEH0S13t5/0F0AvSIcRQK409NZ4J\nbkVLqM74H6Bq0VJT9LvStqc6bg+uXvYanar3FnWO4cF+aalNNlCg0AhwSHHn\nGrmOL/RMhgT/ONOSOtzL1nk+f1fsADbN7dup7a9IC+c5FNQsrdRV0sXyXmyn\nRiXwkzLyIBDDFwWn2SWvsdE22pDo0T+KNPt/5lXnP2D3AKv0akCo6EVhs403\nMziKAE5NfXuVOd8dpnxmTmsRXMDmQapyIJMk15/FxCQqhwe42M7ZHfzTcGMJ\nhTaIdoS/YbouBdGA1tcfuefipuNf3yiU2Gh7cBkZQlf2fqOeH28fqRpj7orB\nRlo80ppPSX9N6Ss31drw+43/UQCRA1qHveRrckh7u1fvjKxe+wcFe4bAexWC\ny+G4rv7t6m0/DLFRuXfbuS0d4kt/vdc64IkNV/NknA2G/RXZaLI+UezR7NWI\nRwtJY5ZAhkm8kcgJJ+kjZOtdGFvSTzQlaFZjZLaAeZA1CwSaEG5dJZ7QMFEH\nZXZM83d9TX+o00itEzxy9oniGXr+OB+6kM7WMTAheB0h3p0RFB38wbQy9amM\npa18JY+SwIKXGePNKqXmZRwEgLuCoYhsBDKutmPD/Atyl+2fXTyI6XB9P+a+\n6971\r\n=Vzzb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAtx75ApPu7cQqKK75ck54iGWFjGZOt4wsfEj85OFv6YAiEA01VJpTxIzKLM3HP13YLT2btiJqqAXM0BGR8K6fr0ShQ="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-snapshot.1567320926.3_1567320930103_0.9204808737156023"},"_hasShrinkwrap":false},"0.1.3-alpha.1567321030.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.1567321030.4","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.20","@scalecube/transport-browser":"^0.0.2-alpha.15","@scalecube/utils":"^0.0.2-alpha.14","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"578e2346f7685b6cfa308af070b84d5275a4d781","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.1567321030.4","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-ZlOlszOvCPeP0+FjP6bULYftjZ0MY/VOR2HuRqinEVNn/SwI4kK861pRta8UbIvvtSC3usx0M/Q84g9pteHNfQ==","shasum":"455dad267fa590d1036ade984b7e079c441b7dd1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.1567321030.4.tgz","fileCount":60,"unpackedSize":1002013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJda2vKCRA9TVsSAnZWagAAm2MQAKRJ5GRFmib14gsq3tM6\n+93uaXVgbuF1573HKyBXb427VN6jayp/U25UGgIrzKKt2Kpl0QHV4kjiRSij\ngo2UuexT9Z/I/z0j0SEXzJdsmrtSmQhkeDTng/9OhN6I+Jq1p61xGoX7fGnb\nwbzbFx8u4lHdwwiX5xD6m7GrV7Q3vTM9ZMEaJrEEBY0ibbrXSlLyURrEnHre\nD4vEUDbJfdpIOd1aTDkseSU+Tpd8hy4jltJ7zyP0LPfkJL78NyeKmVtr8zK4\nySZOGDwYs/6kYFuUAY6+6G+U1B64k5BmaYcws8LobKWAy82ZQGqdt0KHy/a4\n5r8cdV6yggEEWJ4XN0l/lUsHKKfk/YMP+7Xbx0GyotAycNMyZoB2tmTwc3CR\ndIp1ym6O7qRmCq+jqVxDMKQTjVM/yQ3eyc05CvackAxV0eNP2Fk0VLxIaGJ/\nnUxXjVXWTBvsvzUdydapjyB0QglwfRBYDsrxwwjghm9e3xzMELNJRGNLmKfp\nLHGYv0l5fuobWGseGOTdSU9xdbIYkRNJFGKwllL5rZAy0fM/oeHnRDNmmZUG\nlFLWY2zMluZ6QPgDv4wai3DMqnU8AEcujOETYbIgjHGctCoTSu9yyEhdiMlz\nvM/9oAIkPNa9i05piaMmWP9hWhImiT09WDLARyzPHLt5RcgCCuJPxEpmTzav\nsenZ\r\n=qrD6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSHAi/LkfH5xLeS3PO53dYZewL+3hUOJU46pxNPNMtQAIgZIeZWbEpZhFsKVLMqn3fAB7w7RVbnFO+p2aI6ydjSzY="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.1567321030.4_1567321034069_0.9996570680542831"},"_hasShrinkwrap":false},"0.1.3-alpha.1567321482.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.1567321482.4","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.20","@scalecube/transport-browser":"^0.0.2-alpha.15","@scalecube/utils":"^0.0.2-alpha.14","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"578e2346f7685b6cfa308af070b84d5275a4d781","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.1567321482.4","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-UhBvJglDWKLQZm1NhOcTU4zypcNfc7Vwfd6pLTljU/s4DPQJP4xlkjkyXrFMLIdtNNYiJ5MkbXKOCjM5n4cwAQ==","shasum":"df2997d98038ba68b3b0b691a0af89592c3f3001","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.1567321482.4.tgz","fileCount":60,"unpackedSize":1002013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJda22PCRA9TVsSAnZWagAAMxIQAJBpZ2hwMZsOqwnXAp3y\nYTou1OtyADfNoaN2XH7h00i7XLAQeJu7tVKmk86JvIIx4mjnwZ0H7fCsQLC8\nHZXuvRfcaRc4Jx197mTiyvJ+78zUT1H4XEPKwO+KIPLKO7zs0s3R9thF+Z9F\nGK0Xe/gvCaoGf0nFxL/pncWTRYbZHk0WCHIISvmoZajIWzIWNUa7QLHYAJFQ\nSv6OPaiC1tmBBS4JurfgTv4zuod5sZIuSyCkzQVglEzpk2UP6Enr1h3l+b/T\neBG966xa65u/GSuCL6clFVsCSHJSAB3M9k/udq6Y15hE2MabfrTk73kU/2Yp\n28ahHSw4pQSppSNI4S+ZiQkudqxt2d4wbtkwbQz8AdtAXSFrsfaB5GFSkgNg\njBM9YJyLn8P+98zKmm0jbkriY+gYkFBGOs0EdG8WCFhHp1X5bZcvDvSsSsbo\nBhXxxmmpEZJ+gyDqN8FI3fn/MkPBSDHot9IBJKpHtqZwFkYlnW0fLOJEuyjK\nRqEyWwb6TfBhwNAHS1WVKvB3QjBZ7hQJcy+uJmxCZGNtNJHDfn4Quns+WVrY\n/ROVCxZ3TNOZNz3KVMDFtblVE+wx6BZcDH5TQdgx+yPNnZQOnEFQLsJtwc/t\nTOIcqy+Y2mQOnWH2SkjRJT8eQYbQ1hkcpURu1wipQcLjWPauGj7J3+jBLXi0\nnaQu\r\n=yckx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID7m5WXkuMrD0i7HbgoxYxac+tbtI+oaQ+ctxMHehnL8AiEAqLHhOGNmq1tuokYbcpIJ4Iin1oL8V8P7lo1/kEDq6pM="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.1567321482.4_1567321486440_0.14093239393950285"},"_hasShrinkwrap":false},"0.1.3-alpha.1567321859.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.1567321859.5","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.20","@scalecube/transport-browser":"^0.0.2-alpha.15","@scalecube/utils":"^0.0.2-alpha.14","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"78a60a16b4c76526fe0243f4a3429282d2959f34","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.1567321859.5","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-rvYJrAhAUkUDgkGG/nppLXqJbH+DMsdo9fTkYvHehCGX/2zlo6h2uSmoFtngSqELp9ThtS/FW8TiidhEfXQViw==","shasum":"bd825e16543da4cb04931240fa2f64900a8aae26","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.1567321859.5.tgz","fileCount":60,"unpackedSize":1002013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJda28UCRA9TVsSAnZWagAAw0AP/0GoUcVIyf+15hC8JfrU\ngjiFpnFWphuMqy5OkFfFE9XE8QZXcpf4ID88b9JRBy0+hbyMtgrBuCwUkqLq\n0iqnqRpSkNeUfCcpMJfg+NTx9IY0RaLKl/MLQ37e0nG39ijk0Xj6Oye1nYPl\nK4F1AnEWN86OQWnPFEqemMbKo5NwtLBaJMoYV+JLQvlDxECG8BvBtOmdSrIN\nLd6qE8QUrRCMmPBmmufNm5e/pR2Q0WrNcv9Hw+2AkbgJwfpb2DrH4Ko5gKdm\n+RNS9BlmQlEC13TqKPj2I5Re7DucaDlgIaYAwpb80I+BN8gTWMYGkjK0rcy6\n3R+6neYpOUrWbtCAcKyghPfUvI0HZCbMdWVFqHmbTRVlxPTySg1IAlxvoM6v\n7u3/6uYXpJUzdjZl/J+gIRyBcIUYDjxuitaHwfgdeNCP+NFzdUXrKr7cIkdY\nv0gqZNqfDaDScqlC9QA/PN0uLez6IHcsWH1zYay6zmnFD6o8TuOsnWH8x8yD\nj5SEVg92Kyfub5p+RISolPHtHDMXkwVq6akhXOrKw8gCbxVMene+Gs4J8sju\nuWZx72ldGSZ1FP57nSkc6QdbxGfMhGahBL5ohn/CfUeXP09i72gM4Ea36K2/\n7H2Zt5bBotkX/g0iKSUnV81M0W0OsdY2DKkBsHL/Lgz30XCdFqTXr2UzZnOh\nWCrU\r\n=vx9Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAzvJjpXOR4WPjOETsgzpyW9tzROS+uKJ48HyQV5xLPzAiBTNQ6hpUmD5xt1wVK1GQGFfW2s2S9fLj01v+WPy5iAQA=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.1567321859.5_1567321875791_0.4249785200693501"},"_hasShrinkwrap":false},"0.1.3-next.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-next.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.20","@scalecube/transport-browser":"^0.0.2-alpha.15","@scalecube/utils":"^0.0.2-alpha.14","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"eb2b1eca9f38190ddae08026980c7c5f532df690","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-next.1","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-UoNL5YNjY9pouInCAMRXy89+uIrCGMJHFEYQsQWIXkhj246HO7Su9GGNLBwBoe474QohjeL/KXWYQCOyX5PbjQ==","shasum":"808433db900ce2882df7903a0f5e7900daf9ba8c","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-next.1.tgz","fileCount":60,"unpackedSize":1001993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJda4RTCRA9TVsSAnZWagAAeqQP/iqQ+hPDlcPdO/RvVrvG\nlsz9SdEHeOnHXBHh59UZiWMTthfFs2I/AqDF8RqH6GoP2jlXT2PDLfpTzmzR\nXh2HX1Ht1PBfqaAXc8OOSaJFA6UFNcLSO2GHJq8b6nee03kpzsh/7yw3KXkB\niGJ2afqgKsByiL3BsqPEoYSa5hU13/3M+oHbcekaDsQJVFwc+gcMkaU99usZ\nXC94aUP2gD9S+ljD//Hp6qL5mxDUHxFu9/vPdHPe93P2H47Nhj9hut4XYcLM\nbYxgTNuhoXTaleJfYxmt2K4nbPx+joX1pInmaX7ApOVtIwZGKVmD+nmG/OOQ\nM577dGuozkcs5VW8o+ifW5uNHVD3kvg81Cbrq8uSa17ygF1R4ZH6cwaMnBw8\nnwaQj+nGrswhZgXw33+FH/olTaki7EZouage1p4vX0hpRO9IK0qafnH0csU1\nw0XjQr1uTJUCLcbnAX/5djM573bAyF5beKnop4u1Py/GfHxHYok7Y0oR6GcY\nAHmnZj52JIie/9petiIIJ7NQJT3/lF952tvnqLu9Gr0zMUySTPPZVSR9l6nJ\nD1BBuGksrUFxPXyHsZQGnRIkmn8v1hyyRk6YH7fG9r1wlrJE6GBOrRD/ZWeV\n6PUljubw692PBtZj6DVrwJI843GFOGqIEPzBDQ++fjWb6/nCwxMUc4+0YQuH\nUGEw\r\n=AtNl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCRQGwUsaeoq6chW1hF7/UFT1cLKEfh93d4Fdvq9d2uwIhANl1I3H1KQQBK9MLeH9VkA8SZEVC5nm+WnXfEafpQG77"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-next.1_1567327314403_0.8061597407060148"},"_hasShrinkwrap":false},"0.1.3-alpha.1567341768.7":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.1567341768.7","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.20","@scalecube/transport-browser":"^0.0.2-alpha.15","@scalecube/utils":"^0.0.2-alpha.14","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"fb64a50713f7fa80b0ef2dcc2858e921c892ce12","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.1567341768.7","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-vKySyDuwxAkEkjP5Lu8ns2XzTy1ZXrr4Agre7nJE0uV0S1Z4PdvVX73GyA6zl86ctECgo2J01SeBq8pBTfAZnA==","shasum":"e5be69e1bc7dc3b1fa487eeb336542f6a9b3aaea","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.1567341768.7.tgz","fileCount":60,"unpackedSize":1001965,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJda7zMCRA9TVsSAnZWagAAbJ0P/At0c83iVMUQ7Ar+47Mw\nqT5FbjfDsEnZKsRWWjozMwEWWSsqA4wUPNSKriU6Y8E79J95kMquOkaVqUzF\nSeIciu7Xi/VDwU4lpZdAJ2ZEAe5riY/Zfc0/mxdg2agptIcztQAnep7+Ig3l\nnaqEQCMzvP+AxQBSDpYpmRycPrn3MpTlcPvdvSTxwiH7LBrEpCh/aABCOPS/\n5/mNCPKGlBbQGh9hNPFaUMR+cWPcSkN5amaGEBo62JED1GHlxImI0iClot1i\ncrumMZrVAzKFUY56nnFGBQpes3xoJrYZtAImtO2961G4L+Vfiid16zIVVPxT\nHpsteDK7+nhj9vmrSAVEo1qvHiVXSiynMwc84gmd/55qodOcXOiPzGt5K+kF\nX8IKXMKwwb94nthS+e8uczdiVuFkdlbbfJ8NO2RYgwHFITwOfkdXHjsfSWqL\nErkrUVjNrx1G1yuTMXIKwHwOU61MV5WBCz4IwUvAAHQQwLVnVETzMYR1nb2N\nG47B57xDbYbdiAFfo+Y36kW8g8EkMOdhKy2XbL7kpeAX/E09lex3K+AoY2Sh\nOEquCrnF0kKVmNzdSnlCqMzpoAiJpQq1/8+h3aRgKgvjZzN0B9aax9sAR/H0\nE2tJO70fyNUcqjxGGPNdNySK9r052a0ipR7HSInT7qk26WN36YCB1LCR5ySw\nFx/n\r\n=AriI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKSSvizVOP2aHHfG99tbEutOeeZBzqEg48I8rc7JquxgIhAK8dn9QHlDbENZlYqHudL2/Mx6t907d9op2TDAagshS6"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.1567341768.7_1567341771982_0.8391667465445862"},"_hasShrinkwrap":false},"0.1.3-alpha.1567589972.8":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.1567589972.8","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-alpha.1567589972.8+13b4bb8","@scalecube/scalecube-discovery":"^0.1.1-alpha.1567589972.8+13b4bb8","@scalecube/transport-browser":"^0.0.2-alpha.1567589972.8+13b4bb8","@scalecube/utils":"^0.0.2-alpha.1567589972.8+13b4bb8","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"13b4bb845accac8dea56311b3aad653457ed679f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.1567589972.8","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-zvab+TZT7ZDsI9ywEbtn8i1UVXxsCVJt8x+rL9Hk8JbnrFDGGRRZcX/T+FSliVBcL7yEKl92uOL3eOK60Pd9Bg==","shasum":"db16f2307f1263243969a2a0f6d27339db83bf0c","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.1567589972.8.tgz","fileCount":60,"unpackedSize":1013914,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdb4ZzCRA9TVsSAnZWagAAJD4P/RP/Dl7nlmrjFINsrCMe\nZ6bpe56W3m2RJgKAgdEGQuIVMh+SgQTfcU/VqNtcho8b8pnpK34U3gnTr6rE\n0c/KbfCGiyU9qf0KRqjOUZ1hHXXSR0lsLruCHnQD6/uLmyrGbjWKz7S23Vow\no5I4MmwCgJBeml5Q1bZu615U9WvDqC6FcZ+I/fsiv0cX7Yo/feMGhXmxFKa0\nvIm3SsAc3O1UybT/Gfuszejw/0KnkSQx6k42zm8IoKO0gSSZok23W+gHr0NA\n2PizhTjw251GC+ciYu/jkGvy4vZc43OHTMvGnbCPtUEDiBImlDVxNSASKu4y\nERcgqXGYx6ZqoHw24vkMH8xZJX8b4Be8V5YtOR56f0a4PIvWZ9w5Nlgigj+p\nJov7O/c+gZ+IsNXqv9W87jkXnymrO84dSanVmpdDAlZamxgDWLF72qFpkQ2m\nPxQF7BrBubH0pauwRXIczdUIJqsuh5gVWbY2xW1jodGosO+xQxZF1F9e3Ejs\nqwhxxaRN3ANLF2p4IKwfcxXmXTylJllJhYd9SgEqDJzNx7XZRPaAF8ogaIFl\nZaXl+/OL8gTVB9yxPdmLIOXdXQ6LEFrIxbKOI9zqT1H7ygI8CqCbW21vBjvl\n/jgJNxYSQw0gT18oHslnGX5ctkhlsp0e0t8EZ1+phMkrhTFvXw7+RIeetFOo\noJUe\r\n=2vh8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFFyGo/YHlbzYvEZyTIaKexkayrajkbtdEjXXlFokVA8AiEA4IakrnXXPBt/4b3jH2uCFrQ9V0mgWMYsYR4ij00papc="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.1567589972.8_1567590003348_0.9222717135226655"},"_hasShrinkwrap":false},"0.1.3-alpha.1567945659.9":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.1567945659.9","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.1567945659.9+084adc6","@scalecube/transport-browser":"^0.0.2-alpha.15","@scalecube/utils":"^0.0.2-alpha.14","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"084adc657e73e7805c6452696a528cfc560d1d72","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.1567945659.9","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-DhlDzaXDEegSj38xW6/gLym5gAAZmbHVB+zJZ6Vk9W3SrVNjGdw/sKc+GQ01EzmR6CPvcMCiU33L+4uY2vMOog==","shasum":"10e0917fa71b30a16c4215195a15195cdd16f8a4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.1567945659.9.tgz","fileCount":60,"unpackedSize":1013858,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddPPICRA9TVsSAnZWagAABqMQAIqT3u0OPUJZppPvScqn\n33yUTZF73fvoxDa7zqfLxjq3GJn/agSzdNSeQybI+U4HkT7/R2gNL2QzHajJ\n7+0wyUEPaL9IBmud6BHKJYSdd+IxLNpJI7w/U2U22RtOri7Rc44TEZYmZOtb\nIKiN/COlI08kBR5It5Xy8P7UfdCnABxYl2/e6kGtrmONBV3ojGFc/ib3keac\nv0XmFQpTwquYtdXaJxt4BqK7pgB0exegbRmPtspMXaKmJe0xtZRmp7r7NAN9\nF+JI0uNwUvk8VjkVLCrnlEryuwNjgxLTITPm0zP2e4ImalnWlWsQdMpOvs/c\nTI0Ov6qXichoXHolQpCcUDULkIemNo9gHfZPi6Dxr8x8rhkmVjnfFoevuZoR\nnLe9Or+RjIS7H9Gt4EUagwJGUMUb0uPp0s7HIPoFAhlFCbE4qyks0FyPRJAV\nqILKjYACtqDm6zDUvLUIbjhnPLS/UfzPYyQN0bbgzFH/PiJhpKvkbUwdvJlz\nTTwvJAIIenSH6HGMyAJAIUeuByzufYVi11PCM9oB1Pqpqe5vmLcr4W6vB4HS\noo9IAqr28JSqAepifrx/oFvkKMHSsDehv1lNBWsj5mHTvugnShDDWkN+po2o\nsRDnhzc2cCwNN/Sfj2njy9yHE7Pa2dOhMYEYsxvSpCax81l/MIX5xVCdOGmH\nqDvR\r\n=RDeE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8hc3CZOVKMSi9RtiRBmCCPBklQAJ2raG/iWq9Xk/InQIhAKc9/Q9kTXClMUYP/55XsnGgehmsGugVr6qKu5s3cLmW"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.1567945659.9_1567945671609_0.28079444108102325"},"_hasShrinkwrap":false},"0.1.3-alpha.1568208690.10":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.1568208690.10","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-alpha.2","@scalecube/scalecube-discovery":"^0.1.1-alpha.20","@scalecube/transport-browser":"^0.0.2-alpha.15","@scalecube/utils":"^0.0.2-alpha.14","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"9c7b7647af6492008fb2e4831ba4845d74ffdbed","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.1568208690.10","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-OrcURAhZMPFGb83Vx78noAozODZ1cIYtc09T6uSQNNT20DCW/e3bm7EjXACqzK/bkgwOxZUuIxQtFV1mKAUTWg==","shasum":"ed4f89ba64c7c65f8ad93727dc4794a359421bb0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.1568208690.10.tgz","fileCount":60,"unpackedSize":1014008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdePc2CRA9TVsSAnZWagAAHvYP/1z6htk3Lhslj4s+bh4T\n/YZYejvaGQuPqHbGWL2re6f8f/P8K0FKwjhIv+QFw9T8APEiVT6SJDUO1/SD\nRX4mD1+jDZcoOMNFPKbrUY8/oxSeudmGO4rn3Xhs5asscunEZO7oWkaZJ347\nkicwaUBwMkquLSSOsNMIoWoCLxvdLam2NwKi2QXOTQ5ryo1jKLjIx4K4voSL\n8O93lVBGOhnK1L9ibRtuKyssSFvhoSEv7QYQR8GsObpBkgkRysNSOgrC9w7e\n0Vl+J4w/dzOXPP5dAJl8V4FmUUj2S99Vkvx5Q90k7oAE28YCw3UpztAynFnA\nl5CgfA+529V/0X3XlyCtY/10MK0G0m36ogSdirzAvPFKbSVEsl55lcMs+YgY\n1re/EKgnaRrA+brIpFM1ul/aDXraGVXpqscLEmUyT+rj4Vmk5YRaoUn4aeEU\nSQkrh9Giko1O1w384kWDBmSPLF8onjkcAtIKE4fRR+27pJ2FpugpGL3iN/mC\n0isHQfeYw4Xb2LH1iLJY2cuv8zpmRNghvO5eQQhb1QDLZzxIPl8Wzw6y8ndn\nz8Hjq4w2OMHQ8abdK7W7eHR+/oGoeFwHaHl2ms0/nwpjOUSQcKRKjt2hzMou\nSEzFEbBb3E5WBlfb28Jy/LJuj+DkQBIQOxdm7ZNIJWtXjUXeOjCFL3Obzxqx\nbgEo\r\n=9Uhm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiV6Ai2nubDZmMwLLtHh2ylc+F1W73lBv/P7MZb29YagIgS3V+FvVn/2TPYb5rx+thN1zW3gAuqT9WtnZLmRXDdtQ="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.1568208690.10_1568208694177_0.4220003154096337"},"_hasShrinkwrap":false},"0.1.3-next.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-next.2","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-next.0","@scalecube/scalecube-discovery":"^0.1.1-next.0","@scalecube/transport-browser":"^0.0.2-next.0","@scalecube/utils":"^0.0.2-next.0","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"955fa82115489b7d7bc95b5f3eb11718a75b3ca9","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-next.2","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-RBqX4LtDIP9abcGyD3MZnQ7YMt2NjkaUqSsWzRnRIog9KIP8BXEkII9euNWq5hPIVWxnkeuzgp63ZveW4SFWHw==","shasum":"ac73146717f24e4ab927972ad98021b7bce63a3a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-next.2.tgz","fileCount":60,"unpackedSize":1013980,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdeQAiCRA9TVsSAnZWagAA3KgP/jBab2EDxSf/kuJx8JRV\n2Fxz/edh34FTuYeG5UcNxHUTORPerOjbSaQavEc7SuM7DJO+fjAtmOvuRNAJ\nV369SZXhr0Vhf1h2xvQZhEqLGiMGJAbz84QMgqXMsyoNKjiEU/ZcYoUHb7iR\nYBeT0F9J08+rUMxGAa/nQ4CgUuuyxDzo0EZRTVm6xurCZQ7xj+v1NT5V6Pm1\nAqxRjIT/snMtWmbVRbIy/6AEviGT1cUFo73WQ5jdO/bERQoY+tfrFu3sA3KH\nbDZmbgbTldmP4Hb1r2DM/dEwUImvhLpU2SBAvFf+5WUVNXTwObppGHuf0449\n80K/gaCAcb/qO0e/hofnOvpJp6O1dyPZuFhA/9KmpDJTYJNDyB/jTvLtjTPr\nFi8fSEBvfbrug4ZXambSBGDIj+zhOscUm2ntHLoXQLxNAgGMIwhFqMW7HAgr\n6TnDS5vKieP2UKCKEqLtZBoHYX7nlBMGoTfJ3/MgP6oZLV5pV9L+FwHk0dY4\n+Tl36sMN2j9uheSlxwSrOwqtPJAk1iWrB05/3LWRi6COcbuNBy8hQGadmz4+\nV4rojbYpypJJH6aWKOyfoJyNtQxOdBE8V7tCyyRck7DlAVYWtzJvYGG7dFwr\nCpYYWhnekVFMrw8G4uyTvJZ7PUO96bPrd5TRvJdcp1/P30OmWzMV+/Ri7Vvl\nW8n9\r\n=zSIS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDL/lRQ8uHHEG0a9RlWrO8Sx2MfzcLeYaZ4lfbJX6pvnAIhAKTM9oQYwUHxSOelOnr3m5/HzxNtfzfxHURpHCW2j4Zs"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-next.2_1568210977943_0.9468389619571862"},"_hasShrinkwrap":false},"0.1.3-alpha.1568233595.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.3-alpha.1568233595.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2-alpha.13","@scalecube/routers":"^0.0.2-next.0","@scalecube/scalecube-discovery":"^0.1.1-alpha.1568233595.0+bb8d1b5","@scalecube/transport-browser":"^0.0.2-next.0","@scalecube/utils":"^0.0.2-next.0","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"bb8d1b521745e3a76c539902f7d8db1394980498","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.3-alpha.1568233595.0","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-5KLNok7MIta8QUJHZryNlRuhXQ9gzq9w8KmhfySLoVS4U36q7NW8titoABycV3pDkx6dE8qewr7cUWEKI8+QpA==","shasum":"638c29cded03b9b7f9a77c80899dc574591c40c5","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.3-alpha.1568233595.0.tgz","fileCount":60,"unpackedSize":1014747,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdeViECRA9TVsSAnZWagAAFbkP/1dk/gM4yf9TyUA0g82/\n4TlI48QzjKT+Y0z3YW6e1LD/1rKTi5i9SaI7lHDS/dbq2NZ5R2LW3n+vW2JA\nkEgRzgcPtfVGmQalLf+A5/boMOrxX26PNQkvUEnRNP5aS4wAzSeKub32GGQh\n4OO7LKcDDARSinzFfEyEV9jIRoh0+Us6YjK9Mk/dK8VesEc0/T0fDW7pE75p\nRkOtwg3M0wZMsZPAwdOzaORwQf/bPoIKFMsnqgDnscGOU37XpKDFFsKo0A4F\nWCJr1pji9ILpQ8pdkNADWxP1QWh0i4G4hE6B2OC5zPkOhBPArG9aDkUAhaZS\n/IsjU65+1sDepczPah9A1nqt9o1UOX1HS1J+sNGo0BVzMNd7lJ79dZ3o/Cbn\nOIkbPsGh11TFbemLhL+NoI/jxW4UHbMcGPGzhLu0683aPBl9Yv5b1MT2f4wb\nkiBU4fXfvH1LjSfY1LIVkD/boi/BUgs0/42/z7WZCPiZ6sWG5zCp36MDc2c9\npEq3qLv2qmDP/i6Y3xiOzyT0iDsv3t0sFVKFqyqw1VpFBLo2x8iPDcTwIJZw\nSgHj0PsfLVtw6Be8QGSkIUhWvyYAD1Ipbo7WeaZhZpC0imGu29GhGiZOyOeG\nVg6CjdEQY/zWSlIK00nqlARADaxH7EyqO/UoLblHDj+199JTr50Pl/KpNEuj\nCoie\r\n=vPdP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJs9aEYOSRpCFqIP3EF4flzFuXKufNO7RfLTHtp2zOMgIgJpOF1iRdVR/tUNynnk4gHXNjGxOL75FamMUvBBb8aL0="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.3-alpha.1568233595.0_1568233604118_0.7467102067914908"},"_hasShrinkwrap":false},"0.1.4-next.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-next.0","@scalecube/scalecube-discovery":"^0.1.2-next.0","@scalecube/transport-browser":"^0.0.3-next.0","@scalecube/utils":"^0.0.3-next.0","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"c9c472652129ded9eab760900232e8b51cb2a63b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.0","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-EmPmB5Ew+vQgHjrc2QJHpqM6/S4hizK4KMo7C9XC+ipu/SJNhchtCgzD+3KQkVvfmR88uAV4UlH/V2IkmIlc2A==","shasum":"bfffd4a32c34281dbf2baee00038f95f383b9ba0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.0.tgz","fileCount":60,"unpackedSize":1014705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdffOJCRA9TVsSAnZWagAAKGMQAKR21f442VUvSCKFrnEo\nDD6wU7fLlW1YOhQErJ6BjLm02LgI2L0cyNpk8DPBJzBVBvNSIQNtvtVpWEET\nWuLVxlk3/p0sLYyyOl/DkPFHUG0Bzr5IASqHrD9mrxWLFYNKdwOL2aQXB16F\noNo7CfW7cuprKfLrpSHeXpee6/LAD5sS/Y3RRbgryrTDACyKuERc70o67Fxl\nfYq6R3muJbD0yVtvP2nhSK2tH/a1xef4DN1KEbvaNHMUuQxIURsFALKJ/TK0\n4deuZAwbX/mTKJNqSh9rOz9ylblC0aRbuA7uQ/YzbbjKTDmwu9SpnM5nlqsN\nvCxu44N3muVuTMILZMe57nQ5C7zjoDapvtzJdAPMn/FsyMMgzEJiJgQU+jQZ\nNwmAxsaz9CR1zKhvOQLqTVSl/Pn89C+f5HO5PWJ9HYb/xRsWWW9cNJXg0ARL\nSbQQDun2G4fDjLCSeMBWgpevTMRojvWN2BqZ5wNzr83N/j/yQv6D+SMVrP4N\nf4+LXFXP5sZAdHNa32nYQDsUr87jsLAeaOoNh+pZNt/nbJS43/anJxw4oM8x\niSyDHISEwpdL+0NgrVhYbZnOMydpfyzBX4kPX8Ms0uTylLlkHGGLdcCSlCfS\naSIW5MB7b1TWQXczsxaJrVrfPaVH/BIobXp35EfJtTd+hQ9xdpBcHU924WqM\nIXAi\r\n=0utg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPzZPFkRK/L8zxnpWV/lRkrvxZr9e69UdNTGTq/HCcqAIgTr4UYsYM58BCBOQVKCow0qtuYEcjmedE7otQhHcP1tQ="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.0_1568535433263_0.17781890198996608"},"_hasShrinkwrap":false},"0.1.4-alpha.1570345800.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1570345800.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2","@scalecube/routers":"^0.0.2","@scalecube/scalecube-discovery":"^0.1.2-alpha.1570345800.0+6f0e744","@scalecube/transport-browser":"^0.0.2","@scalecube/utils":"^0.0.2","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"6f0e7447b0416d0c05fd3441f4ddfef882c39501","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1570345800.0","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-xmsgDpyrzS1kkUlI/HD4J/XElfLcSExbmSM9cb7iwBn8OguONoJfS2fxjzrVv64qdaVeAppMybkcSixMNIJdTw==","shasum":"52d29519a04321d5e47af5127c331b2087fb64e1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1570345800.0.tgz","fileCount":60,"unpackedSize":1014720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdmZNgCRA9TVsSAnZWagAAjisQAIxfloN8VhT5g5nmxWK0\nyePZLM+9TWte0jZ0YcVbr/E5nmVyxo5BtSjmGcFxjDvXJZCeezLLTcQ3IggU\nd7vkA4/AYtHrfNS4UUUr3a8r3/dd9ylpib2GkiUOEDg8iHpPrlCoHZphpwU2\ntG6+uMUd7yXMkL/1ioeZ7neEOiIhkiUxne+5jf22xsBJ3xngq1AEkCyTKHAe\nmSWKVotTHIi94WTXZiWKRYTfVIqDCUmFgsa2fg4mHtqPeSG+olvKavJmtbcn\nD4P4Ot2ORwKVRoWxSF2JcQr5rwPfRBDE4tBIpbnXzyBOk422fUZSRqdlhs7L\nCtY3n8/V2TtGCtsQvi6icA0RkkhO+2tof8zScHkCZ6cTt6O2u+923nSfUNRp\nAxiCRLY7Il3PyEhsJSR/8qq+kp1aom1+iN57JjD8Li3+ZgGe8u18MZ+kxmo5\nux5zSoE3iw/+M1BUoaDdkvVOMQHPd37xdvDRMzXMOM0Pl1NJDoEp54doOuW+\nslMHrvhSU+mXtWW6jv8kI7qxxGq3xYlz7V1YwtNXhb1pY9YdHJbyb9xbuVLF\nvO2rKV1vn8sn4V30QwkhTBlQLxtRxUkxC+RKh834J3IMF+0CSxAjKYzJODHI\nZCU/CwH7rOjC2k1w8lascPX6WetHbSM5Ms9+r7Kj4HY17WI3hkFaN5qZgIak\nb6JF\r\n=GsPM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwZjFLjppN0KPf7gSeFNrtAGdGMgvCwgkKRy1Kxav+EwIgOVtjyAeQzPF1vET2vCE8L2y42UnSLAf79yXGx1JMtPI="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1570345800.0_1570345823879_0.858376708158308"},"_hasShrinkwrap":false},"0.1.4-alpha.1570353846.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1570353846.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.2","@scalecube/routers":"^0.0.3-alpha.1570353846.1+1da7c8f","@scalecube/scalecube-discovery":"^0.1.2-alpha.1570353846.1+1da7c8f","@scalecube/transport-browser":"^0.0.3-alpha.1570353846.1+1da7c8f","@scalecube/utils":"^0.0.3-alpha.1570353846.1+1da7c8f","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"1da7c8f0d553578e3e57ef5e6c920c07bd573c7d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1570353846.1","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-FK42en6CDpATANHBinvSVLq6+UCh7wk3WQq4mlVOmfKaN04QkLboDq9CjTklPLHsomBnqL/EY2Cf3KeRwhP8Wg==","shasum":"bd268a347f44962492ab0be16e30017eab775fde","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1570353846.1.tgz","fileCount":60,"unpackedSize":1014652,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdmbLNCRA9TVsSAnZWagAABz4QAI8yUPLgjPa/4kcXX7s9\nt0PxEwafvEdibVpiJWrzwslgon4UCYGqkYfScrbuBfT+qm84onSFry5g5lKV\njzwTKU/vbe8v+y65BdqWC8bzL8qdoATKs8Mh9RYZaumPAviFqqvpVsELGUt/\n+YVplFDTBRKRD2sU7juKjiFq+5o7ZWFBfUBF6SC9M8zYsYKuUq1bSV8nos0P\nIfXzhr0XcZbuUBOqpSPOC7wpo2hAsouZ593Tim7DzMM3aQsqSgsU0yAyOKZ0\nIug3ADOiKKqyUjnvADFb26klt4W3MhqU8JNn+qf/LuWI54vVgQhtPbuOCAVS\nNJDEr1Xzc5X54Nu/jcHU8zBWkrJ4IXtTMm/rYBsIWkipzQstphNN9eMakpdA\nP+EgSs+q+EiWwmzd/EoNe4s2G+OlJNUI4bV8j/46aVHLNUgQ7Bu3JPuglVyP\nvWbHtdJ0NFXNOsxCS5eZIYn/3NeOvK06HVVELtK/lCLXKjDftoBK6HEd7GlY\nlE10kGXwHg24KuOqhTVlduB+zTHt4kWczAWgtz4xtuXAmTOnT8/MHMik7ThU\nZTEtweJcCvQlB+92SRNeH/iNcV5lPEYAQjFJrXfhUBO9qCU6szLd/BCSrUjw\nhWRxxOcBNOVwA0d71vPPuvqHTCl9GY8JxMJ9CNfg62hcZwfnNx0eO8AdeJpI\nl4YE\r\n=N/8m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHhHobCg5Z+NOQlRhG8W6XBj1MVWk3DAVkfgfv7SbZrsAiEA+AmMNaJtSfSKi4lRV4+5hXkHuRiIenDxQTeO8L+05Bw="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1570353846.1_1570353868589_0.7623414971037343"},"_hasShrinkwrap":false},"0.1.4-alpha.1571751561.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1571751561.5","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-alpha.1571751561.5+6b48d6e","@scalecube/scalecube-discovery":"^0.1.2-alpha.1571751561.5+6b48d6e","@scalecube/transport-browser":"^0.0.3-alpha.1571751561.5+6b48d6e","@scalecube/utils":"^0.0.3-alpha.1571751561.5+6b48d6e","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"6b48d6ed02fd6f20a04f82214b3be0902d6a0bba","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1571751561.5","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-JYPnfZOUwk5KtVegQyPnSiF/4fnrdwEx3HiwJuaUIzh7OAnfcaSbHbmC3+2lrnVBm/cUW7Ax3T00DW1fxRMYTQ==","shasum":"de04ffceac644e1ae9d9e38b4fa74ba5f16ad7e3","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1571751561.5.tgz","fileCount":60,"unpackedSize":1015375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrwagCRA9TVsSAnZWagAAAXEP/iJ8kTe8oblt3dj/T9dX\n49IZcgJX0IuW+aFSCO4dch0xFJoeNJhIqENwjBWo/eY+q7PDLhv88upzspGh\nfR9LZW1+1a7RkyXzt/Ha5FawKQJwuGiRtOn97dRzM5wWjylV8C4tEQqG6jj6\nSaZNhH4HZbsEEzOfjRMD/UhjSes4j2Ulcl/rUkTyf8L1MTDdmEzOLWqmEg8K\n8vghF3v33va13ismFYnak3BuGWG7eHYI8IN6Rrd6WFpDivnSKziesfmHQHOP\nXUy6ipxrvhNL0pcuyVP5ZxBazYkZ6zvo3YfQy0+UDA4jpZfj9dJcQivrcsFs\nHPZ77ba2iOY/bcLSwMPWGp01OU5MI8axyd3L0BMjmzjfvnTPuLr45WzvQHcR\n6BhxOZTUHkQB9LIQU6uSaZCVs7zWiacMCTyhN5jRQnm614aSWf5+73nNwv0x\nnWXV6KVRZFF3KZ2bgk77H+0P/ygiCtcfIJy1qL5pPIPMErHJXvNrhMKhiXwS\nNa4T6TFiGUzUcUAcFMGdDSXvzf7B7zhIFILDJL1hK36JPpNfwWxuqIB6p+7U\nDlSlFTGP3V6V/Ko47+zBbQXWN0fwDiHT/nIxMyTNeBE0+0UMWLwB8lNZNLpM\n6kQfiR6bqXBXv4tnGb7UA4k39O4h9GiUG1W42CIeSpZj4fxHr9jGGp2kt1W4\n0mom\r\n=Mz0r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAdeJ+xXxg3W8V/2WS89E9nAvoWuwq5mVYwUaiYw61gQAiBPagbfqeDtnApFOCfFmjxByv6fVvJbXklSZPt4rtXPeQ=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1571751561.5_1571751584014_0.02484085470750297"},"_hasShrinkwrap":false},"0.1.4-next.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.2.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-next.1","@scalecube/scalecube-discovery":"^0.1.2-next.1","@scalecube/transport-browser":"^0.0.3-next.1","@scalecube/utils":"^0.0.3-next.1","rsocket-core":"^0.0.10","rsocket-flowable":"^0.0.10","rxjs":"^6.4.0"},"gitHead":"c501bdc03c4afee51075d0f4fa5c88b368c8acfe","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.1","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-4KTTLEwRVZNPgq9iswNG4tBJ6SS6achDKWxdldnRBknw57Iwmow2CuG9An0FaJq/aJDEATNlIbOH12t0L4z6VA==","shasum":"5d73433207ecdc383749ed53060a5da99fc95934","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.1.tgz","fileCount":60,"unpackedSize":1015275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrxdaCRA9TVsSAnZWagAA+oUP/3k8PlFzhcjRH970xVio\n/QYAJ5RpFU9pqemZq1dzL2gZOF32Aj6Mp6QizSfK8aeggqPvL+I0/UKXJVCs\nQYRe2Wxq6kEcZUesmUV7supyJj9bDDt96vVJxK0859HvQTZDUTl2jzpI6wxO\nWVzlLxzqZSp8ICpvOS5H0ubyZKYMofgvRjA3hGXDoeHOVTQLVuF5zdq0Jbx4\nSavGmoXjcEBVsiW54X9ay+uz+h/F4lQ6tWTWQB7nQ6kC5Z8LxUhNsLQke6K0\nBRjeJWvPG3N9upsgCQ+sqT8cDvvp4v6LpHBoM5rwT8WIr+jjyHqLvl+YjHTG\n1FNDl1lu4rke1FxJVKsJfvsBa0/9fnaAiLZJWTsxVIwvxJjJaEOIKCvT0Rqs\nG8CvetDiUtDk+HwM1C4Zl3g6tECi1xq4lEI6FrOL/OSHkpj4iQdIiqqP0JdX\nnZtU3/wQcoqnrMosPExh2rzGbF/F9jG4q8wet0kAqtQO+E/NPqdkIo3z9DmQ\nzsQbWVf/wlvBRkBb4l7F3WQVWTz6/nlWOu2Oij+prucGVwMxR/ulY5/uGtoV\nCxUKWe3OQPotramGouNSPrTnrLfHCpVseBtWiNsTPG3McCkwZC4J6MnC9XqB\nslTHbfsa7UOE9o5thrjsZEMibz5RqNkUyozp3LhceILw7c8Ksb38tl1q0xdg\nl+Dt\r\n=kINT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG9NkCe877fgK6dA5JXzze1o2d66PKxEg9gMvzkhUmN8AiEA3A3ixRCvYx7j0WDfHAUpODg4+gqK8sQ0LQSly5CHq8M="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.1_1571755866119_0.008783203664981531"},"_hasShrinkwrap":false},"0.1.4-alpha.1572424884.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1572424884.3","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-alpha.1572424884.3+86d5295","@scalecube/scalecube-discovery":"^0.1.2-alpha.1572424884.3+86d5295","@scalecube/transport-browser":"^0.0.3-alpha.1572424884.3+86d5295","@scalecube/utils":"^0.0.3-alpha.1572424884.3+86d5295","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"86d52955b299257fdc8410b3e362057dbbe335b6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1572424884.3","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-gHRH+3jDevhJ+fKApryZ2cM5zB4tL5o71Cfw6uJTt33rEQUyCT6yEQPTqR5QrB4sSgZYJRFTFH+eRrX5wxg9tQ==","shasum":"73a13707c03d874ab7e76954ab48973040186562","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1572424884.3.tgz","fileCount":63,"unpackedSize":1361656,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduUzHCRA9TVsSAnZWagAAh80QAIsQiIRlMjjlWYjfNQGL\nMPbb+FdTv/acK4EGeXlWLfMOmw0OaHrkHNjX9foqT9gVhG6YYnxD+IhL36tf\ncjPMESM2facRWSPg4eQ1jCvQ4cPkHVckLrgW0Ry/vQKybNU1nqbwVQroiAhy\nEw+53sUYkD5QWjxdOGayuxQG/CRi5DxS6U3Zsl9RUDj0S/BWhEIIC+f0z7QP\nacIRdJhb3flV235QbqFlUzkD/qSLs+XVEnad1ozsVpS2wpd1iy1v/lgRcv7V\nrVgNjExUlbnBNadHrefHXfsF82jKTwunCQVBgYN1KK0T4oqW/iHaDTfGx5Dz\nPG0Lha5QQqfrLPheVtPtcYjLjtynlB/T0uL0kc7YyUz6GTXSfpa7bs9Y7pCw\nMgU0iBt91HEdrxsxeksY0bNH8VtDWc2TpymPUHTx+A6Em180YiGINoYILKzl\nD/kXcgsNPbUizmhTKyXeFWZWmF1mjwPW4ZNllPgzVQcAe7A5/JthFTIAMBk7\nIXcd5n9yyotNKpbdAhDtRGGUIcdOotogqKTf8k41avkRp4DvlaJGrjHXBO/W\nRhzourdYtB1djBn4cXkWoQnHVQsXnPi7XAGE8nTxaePWXQgNyXN/jgSFqQ6o\nMiPM0+g6uvEI52vrMPJCrjTmvdb0GLJMI2jKk4daxy8AlJZIuzH57tGUUmdm\nEi4b\r\n=UMxX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaH6fl3mbFVyOSJ1XXrKLL1SzJ2ilJMhPZC/FEA2l4XgIgY4ExLOpISXG4T8U4DlUvS5juSUwlz7+IE9F/J8oIvzY="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1572424884.3_1572424903143_0.38406516789657763"},"_hasShrinkwrap":false},"0.1.4-alpha.1572425228.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1572425228.4","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-alpha.1572425228.4+87e7662","@scalecube/scalecube-discovery":"^0.1.2-alpha.1572425228.4+87e7662","@scalecube/transport-browser":"^0.0.3-alpha.1572425228.4+87e7662","@scalecube/utils":"^0.0.3-alpha.1572425228.4+87e7662","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"87e7662b209c51cf35370e83101c9bd301df5c2e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1572425228.4","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-J67JcXAJy3dSWkKLJrn5AQiJz2PyjlJPIDU74wEbuWknoyWWJg1Of/k9rT4Y3JHQ7qdWFjiLp5FTxr8kMoAn3Q==","shasum":"594c83749b847deba301a23820c5d83a3b6f4189","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1572425228.4.tgz","fileCount":63,"unpackedSize":1361656,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduU4iCRA9TVsSAnZWagAAWBIP/A7hSmx50r9/JqyT/KN+\nsPYLvN0LliIUXPQWyr7r8D0Rxb2YADBFOPtOTAwxkiaOkfXnCQEtpauxkWo9\n2/Zxf2zNuWRiOIHAYgN82JxHY2AuAGDKAe0a9t8gWHOUhadbOlQ72vg5Ntme\nnMnTpPMfuCs/y1D+a3z/Q4QT1QpZE3RphqknIV2RrveSayTe24wxL7UtzROR\ndCmQVmgUB7bTCVjTNeJd3UxyyRa58QMahUuOJz4mwXb7ljaJ6Mv0gGXCaQ8m\nO+C/Y8QUez5etaIThbWYoNL2duOXIt93Oh7X+dTy8V6FkI70utfJio3PYmSp\ngsq4mBkurGrEZUrNvUBQHPfuoHbnegI04eJF9ONyd57QUc5T+fghCGHp7KaZ\ndjlj1nUluBlRd/P9cdxsG0JPD7gO5T+73Fp84NlGp0Psefcqj52rvW/BtzF/\nTYoRwYR9mBbToTE7VKPAgQXtuf69P143M6R/31G2nGk5dEslNBy2dfog0J1l\njm1BrZ4jwbgl2wk4vOo28QNjfDmqqo4ysFfWLNXgMJdcdm70haR7EZL43FrG\nOe6B5FAXi/5cc5rnz/VthAHbmSs+q7jVVxkZyZVbbjFRjcbNQfyO78//Jr7W\nNuurDOevOVkZQA688lt+4qIqWyDip3mBtjKMKIxEo8CaYvkP5JzdWP6UW7xP\nPJiW\r\n=uSMB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFd4YKNUNv5VFoZ5JO3GMAYGdfticYogyRUZ3TV6t4BfAiEAuUWtMYYdMo3x7qEm2y9ixcLb6Q1LKoXAK6u0Z2kwHH4="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1572425228.4_1572425250313_0.21103583519574376"},"_hasShrinkwrap":false},"0.1.4-alpha.1572428741.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1572428741.5","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-alpha.1572428741.5+bdf28ce","@scalecube/scalecube-discovery":"^0.1.2-alpha.1572428741.5+bdf28ce","@scalecube/transport-browser":"^0.0.3-alpha.1572428741.5+bdf28ce","@scalecube/utils":"^0.0.3-alpha.1572428741.5+bdf28ce","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"bdf28ceebb2445e2453b9e2fb0b4a1527dc5bd0e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1572428741.5","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-674F3v2eaD865Lalw28AfDexHTTNS1W+x/9CNJQbCP0jiWTgFRd6Jh//9Ny4aZqCTRV5bH5KrX+N2cR06m7p8w==","shasum":"f3d630857fb49f275a3d353d4b63a94593711dd9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1572428741.5.tgz","fileCount":63,"unpackedSize":1361656,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduVvpCRA9TVsSAnZWagAAFVYP/A8YjwaJkxC7CULbwjs+\nWMZPxK4gyXy2WRfZ/9frOFa6RPUbEdpBiVyGfn6i9URQAAndUSfAwhaTb2HZ\nfrdrKeHJL8Re+kJc0M2I2Ppt5HCSbwsQgjganMY8cCArtD8/ZeK/gQ/jKaD2\nLoaBrACzqBF2EbbRRXVRmKMiXTXQWLV/N5jgkVUjqUk8hEt/o6zOSBNOgZNe\ng8D4u72ds9GbAlBvQKYxSxZVBngQtrVV3PDReDP5Brb+UL+/fzq7N+Jy+Bcf\n9mH2xaia93tRxB0cAx0Q1OB5HSZlcDxLzu3iPrVuJZ2Z5Ne0/KR76K4c12C5\nO1uUVnxd8fFNrWRLs7oISIjbiCfMRRg2wYQBGs+oxPkyfxbv1Qm+E11RcZqA\nNnAQMaUECSzPqV++mB+Arn3ALJZpGDme72XpjBC45pxJKFU1Jrn6gOPO+SB5\nqD87l6sgnCjAYgNvauf0KQOP9jAxyF1pQKKsA/srJcjy/sYVi4PmlNAUizsP\negC8ir6ezseesBvGvO0ABu/tIpRNOZn1RKYXUiPDIT8leEai1f4G95iD4+lp\nN6SW8o/wkjUYPBAkhwTkKZV6vdnvecaQ6V3oA3rs5biocMj+2a/pMnSCSVhf\nTXjc/pPqU4na5rxlz0yourCQHkoZqix+XeIqnvm/b/kNs8zGmuSP+ztxoo4m\nr6fk\r\n=/xNC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB+D28+ReN79nyabNdQ+m0azH6+e4tm7tngd8KS5afQ8AiA1h1nYQXNfsS1LElzm6TqM0AzHPRPeOuh7CM7Mdned8w=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1572428741.5_1572428776763_0.4656975101975782"},"_hasShrinkwrap":false},"0.1.4-next.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.2","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-next.2","@scalecube/scalecube-discovery":"^0.1.2-next.2","@scalecube/transport-browser":"^0.0.3-next.2","@scalecube/utils":"^0.0.3-next.2","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"a7e3603ae9cae5ec0b4e2887e7989c036b5f8f8a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.2","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-UQPexqyqm20/7jlX87kvJVfnUEAb8lHKQrt3mn5GDShtacAwOOkdu9ri/AsugBd6KCFs5L5cAqwKJNXMcrdo5w==","shasum":"698bdc1c001b66f6114e7933e3690ed180c0684e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.2.tgz","fileCount":63,"unpackedSize":1361228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdupiECRA9TVsSAnZWagAA2PYP/135IRnTrtlpP5pX2PpF\n2o9CcMSKauyZdTc90EFKQa2FLZw12unZ1i0wWDH1ldCXkwPOx1ZFQPrakwlU\n0nXa+xQI2AynzFlB3D4QxMIfCW1kvTdF0mgfA6alkBi48WfyCekO3VnD6UqN\nsgnecPQSbrmPM3KFtOqxRxfqzRM6MJr+CWPFtUkvFW7n4q999Ho5yj5Sl75F\nC+NAO0edX5S43NLb6psc9z9njrrN7sbec9k+K9GJqJWb6oO0Qhf0IGRrUBBR\nBzsscg7VfFZDgHs8SYRbVvFm2UWn4SFNcpWbFrkKRKwXYdTex2JHH7fCyQJD\nC7X+4HVrLfwzoI5Wa+CrJNrsi3NHmZgUUdr334gknFR+b8ZXuUASWfuwo7pk\nEYxT4x2mduz54Jma9289kImYbuHwbUg6zbvuEG4SRn355ZpYjEjEW8EyfEoD\nFZWhVBCIhBEMfw9bK3kKuczbn0Sz3U82bm1X75v1AiQFSv2j563v/MyllYKx\nqpfJ+jlaYnWkMd4HQRiQZ/tVRYPK4oqIloeQVts1iZsJ7yRrlZcrtbNOhPJ4\n1lqMxhr6VJvyY+0e8IpNUf+hYq+yFNWEedpN/MNZOP7cmgPDGETCLepYTfl6\nslKitIni1YjiBsFOq6Awl6snyo6eBsU71PQIYve9HdoZ9+TMI5P8kHGPh/Ci\nhmke\r\n=/UU3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhPqiN7sGIxlVihrn3cokpw/aAu7VucPQbwNppToqITAIgRPrtjEpm0zWBjUPp0LCTLrrD78HIjAYgjHSgIisKo/s="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.2_1572509828273_0.11623664919991228"},"_hasShrinkwrap":false},"0.1.4-alpha.1572514385.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1572514385.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-alpha.1572514385.1+92ed219","@scalecube/scalecube-discovery":"^0.1.2-alpha.1572514385.1+92ed219","@scalecube/transport-browser":"^0.0.3-alpha.1572514385.1+92ed219","@scalecube/utils":"^0.0.3-alpha.1572514385.1+92ed219","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"92ed219715d81492759d7530c3e58def96329e1d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1572514385.1","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-alcMvmB7Cicbzkvk2wsn9+T6aFmQIa3DaSVfUIEAd5n6Sz9FDy0yrMTlTxb97a2guHyOCNRaAO5Mvu+8xebkfQ==","shasum":"8818880de31c0b4148e11690f8a4d1221064c14d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1572514385.1.tgz","fileCount":63,"unpackedSize":1361328,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduqplCRA9TVsSAnZWagAA/C0QAIec3a9dR5coT2NtwoX7\nUnpRoCe4aJXlCI0dUfZEqZrqv4R7hI83Yi70c0jIQYDVBR8jM3dlUlxu9ZK/\nIEukqzhWlaihkVaVP4PxMG6MqddOnvJSQwEUk0wl6my5hMmoEaPf7tQLr2hu\nE0qOXbwKPhiZMYBYcmXyU6WGMB9AzAoEYD0T+fK3i12AUIAFNrqoypw2U064\nowfimsbc4+zX7SLfCx2e796smnnSgSc7BOH8GW4sq4MomiVVyGQLn7Dm5VUE\ngt9/kyQjBit8FXKx7XbWZLyhYKHU+BCOOjyJTIwc1XxY56VqFanYxpiEIBAx\nR76J2KKiSZEmR04Ne7Ml4nEjdppgJlQ+H4DZvRhRJAuYkndVI8CveIFd/rCk\nSWuTtj9+CezEKeIOrDL/UkUYTLhhBRux5UbueGTMJ264pHTmMMZEvZAzyzdr\n5f125/i/oHVMCxdToKuLggwFljCa+Jtrc6SXdOpH8VRIyZzUvWTvW0GtJ5Ia\nloCZUnCcs3OeZ6LXcn5QzUwZsgcxDALQoadeNOPqgeSh96UdLUMJfvNgV1Yn\nOHAKdargeqZKJy6/7XJe3P+YM1OPEJFbu/QsYBD3oDB4d8D0dKc7vMKIGTW4\nz0LuYG0IYvUCxNCJ0aJaaRZLz6Onp02V7g6OoA3RxWmeW/1wlu1v2kO6D0Vg\n6kxX\r\n=vKvl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDF0xyB7s9qnbISd5fCbVUZBvIQTd+OrxYJPWrg+8yqXwIhAKANFwLXQkhdseew6M2D9dzy+ORchSqJ9jrHxKdLg6hA"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1572514385.1_1572514405229_0.39256852841910717"},"_hasShrinkwrap":false},"0.1.4-alpha.1572514620.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1572514620.2","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-alpha.1572514620.2+f41afba","@scalecube/scalecube-discovery":"^0.1.2-alpha.1572514620.2+f41afba","@scalecube/transport-browser":"^0.0.3-alpha.1572514620.2+f41afba","@scalecube/utils":"^0.0.3-alpha.1572514620.2+f41afba","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"f41afba153f372c20915f605dbbccfe634bc2065","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1572514620.2","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-HlWtBTw4OD5JyGFQ6sUoNen0h//orcZFKHwlLEDwLXeNGb/+a86VRQpPtBds9C3/ctBJW0X1GHCGAhLOUd+x+w==","shasum":"6ec88229482321e43a9494576332abc245b273d0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1572514620.2.tgz","fileCount":63,"unpackedSize":1360109,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduqtUCRA9TVsSAnZWagAAKi0P/272uB3UBltZnhKwZI6r\nmnbpzwa1Y9Uh3c6CttJ/A4/AfMJDd706GQd55R/Kkn7fDhj51pW0hM8OkOLf\nV1ep1m2b2S2mVkRvGuVrmwqo2gO4B9GCCQ1eGgPl3lOTvqJH3jiglp8T4Lxe\nYFzErxFCLWeOPi8OTl+wwXFAig7ki+1IfK+nZvFVAIxzlhgUBCCeuLWyZeaX\nUBw6FifjhhcTlzu6Cp11Bq0VYTw2VWijgvJFmkL4OrSkkmwXeOB0p+fzWvGF\no9g8AtVnV7tGnKi+BYz6ynJ4OmeyUJCpnkveKsH3XCt81LN3deiMC9yyXugh\nyyqWCl6GZ9M2oWWDp8B3436RVo+R5bYq0q4dcPsYASZJdgHBpMY67e7zhjZ8\nSp49jQsfQZYOVnnCBHLvVL0rMMQEQmiegKdxmUXkP0ZNRkMlKuQpLgDXqlDZ\nZisP5wxoMRfE215PPKggzogJjezLZpQfID/2gf9XDKWCtMYvDzTg7F5gOZA7\nZixZnQdjpzXxSr4UITKEkc8RDhNHUWSay3GmB16qiDXp/bwrRrhp/DhxSHTY\nhnnagAfOBIKA1AV4UnhXmMHT/ctqlHo98PhoVC0AulofZf9XNnpGC01s1QhK\nw/tEFfrYZPIY4jMFCxsMxBocLVtetwjm+7ceVrmKSBpEo4GjNf4J0ldW0Prl\nA7CR\r\n=wnhZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDfMlZGrtUx0bOz93kVHhfc3VHSId/4u7SB9F0hCDkp5AiAzSpF/AHaHU2kwCOHLxC/E/H6VrVaHalInRzSY9gvIjw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1572514620.2_1572514643579_0.9812043545426303"},"_hasShrinkwrap":false},"0.1.4-next.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.3","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-next.3","@scalecube/scalecube-discovery":"^0.1.2-next.3","@scalecube/transport-browser":"^0.0.3-next.3","@scalecube/utils":"^0.0.3-next.3","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"6675018c842b31b6d35983b2f2bbeb1773f3b35e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.3","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-hh1+V+yjKuk+y/vLu1hrxVWOiqGx4bQYWOv4aPETmyQY8iA21u+Rba4otweMZG3NuhxmZZylACJ6IjDSCacTww==","shasum":"e75690f35bfc158531bc68d1dac97904c44acb34","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.3.tgz","fileCount":63,"unpackedSize":1360009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduqzbCRA9TVsSAnZWagAA49MQAIug83cVHxul1MAAy85n\nLx6QY6h+tboO72vnfOsv8DKLR8YbnEti0x4GwKUN08ugMuB1qT/0Up3io2ON\nfu2ddVAm0qiTCdNC2nKrx6qSWf50P2WVidLtnWt0Gz3erl0H94p2BQRk364A\nJ3HqY0UDqXCpEpzKOpO3iObHEDzKt6SwtLvO4L+xQC0zwbUtNYo0gPUBWe40\n1S0MG7LpyDt0VUUYQMUxhSDHVCquilSRVOdoBKnb6VhvTTQh9sZ33qv/khIE\njyx5RpOSq2qgZnEs4LTjO7ozT/RyRyScLuRbgfSEmfev7c/Jh/0Y4M/fCu+I\nvDksWolMMSnCqwNZTob++UIMMEF8ojWIqSxJxRMpvGHbb9u5EHWuHmrWi6th\ncIqvSCcStxiEN7uonwVo/ritDB5P4dLmAR3bo3j4P+aGURquXVf4AWe7ZiSx\nsidqQyz/bpQo/mKH/NB5AszL4An7Q+ybJ9l7fIaG97R04uXwOanf3JjtdGf7\n1E3wH5QSPUDeeOAEBkW5+nJjoh1/VhU0DrPScUibB1lXKDHtsPZx5tHhZ/BM\nnTahHuIWbCYv137w5IL+TH4TLFxaR2Zb1IbqcdPBb48gV8DF+wzIug2k4rhB\nn81NcyiAdXFq+Yqdm+u4yVFzGgd2x1D9gTFncdUJ2UwVPqE5AMIJay7tqKnB\npN+Q\r\n=Hl85\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZA2op91EaD6JirOgKHlgJyvgBSoSa/VA5WxFBlQ7Y5AIhAL3manb8OzZG6Pn1p1xEbnONU6y7xngdt4hlieH5y4mW"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.3_1572515035290_0.5967050391426172"},"_hasShrinkwrap":false},"0.1.4-alpha.1572516199.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1572516199.3","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-alpha.1572516199.3+78d20cd","@scalecube/scalecube-discovery":"^0.1.2-alpha.1572516199.3+78d20cd","@scalecube/transport-browser":"^0.0.3-alpha.1572516199.3+78d20cd","@scalecube/utils":"^0.0.3-alpha.1572516199.3+78d20cd","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"78d20cdc2eed04d1e5d78a5415df1f7fc4544add","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1572516199.3","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-y35gGaGOyGDfFAvdHvAb0D5kRd/QBshBTvJZYQDTRStE32u3Ui17L2KSr+hhx1ODKklrzjoTSm3NJrn+yyIRFA==","shasum":"0f130beef38132fd1370e0895fbafb8fd01b6b8b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1572516199.3.tgz","fileCount":63,"unpackedSize":1360102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdurF+CRA9TVsSAnZWagAAu1kP/RABQrHSSy28DxQvVHq1\nCjrOLHXrDzo1Kjs5jVUxB+R81hVo4RnQrLjxde2/szboXPG9GYz5MgUrHkGh\ngzBStZPMRHzLYrEnpn5TarJfMgDaDOYDxg93FN7yk+eHQ9i1kqxEtpsmKg52\nrWorlINjQSAhkMikl7wOfSJpEKNsxNi8W86ugjAz36MnaN9UDU8+8++mJjwV\n0+X/hcMTI4WmyrK7qqr1+cQ69FeP5FsMdMSHk+qxjJGzsdOR36HubgjWjbyi\nFwbRM6QA2gRmG1pnmkbzxk00P/FGO4zbx65tYTnd9y03pwZFqHIl18tA61Uv\nt0oBYKtyWCQPiR/Rw8uJpq1CXrf1wagdwYSH9nStF79ICg3N62Kv66p4SCI+\n6txbYwnMyptRDu8nCYgm9/dXEPMLW1nYjDm2c/OoSJIwxLcINj3CH7bb1t3E\nwyQhJeNryMdviiovRfbkY34Zyu7OuYdekWjg80QK9DaXVwgi5wVBwrOzgkay\n/XAlRIBccRzI7+xWh7UG+GfULaqB/aMpx9MkrKPEIM3UcGiSc90pqEeFvHqs\nSot0HuPWsIcTZ849/IHe8SoQJMwwTFLK1PrBccXM0YcxfPqgdrS+kY6nCMP9\nt19BoJ0wzXAeVYXXJdHE7q3BREBw2ABs/sB4nXyn3gpuDvT8ZjMIhFUthAAg\nh75K\r\n=hMK3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDwyQU+Hc3TJ6xjg2E3AceVy/Z2X0iBo3F4ze2PY7i3OAiEA/PBG9HR9+TgnWh5t5Eo88U3hk09yto8DBAwD4LeKI6Q="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1572516199.3_1572516221999_0.4752162320772424"},"_hasShrinkwrap":false},"0.1.4-alpha.1572516448.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1572516448.4","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-alpha.1572516448.4+7553d75","@scalecube/scalecube-discovery":"^0.1.2-alpha.1572516448.4+7553d75","@scalecube/transport-browser":"^0.0.3-alpha.1572516448.4+7553d75","@scalecube/utils":"^0.0.3-alpha.1572516448.4+7553d75","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"7553d75992226cf87c7171a045363ecc01f5916b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1572516448.4","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-jW+J+W1KKTjfY+XjGA7vy5OGosDtKtURKM8KPHQTx73JSjph9IoJzh6AQvtbhllPv37D6GPGEMH2JktHg7FDQg==","shasum":"e80327e0ebb213b5646e32f38cfa619d19f92aed","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1572516448.4.tgz","fileCount":63,"unpackedSize":1360102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdurJ2CRA9TVsSAnZWagAALTQP/iZey2AsT+CVfBRDGXoG\nWUj6Vr5vWy4EbIe2am6zNPgl3S/mViwX+roC2yAbNYF7GtS2TbyKJML1H/iQ\n+G5ONKQEEP2jfgJqQoVpqMuG68DH2s9GCZtCI/Ib6tzinhUuFyIWcQMG1vK+\nFrfTKrsJn5W236njq80OeORem6mLaRBGm5Aj9VvaKBRRDO9XRxyPQh8rhc4y\n09IK+5/NUXYNnH9lw+nU0UoFjqdMLA5Neap2hZLpOyCth8E0wCUEGK4V0WDC\ncs6UgkQLWkFtG4d/Y8UBsiFbZX7pMfGH45R+CIqMi6TgCeS2CLlzkBzj8kft\n1o0X/CHo0qiieZv+eLTVkLw+m73ZsCxY3xlmqqkWE+VNVyED1y8RFaOUhPWw\nojeXUbddIv+nCOYmXU4iXKeMbonBFASE0HaFkU20T8nouyprPa1D+DDER0Jb\nxMq2olYaue2CoQpS7DECFMl64byKeqq3yxFG47z0bfUAFbggB/DQNp4Aeljj\n/pwwyUQJwmN94D9Dc8Lzckp5vDMhfrc6jwcZrM5O9Ei3kOeNpsVV6UFlDnRi\nHhppVrRuGsOfskjtYg4OINrUUpruVCL1wLwfZ6nnaUw/o8AQdBmiqsQv+mKI\nZVrWNnyljdaID6lKYNm2Kh4Uaz07d2qk0Q2xp9TmkPZpd6DI0ye/Ois1OCQ1\n1XT9\r\n=97gq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuTzuQeSC9emrN1L8XPQjDD8HLv3OK21AFw0tYtUZOrwIgAMBitZUv7jZppPa0zYlLE9WEO/bIBtjccz7qMC8RR3M="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1572516448.4_1572516469965_0.8418864260014443"},"_hasShrinkwrap":false},"0.1.4-alpha.1572517421.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1572517421.4","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-alpha.1572517421.4+7553d75","@scalecube/scalecube-discovery":"^0.1.2-alpha.1572517421.4+7553d75","@scalecube/transport-browser":"^0.0.3-alpha.1572517421.4+7553d75","@scalecube/utils":"^0.0.3-alpha.1572517421.4+7553d75","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"7553d75992226cf87c7171a045363ecc01f5916b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1572517421.4","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-jtmLnd76IX57hFGgImJWAlhp1DS8FfDwoTCxiXRJDyrpfPWq35mIr/np/K81qkaCjryBatS5mD7ZJZu8uLrUfA==","shasum":"9c5d32e4c5911fc1078d5eab79411092fac11aa8","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1572517421.4.tgz","fileCount":63,"unpackedSize":1360102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdurZICRA9TVsSAnZWagAASHkP/0cdgbdPz43l4/QGgp5r\nSlXLQQGPIfDMamfW2WTMUGbw+EIH4iBlonOCzVcp+PqYnJDSGT2YWwMa3yQk\nO4zFQgUhuxLJCRUH3GBKECY7r7oQjwoTpxsPhtCzgiga7iRqxLmzAbP0w92N\nsnCAWGXRvPkmhAYJNb2Kx1vETX8Y4fel4Ol2UnWPND3F0UVGjtpV8tjePBvZ\njuqNDb73w61OxQatGa2QQDNgBNSGhBY9S8Y6YbolI5r1w5Qzg/r2z6nVXxPq\na355qnR88xfDNpmCoyr/2twvr+ofEjyAZ2qwvV9eZalYpyYCbDMfDK60voze\nCiTvfiUCOkoIsnfD873bXte7k+jDTrxy1cjLtjp6RZhsq0tWbEQyfQp5OrXB\nTo4Uyg+CZHp+Vy5jL7Fvm7H8ak85JiaaAs1a1ojrdGiLyHG01/goSzr2Y9KM\nqKdXZPYoRC3DE4Hc1PYYtZwD+4GhSNBrOd96JdEmKx+VaFkQFBuht9m6NF5/\niDtzdP7T+llI+Muc0P2NTngc7wWY8OeiEZ+bfs1GIJRfFOQS8hcrGqRD7Gho\nbzjnsJauX85AhPZVKkiC6mRufHk40eY6tDnWwcQc/c0rUVZ11oneXjqxMUob\n3rLBnyqSF7jl7uSrN/o0OWAoShOzTR0latvFHqRjaJHvopk9EKw6MWBKLRYW\nWDh+\r\n=H8QU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEBF7UDXJCn+vfAqtVFf5DuxoMUlzBbduTzQsVVKPoTOAiAIW5RYcSOnP+R+5FTRIfsl+g4wPQtYkiotsAZs8C5qpQ=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1572517421.4_1572517448413_0.5817763033870655"},"_hasShrinkwrap":false},"0.1.4-next.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.4","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-next.4","@scalecube/scalecube-discovery":"^0.1.2-next.4","@scalecube/transport-browser":"^0.0.3-next.4","@scalecube/utils":"^0.0.3-next.4","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"04e655ce2b36572a953773bdebd01d0c36d6eb37","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.4","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-mg1U+tiJuA3WxtGrUElB9AQosA7ZJmm9pwCyI34p65gInH2NZ1OaNCCH0nNrrff5QbKm1VyxqimL58P28ukGLA==","shasum":"8f2088aae9af28fbfcaae4d2604f3d2d7068b1f8","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.4.tgz","fileCount":63,"unpackedSize":1360002,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdurfhCRA9TVsSAnZWagAAVrsP/RbK8lWhcrfjISj50Epg\nZ4Xp6VjrIMe/yJB2cJgfw9oWdAgEUkU+YY8gp6izl2qrcGRtR1+W/NjYfeiU\nZcduSixViyPeHF3o0i0RrzakAYzTMJrTWyXJ1mxMI7DkJHkGVHrhoLHhk+cm\n+3rqJ71ezYJhYZEn7jYVPskHDqLmRxSjjUINm5hWRWU+UewOqASvVIA4M/zk\ny8RlWLXkIFgsG6+KwwLsFKJgyK0x0S3MSsa/rXXfyQ781/mmzCYEJ7mFVO1L\nts6OJ0gZPPZ6CGanyfO4KfxXVn9OSlI0nQ29RufNz1xSF01LWVFJAvFyqrht\nqul7T47dO+EnBkROUohW/8td1vqrFFe3OrJNqFblRfX0eG1Q/53S2TkJoA8Y\nM09V46yymCUNzvktkmV8QK0HjSbeAZnDPdOA79eqsBGeRPcj705lLNANW8V0\nCDmWyN0I2rls36fwklg92Y4vU1nVlsgkGNifKXZhaTF//V4cMZxc/Hc26rye\nnsLm79zgnjDybvi4FXX1RoKi4BJFxkt/sdZUipxwUhMrz3rRuUjII0dqsPSj\nK6ulTzhGnj36Jvq6I+WLYK3M8BtMAUQhXt+rjyBKYHfrXuxAlguoB0srOnK/\nJl8/uzJM27U4IXneljwmz+9sHTH7pGGWFJRM79JQ+52fuzLUtoq29s5nkahn\nsJKM\r\n=qHv4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCh2cp/eKoOLS+8L0Axmcb0is0rgKvjAMLiDz5x0j6s6AIgCbW/XF5YSkk698KnAdijvlzUl6S4mmPl3nIILoJme7o="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.4_1572517857017_0.10966117164362355"},"_hasShrinkwrap":false},"0.1.4-alpha.1572778096.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1572778096.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-alpha.1572778096.10+3fbab2f","@scalecube/routers":"^0.0.3-alpha.1572778096.0+3fbab2f","@scalecube/scalecube-discovery":"^0.1.2-alpha.1572778096.0+3fbab2f","@scalecube/transport-browser":"^0.0.3-alpha.1572778096.0+3fbab2f","@scalecube/utils":"^0.0.3-alpha.1572778096.0+3fbab2f","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"3fbab2fe07b9003353232ada3811e7c9ba09e1d7","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1572778096.0","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-IJ5q+kDR0MKjsnRg+k1v6PZmCIuxjKLm9xNzeGyOf+re0ZXuBTFbFNfvwKpKYMgBeO3gIdZBl0FR0NNTOFodUA==","shasum":"ef9dc012a8939e07104df2861e69e7b62007cd68","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1572778096.0.tgz","fileCount":63,"unpackedSize":1360528,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdvrCFCRA9TVsSAnZWagAA5HUP/1PzfUCSuRzR9bspLeHK\nYLAECYJYZQc8LNl+y7NlK5bIlhISjiL0hidBl6LeYdMDxTpISnlV3yzH9dnI\nb3QIUyo/93BYOYJ8mZkg/BuEiXE0Qxi4OtpQznnpffLsIWYgCQTjUpsxlqoF\nN7spDbDRQqMPeo/+kW9WpyF0Ji20wZVYhpEm6uAlT59Rh4XRjYAcfp2judHs\nokeHu8p/OOoGXe5jq7eoloM9VROYWC+yAkpXnutfzAfAcN3E1If75xEbCU01\ndNkrMjQDTmjjlgr7IUOIMqJdjs1mlNs2DGUTxkYKDAjT8F4i/T2Os+LPNWvG\nvA/4L8WDT1zTNz00n/S7zCpvNstOJ0hAoDtgumvcWyBgru1wsMUO5I7Kaf1Q\n8SjuGcrl6sH9rk790i2yU+QFbgx6J2hhKAuuYXsTOMwZ7SU1+8nU80vWUhfq\nW3E0mkprdAGipLO2XrEgUYM7+w3WVgilR6HlU5RZs61tInpNtBrsYb8DgVwo\nG/AhDE0yKDnESo1+BDFIZWruK2RmKptxyTAj6/CwYN35gVTYA/ZS1u2Yt+Br\ntZg5PVHWMWTsYSImATDmL74mQqjcmoU3vRKgpqbCki818jTTmUZRqC8Z3gC/\nRiPZrfJs0oHfJ8Cuh12Nyq8Amp3FwhQ+edBWiXMLCGnsugO5fQbbYUCr/JV3\n90CK\r\n=DQhN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsXhxnojoO9VWw3WcPCQ5o+fIJOVObysEFMYQR4sNb0gIhAL7tRGWfgIVefIrwKOY+GwWC/v8YJ6noaDdQny4G6jK8"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1572778096.0_1572778116612_0.10977906413301586"},"_hasShrinkwrap":false},"0.1.4-next.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.5","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.1","@scalecube/routers":"^0.0.3-next.5","@scalecube/scalecube-discovery":"^0.1.2-next.5","@scalecube/transport-browser":"^0.0.3-next.5","@scalecube/utils":"^0.0.3-next.5","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"13940af04155814c4e9e8d631b4ea3ffc5de2dc6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.5","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-6pEeOUDj2z8D6LJZVEvejTQrtGrYNA3Z0zdGz+Zs/yJev7v5UohCb51jFFtPEa5l5qwYyJdgYnws/oN7MqFJJA==","shasum":"17d2122e2392f55d1d86bce673cdde483d192431","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.5.tgz","fileCount":63,"unpackedSize":1360407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdv/agCRA9TVsSAnZWagAAngEQAJLOkSTjUwHwHt7B2QUQ\nqxYvbZUPhByhAzGG39heOGKr08gRZom72czapeXNKt0PF5KXS4ZwU10rG5fG\nMxYZaFaWWWCJno579KUhTubfJTM5e/lV5HeoPbMguSBOf3JtAg3lqsJWlYje\ndQ0ZTN26Ylnk8Q2sdMGERm2O9YvA20zqp9gSlwVqIm3havPuXaTm7M88FcGf\n9XZzcoEXsCCUjQ9HjlIkTpfAu7E22EPd4sQ5JbS8aspPR7YevMy/Sn3mi8te\nKf9nWgVIkcaKn1tc72e7P4WAEEuRxVOxkrkvHrmch8+2WWmn6blubca6GuBP\nI9rF0irctzdt+YbATonZ2eRRkhOP7swDgUepmBPArcTEsMbmImj9JZHFwpjW\naR2iT4ZvURwnwQaNKnQL0ULEwuGORmtRqckHItYTf6Ui8GzSUbdl0TqCVVAL\nqBMuBbkPvJfCipxgDu9ae1G49nZ2cjjtGbwF5rlTxkdb4rHeajdXFcVfWwfD\n1GiAbaarRs6UOu3T8sIU5pN1zQh0L5SjnV7rsSOa38LiyzwRu5dqhjJplQZD\nSEVULFhDp9ea19kC20S6YXIgiYgvIH5Fw/E1Q2CBr0FXtw8BUuYKOTIIUq4t\n19bNBp3R3/Odbz1lZuidHQ5NYp/Ra+DXVPSPwF3TV5+OgdMxTCB1v1bKW/5+\npW6R\r\n=nHPf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEpAgPnFx/g+uuQRsTHBI1Nef/RY5qBBP/rEJo8MQ0pTAiEA/INchXcf/piyWu3xpnR8vb7fyvdYU3lAdXiYv/hYD68="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.5_1572861599303_0.036227198435204944"},"_hasShrinkwrap":false},"0.1.4-alpha.1572865816.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1572865816.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.0","@scalecube/routers":"^0.0.3-alpha.1572865816.1+1613ea6","@scalecube/scalecube-discovery":"^0.1.2-next.4","@scalecube/transport-browser":"^0.0.3-next.4","@scalecube/utils":"^0.0.3-next.4","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"1613ea674a918e33d82af2d5983cd91ffabe530f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1572865816.1","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-NUcbhH41oYLeiSyhrE7T9k/X8m2UiV//Yiwif63kkpVtyYGX7ivq6bD3+27nAxpBnbR1MTQLVL9+GKgtKByMrw==","shasum":"7942e8ef491b5e222360776822632b260e77028d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1572865816.1.tgz","fileCount":63,"unpackedSize":1358427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwAclCRA9TVsSAnZWagAAeW0P/3+x4AgS5o7xdY4AGt6c\nblhj2wMLELAPu1dgldIcNsuw77ghw+VbqWjMX1tMZezqGOb/9bPI698Uj6Fj\nAz7XEUzbaZ43MtWqWwUIslcCDpKtDTSExz9qTnDwNI/CalPuDG2sGx+iZtXr\n0qVyOJ1BLcZjhCJVZegAQdq6JdlHtiWMFc58aes+QA6JhGPY9gEL2D58RnKF\ncPJYBmxV3vCZZhmg48RTB9IJyJWEeBI3dWUpNYpb8HZsIXxL+q33u7dpATAP\nPSmp161Qf6+LkF8VFE/MZzFQo7vnrGEoh2vtoF5mhxo59+kL2prnnBfd51bf\nGG5Jq49noXYJDZM5EennD10Wp/UZnvZuvCNVKX8I4We+Q9MHPhGutTH2Lh0r\nAf2BIiWNXqODZhxpzykzn3zv/H66mLei4MCfdCc68iIg7/5eevoWwlO4sHom\nFGPbiT7YtuXTdbdMdMSMcH3ILe4PzsBHRDseT5gCVGoxneDZ/hbB5PXSieS3\nu7y3M4a8zfaOo30uIVf+i2OEBtwxxoOpcpXO/bdravaoE+biq/tW7P7VTfPN\nVTxi1xMqP+fwjzWSftWEUU/3O/TeytW9B+eWjp+J72DGLv/+fudhO32EhyBS\nc3iuufxaQcJ/IZ3giVsEMKJIN4lnWggr+JUqdK8ZZVKWST/T3Lvp8Gpp7jvF\ngBS4\r\n=ka2j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDnR/qh9/OtN7STVvKpvCbYyb9uoPbLlFKOmpG7X5InzAiEAxJYA3vv3Oi0WzOwwTEO4759mdO9B5JtaQLiptVuCw4g="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1572865816.1_1572865828911_0.34314952227485307"},"_hasShrinkwrap":false},"0.1.4-next.6":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.6","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.1","@scalecube/routers":"^0.0.3-next.6","@scalecube/scalecube-discovery":"^0.1.2-next.5","@scalecube/transport-browser":"^0.0.3-next.5","@scalecube/utils":"^0.0.3-next.5","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"d5006596ac18822d714b188c0fa3cea89a4a9f7c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.6","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-UTqf10X263N5gjvDKL9rXPgXxlaYxhrwvlGj8V57AqSn7G/dwzz7ByRnE0MDfUrAvZH2beo2po9E5tUa6wrABA==","shasum":"f368ae41855d50574995391668cf3b2d3413fe75","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.6.tgz","fileCount":63,"unpackedSize":1358387,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwCPCCRA9TVsSAnZWagAA8XEP/2lDbPDrue9OuXfwqsLU\nhuTwusgd2wuvdjZzCsadu4qYhY78u7Rfkek4EjiZ5ARdjmkDY9a0pfY29f3n\n21qR/EUAVYklFspzOs3WhiVxa/pQSlaLxwh1xgaXM9il/pDiOJICBMzde9a2\nzLddDr1SgsLfiHCO9MthXMplw4b+wwrzd7+46xrDKUNd7E1czjJNRJxVJ5bi\nfzEHwNPKJx+xMbCyeYuXbGoprk/LLMbu5WapMHnKx18jVrFf/edO5MJkYjKy\nt7loALnZs3WA7smGNFzjPKt8xeQuLWDODPG7Xon1fEanm1tjUrNWzRCCcCKV\nImJ9XJEmTlyJHVVSfhYTlhhCCg71A38dw+cy7ecCF85/vJflu9obhGTcFQgm\nhX++pmSIs8uWiZcry3Z4sI394neu8abX00svByJe6ZUUqI1eKz7BD7h/lgcD\nmFilMTtgz1Bs4SsVEugSCm2RG99kG8ALz7w87U77BSmKSjoGkO8D+IK/SAoQ\nreoaaJ/U+oOGacVaO99eR3ewOWTEH40zC+OmsXpXZuEcdQCf8P8IsMEedAiU\nNzixab4w5iJ8ezYwb65ofy1vfvTfLTkfiUYk6iuUxCMMgFeXPTffe1jsFT0S\neLf/8fjGj3KRHbPNvSkgn2GlfMmbHl7htjRgnpKlI3evaejgcwAne9qSD7Lk\n7b7C\r\n=0roH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGH7b+Pe67OfWfaKmcewFVXBI45RJCxmal88M+Bm1WIYAiA4cpmOBEpYqFSTZhE/GdgohN4pprHcsPnCsiYFB8jsDw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.6_1572873153951_0.21735398814711826"},"_hasShrinkwrap":false},"0.1.4-alpha.1573566799.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1573566799.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.1","@scalecube/routers":"^0.0.3-next.6","@scalecube/scalecube-discovery":"^0.1.2-next.5","@scalecube/transport-browser":"^0.0.3-next.5","@scalecube/utils":"^0.0.3-next.5","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"644600cde88d7ecfc2f06b247b6a0cb01e4101d7","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1573566799.0","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-EyPYn1uEbGVNsCT6baqywbEeC2Rjcmh0/Ikzz0aencP7kLDqWV7RUZTbPNDDaf+4h/l7g9aarCT0z7rL9rYbpg==","shasum":"9a5d37afdf1e1d5003311612f24a6f193f07054f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1573566799.0.tgz","fileCount":63,"unpackedSize":1358517,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyrlUCRA9TVsSAnZWagAA7ngP/1RpzW+JuqvfeKmOCS5E\n1+pZRIHpU/Bz2H/7qtofUaDDIF0J2gBEqjXRCE8PcSrq4sSscNPISD38Skhf\nv00dqOgdKbyq/zVj7p3acNE2S0w+SaX3Gvr/3WM/zUwS5US9tiyNicMMzQWK\na8IYPMQDWPVSKOLXpJyzPUBwPyCQmroB3N0/iWXlwD6zdwMs+Xu1nRixXMbt\nrjh/UIgaJavoAYtCtfcGItp4OVuelAhLUyI2iXq5eisVy96ADYoX04E7lwpI\nsI8IR0BKMHj5FXsthdNv6QNtqScBfFEVcv4Ido4vD0sQggBtE9iezbq8NOmC\nsPWJQneTv2cl1Vd6H7j428WbKZ6nU586P1Z8eYvRumySBiEL0R092r0bpW9B\nIDWe5axcH9bDImdR5Zqh/qq+GnmCjCzfNfc2c7lAAW5mWUkR1Wf46m5/gTlm\navGSXXZtEa6Hn0Bl53q/Gw1+DyJRrku0Oqv+xaxj8qxFA7uEx9EuqgN9YE9o\n/RQk/lU6Mai6FivM1NaA1tu3l/F4L6s05M/2g+VVj7uUQjv56DIFkrPzKiiy\nnlVH53cbkdW/PRP4wBCb3HobX2xsKC6KH7nR1GAhWctSU2w/jI/3yLrBoKbX\nQOxz7LEaVnjOj28YadLYC1BolAYprBXcWvXrX/4JdlOTuvUWxFUXX8P3Xt6d\nbw8T\r\n=OaA8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGKztt6ezRgmG0iIZttWlHGRQYD59dFDRXtxa/duaP6iAiBFvgo/X1ZmhErT6GIPhDxicaOpD/9m2VZ9VGOxqJ/eYA=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1573566799.0_1573566803890_0.5382485211963717"},"_hasShrinkwrap":false},"0.1.4-next.7":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.7","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.1","@scalecube/routers":"^0.0.3-next.6","@scalecube/scalecube-discovery":"^0.1.2-next.5","@scalecube/transport-browser":"^0.0.3-next.5","@scalecube/utils":"^0.0.3-next.5","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"7a115cf0378a07b105ec74437a6420ef03db18c8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.7","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-MDVX+Ys9y9xEyNmSHvX5Nb/oPpx6Nm4XokafFlxS9KD8rsJ307RaCBIexAVfYtOEergrjk0cNCbIFj5DKNtNCg==","shasum":"3135e6a7b8e25a70787820dff48e141ddf90c28b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.7.tgz","fileCount":63,"unpackedSize":1358497,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyt6NCRA9TVsSAnZWagAAmG0P/38b/RB/7G1otbUDG4Hv\nE8mwmavzOdGbnvbfZxSQDK4Utjj9Abozk/Zj1Ise8QKheG5RCmUyBTgTef73\nbhSf4TOi/5VYdtAiqkI4nC78B+bLWkJ142pQuZITHCqXwHgb8GDyuIk/EH4M\nkkzZNFcdNYurXakcP44KIXOdOuGHg3GmQ7TI4odajEDhcf/9p50edr9iPlGg\n2rzYttxQMcurHbJCUvEZWjBYUFuevVg5nFweI24Zf/xsyoJYnVqszImXDdqY\nb7rJP0N9uVP6a03ejlZNQ2DXOhonw5K4gwXP94tPSSWIvi/hiXzuOygjeCZk\ncd0vSjKFuF8TGHtmRm7Pc6sf6CbjU/24AUqQZL6PZio5t/ix+jFVi5OkmZek\nCwxVfEw3yAHstd0uo82hcKHelSflKkBW0dkuOSZrz2sL2sTz0bS4lleE6/wY\ndHWIMHd8WF0dHS+dwu4gcY9LjA6Hilz+l3liSNzT3x8RVkGZOpKML8AqzUr9\nkRPZhWiqgbYsHS69H1ZAuTKHthLXnk87DpDDoPIEj0ZQoA6zVb1oXGjsNhCA\nsKbIhgFBGXrsafGLbxq4ASiV0wYmM8uWkOxjp5xfV2XhK0UUjH3jNmFRdeRS\ng73Zdpeorj9JvOsDWv3LxHpZr3zZHULYNij5hxhTaRk82HEVtsZ24KYGB/Gm\n7qBQ\r\n=GA0D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAn9KtDc7Oclc/uyCpE6PvlcqaAbcspyYzgjC7YLw5JQIhANtl0hUQI2UwA7+dIOVRskXjXaFUutLHQwdz7MKcqL3v"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.7_1573576333181_0.5260117419430255"},"_hasShrinkwrap":false},"0.1.4-alpha.1573641772.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1573641772.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-alpha.1573641772.4+70ef3f3","@scalecube/routers":"^0.0.3-alpha.1573641772.2+70ef3f3","@scalecube/scalecube-discovery":"^0.1.2-alpha.1573641772.4+70ef3f3","@scalecube/transport-browser":"^0.0.3-alpha.1573641772.4+70ef3f3","@scalecube/utils":"^0.0.3-alpha.1573641772.4+70ef3f3","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"70ef3f35d42fad3841ab9b9d30ae6b0d398a4206","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of resolving the proxy only when the service is available\n\n```typescript\n// createProxies will return a map of <proxyName: Promise<Proxy(service)>>\n// this way we are able to request for multiple proxies in 1 function.\nconst { awaitProxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'awaitProxyName',\n        },\n      ],\n      isAsync: true,\n});\n\nawaitProxyName.then(({proxy}) => {\n  proxy.hello('ME').then(console.log) // Hello ME\n});\n```\n\n##### example of resolving the proxy immediately\n\n```typescript\n// isAsync: false so createProxies will return a map of <proxyName: Proxy(service)>\n// this way we are able to request for multiple proxies in 1 function.\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxies({\n      proxies: [{\n          serviceDefinition: remoteServiceDefinition,\n          proxyName: 'proxyName',\n        },\n      ],\n      // isAsync: false, \n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n\n##### example of resolving the single proxy immediately\n\n```typescript\n// createProxy will return a Proxy(service)\n// in this example we are not sure if the service is available to use.\nconst { proxyName } = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1573641772.0","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-lDA/+MHDaUT9Je2TmYqNVu2aCnNwR4ZOD+lTU8O9UiSyi7Hm1QpDIuYzIdWOxmF3/guiHnyprZr7uLhUTvSLuQ==","shasum":"e1ba5c51e8a793f90134128db9147a31166134ac","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1573641772.0.tgz","fileCount":63,"unpackedSize":1337343,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdy95ICRA9TVsSAnZWagAAZ8cQAKPLzKG3TQ43etxrVwBP\nZ5/PQq509FRsjdZDk5bOilhc9i+XYx8jaNZzgajRqW4XAljn8osahzxfBToL\nDPq+n16c268asFrXkGBJBrS/GNSPmA1MtpzOvwBlMrSFUjXWTk+6r/9GFQTW\nXEuEPIBI4+Z1mbJhR0mMsh2vuW2LvEzar8ZF2bN3O8/h78sGoyjSrqx5TKa+\nO5SGn5PFrWKR1uyYTRrk0ZL/TsX4bUwwf1OmfXCygCStIf5rZPd5B88HJFH9\nfQuIVHK31VEjFqMLwrC8jasvgHTXb211yJuXo1Thzsb+ws6RhgtLqlTLrPIT\nyuSfFXJd1YnigJQUzT343uk4RQBZFFNkizUZbXfmcnvJZN7itxM4lZpVt8eA\nPHhIGQUPDQ/9uMqP3/8N2g7kZ2mMj6vmLq/6H/b0e0skoVznl7eKzBqpRKaH\nb9G7sPwxlHOMtev6Ocj/gnhmpC+HTkhKGz3kSbh7HaTuwNR0++gwYX7JoINU\nH6kxDBtlD6M8oRLLybGfhbMhUN7aMKwt+PZfrlcjRBnUwRGw6RZ7JzVXsYrl\nx+jD9Vlh/CLce8WgFi6ACgTKfbJ+0fZ7hE8ysMnZ7tZ/l+DpzHC94i8b23Nf\nmfY7pIDizhafarciH3N0/T4TMzGI9cyk2gWxusrtHHbJug8kms0841eQ92MZ\nXIoW\r\n=mBdY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqr9vpU7EkCoq39bFGPCWeyFHo8Z6j6CYuvfJ7Pp4WcwIgQlSol40c3NSYAj4Z2GbnRlut60Mu3n1TepXcMjvR/CI="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1573641772.0_1573641799847_0.858437844230437"},"_hasShrinkwrap":false},"0.1.4-alpha.1573657123.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1573657123.4","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.1","@scalecube/routers":"^0.0.3-next.6","@scalecube/scalecube-discovery":"^0.1.2-next.5","@scalecube/transport-browser":"^0.0.3-next.5","@scalecube/utils":"^0.0.3-next.5","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"b12fb6bbc35ad3dbcc546f09c453c9d5877768f1","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1573657123.4","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-y9Q3Y1zs1J6HmOdTDzb2zUu6CXf4kKZ6KOTkpSpaqdNvwjRovYnljS0FIOKMQThWPBySmaimoC7XhRWQ6VhI5g==","shasum":"346f67509e74f35e52c3ead51dc96be75efa35a9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1573657123.4.tgz","fileCount":63,"unpackedSize":1335520,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzBonCRA9TVsSAnZWagAA0TYP/A4ikTB2uaVC4BZj3+/3\nY0toi7vjs6+XBHgOjUNcx7QbfBIYqizbLkuwkwp/jhrzzadYtmAKpin/IxWw\nH9kMRE8aiByRVvxDOQnAJJ3FUYTtNy5M2bgz1fzPQlETpCCgz1/7Z4pj2OM6\nlzKyi7049g7Bb/LoOznE27KDWRQYplkk0fPFh3hBeYlxE8925hepXtHe/To7\nVj+OtYJqf3oC6JMeB7aN9JLapvFQ/7hmqXlvohKEehM/mxgKp4nINQeXYtfh\nw0EYzpIAUDcYGp9PnJPi/53pj4tCWlTKLPQW1dj9AFcAeJY6YPZ3CKvSNjgF\nEGpRTStxRvi63PkXrONJDaKEqBShFzeAgntf8OthsbFyFOXME9MNDoiaCxpr\n/bQwfSQtWAk+TnZMvG9qdlnFFAqRb3osPZCkeU1d2uAiJOCLEz2Nv/G9BoiO\nm3V94AM4NF9ZUetiar4qtIuVatyXmouwRDvQMCSkWLBZQeqKpOWamF0J3luG\nCwD4k5i+AMhT1VVPehGPLg7g1qZ9pV5bqBtutFAYt2hJTEIU7corZnSkwz6f\nG2HK3xK8yKVjfuemkxS2AOZTE+cx2EQYNVEJkAvAHU7pC1fcsN/LpVFMIxcV\nBjz6Dbob4hwGf19toIOMtC/b0Lb6M+OliPAGQ7k42iEw8aMwj+xQyyq+282Q\nPxOj\r\n=j9Wn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqWw2ZAYleoVtJsgJTQcndqFTHJVwxCwXzGczw5FAQkgIgTTS/9Kn4mBWQsvI7w5P6XV1H3ltXxg7QTCKYqL1DsJY="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1573657123.4_1573657127243_0.7219958804010345"},"_hasShrinkwrap":false},"0.1.4-next.8":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.8","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.2","@scalecube/routers":"^0.0.3-next.7","@scalecube/scalecube-discovery":"^0.1.2-next.6","@scalecube/transport-browser":"^0.0.3-next.6","@scalecube/utils":"^0.0.3-next.6","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"b9e1da682451d58d2ff0e16475ed111a0d7b9b9b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.8","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-Q7YxtIWKmWmVMqISj+EA3O+MUjq2Bys+pYVbFzYyikeDX3Ol2IpLAWdBPD+UkAbwYLBUb0LSK94ZYLN8idCDYQ==","shasum":"d5b86a0f8d9fb19e168ccac8ef554caede81fd55","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.8.tgz","fileCount":63,"unpackedSize":1335500,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzBwfCRA9TVsSAnZWagAA84UQAKArTLu1d2wh6F3ZrBzG\n3A8PKBaCL0lZuYIJ+Mksw5Xmyip0fOehVwyM7MlKL8hsguNawdoS5a1cz7+g\nSGKwhU5SGyXtyMCZjBA2nXse4ORTBkgX8EjMBGcfAX2Cm62/llCLHuH+R/wE\nxWzC08KBUVN3jmyHe9WWDZUTS7C8rVZvrEkC4VPrUeSSIcSKXHEyR/b0FgEi\njjQTn+3U2KgdKr8Vc9kWNayOr1d9FrsKQDVPhhsNOiPtVGrUjooEiHcumEZE\nKnN2N0hUz1umuqBtUfyBJuxxdM6FrlyrSlDGehYfuDUFNo0tHS6XpyKvtD91\ntmQiPkrSdBa6zY4uv+xBf+tc05fuMscp6eexxMEUghcXw+CTdT1vyFGG2Jcl\nzytnLXNfkA9ghX2+IanU1OTCtUjJp/y0H25gbgQAAsztQKJ8Dw4VL341uVaM\nmUcfjv6erWKKNNObdvfMTdeypBi90MyfATYsIoK1NBBWkR3fuVU63uPZsXIY\nZI+iorMgbmfjsQWKUYMIAgfVrfgAdTaaTVamyrh/0Gl/J/tMUnTTWXVDktOL\n3E4RXOKui5gMcepwHDGTE3k0asaMbqFdIV3Hci+fBdGbtifLMto3tDQaAfSS\n448RmDznEx26aizh2eB5EMROB0K7/0dyJ+Q5UglKaZDWOm17S4V3wA3HEtaI\ntgzF\r\n=GSs5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClCkFSO81cXgVi8vD0KFoiYNh/3F8KhhZaLG5Ilqvt1wIgGJT3rDJLXJOg+ke7zkJO9FiWwiSkrQL6j9Vx0lmVh14="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.8_1573657630472_0.8258122927099274"},"_hasShrinkwrap":false},"0.1.4-alpha.1573661720.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1573661720.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-alpha.1573661720.0+6b127e0","@scalecube/routers":"^0.0.3-alpha.1573661720.0+6b127e0","@scalecube/scalecube-discovery":"^0.1.2-alpha.1573661720.0+6b127e0","@scalecube/transport-browser":"^0.0.3-alpha.1573661720.0+6b127e0","@scalecube/utils":"^0.0.3-alpha.1573661720.0+6b127e0","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"6b127e0bb2867d0c2ce22bd17d7c3843be04da17","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1573661720.0","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-xRorDsEuRl1Rik+d2AgOWLrqvZ7xt00SbUCLW79al3qqWPwcFeuNytTCh39NVYNJeaMDdUtJl+Ex3P3zbvHf/Q==","shasum":"982c3abaa2f0fabc7dfcb9a12e804ee4f54fbdc0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1573661720.0.tgz","fileCount":63,"unpackedSize":1335416,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzCwuCRA9TVsSAnZWagAApusP/jvLNWelY0b7ON7+eNly\nvkG5WbREj/xs5Tz2v4IZwmaXfy64W4KrcnT2jGXR9XGJKpKUe+a9zj8WMrRq\nNjttYMflsnAmDJk6teRl4vIJcum5jCpTV56KY5LIXrhQlx9+oatxM9Ft/sHk\nuIXvx2yrdQDJGKv3U2kuGZIVfu+3FDdqtxCHm4cqiZNWKWL+7JaT2W3TKnwm\nUQzKWfgjrw0rzLi+B+pI+rwp8HwA9KJFQDN/SmV6In7gv+s9pYUsWmdYNSqS\nXuZhSQ8JmiB89oeaP9Cem4wKfv1b9XNE9az/jYent6SDXXqLRsJaiHW35QAX\n3y7KcOfMztOpLXz6PtQsHg6h2hdjdbn+o+O/l92pGKJkiuMjUNPg/b78UZV0\nokFp1rq4BIgAiMMAL/SBBIx4dgaLrkhlrHpxyH3tnjwim08svmQCQQZBPdhN\nQ+6JNbD/qwQSdQW3YJ7LuZqfScTuTnCINxMVvxcS9A7JazJxw/H8/IsUWqBT\nfNq36FG4Z7N1Xz9LEfn72VyNrIXLrt8JjTjG7oNEzvJVAfepwJ5t3gOVzArC\nJdUUYvvLsLdkba+vYctMRPaAV1UJPvyzcW7WuRQRIZyGtyuABGcVrCpropzS\njH7jHx4eO+/SSxM4H0yV+mcuKitZfishItgJdZC1CoCBx74gmXpW3KPB6ZNC\nQUqt\r\n=YFJf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGlzsT2AE3ki7qoTQntt5s0w6stlQHyrXQ/riiOVzDzAIgCEYXO33bqv4O4KVaI1B2pTCnoB7hqZ0ZBoh6YUbgyno="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1573661720.0_1573661742353_0.17037442201315223"},"_hasShrinkwrap":false},"0.1.4-next.9":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.9","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.3","@scalecube/routers":"^0.0.3-next.8","@scalecube/scalecube-discovery":"^0.1.2-next.7","@scalecube/transport-browser":"^0.0.3-next.7","@scalecube/utils":"^0.0.3-next.7","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"a0e8bdeea6534d3ce0dea3d8547402c0b0f62568","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.9","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-yMThkCDm9mHrdLf8VLI0znKcJP0X03HFjB1KH93N61yH4iVphHWl3lPjSjnEWR8akjdqoKCaep4VTyHezEsa/g==","shasum":"71ea9e3e259224ce0a306be69459fcc373c866ef","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.9.tgz","fileCount":63,"unpackedSize":1335296,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzQ7YCRA9TVsSAnZWagAA6PUP/RU4sCn4Uta4R8Sr9lzD\nrGcWVNmS9Qiifuq8lF0Wf1OGFwHuPyJBmH+4yHcXg1IOGENLg+9k6TqzGU/o\n+ohTuTvI1FO4r/tV3E/BvXKElBgzRIzvH1fFFYBF6P0QgLLmjmbQL4N6kSSj\nRuvIEnZfW+0ROxryaToG47j6HmwLvg5J7DmbNp/0RRMpKDfuXDOGHOp3htgy\nGXSa2kY254YW0Pp6nqjxm3GD3q++S+wcFS3u9c06xu2lbUS4JYjs1cKpGjbW\n1AsNJZR1mJpQNwjLb455Jqi293iINwM7mTEAWGdbOHQRgbZtWmbG0KZl1AkV\n1y2zBhRM26UTmiah5UPg/4LJsy3yINYlr0SveemdXVjJ6Jg4Tm+qzMqswQY1\n4yGjLMvoFAkyC6FdB5l0WFkN2qwOu6YXHMwekqwE0h2XwcY2Fo2kaDYzPZFf\nVGI10RrMGpeIqXdzPjkPTU4qfC5XC3aHXlu2fjpR4m439osCERpMHQYJR9Rv\nj7mYrpDSA19pbHCD3ICHjFkisZ5dUxzvy5f508Z8pgSbvr9Qgd16rVPk3upe\nJqnnQRhFipCigX0Gw0yrySE+ejraZDO9GYnhPvl/V8tEMLrjJtEo+L91uz3n\nEQHh9Dmy70S/F7GQmM7Nwn4CIBHxLDuHn+8TLQvjUj5tgVbhkT3JcRTWckxZ\napNA\r\n=pKD3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFT5qoARAlEjnx845ml/LNa5RTDMUDi8bqm2LrBOTEpQIhAJaLin3AwzfLaajin1hd0tXdBp/oGFV9sMRjxJnKnWWc"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.9_1573719767604_0.636363236827981"},"_hasShrinkwrap":false},"0.1.4-alpha.1573721432.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1573721432.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-alpha.1573721432.0+93a60ab","@scalecube/routers":"^0.0.3-alpha.1573721432.0+93a60ab","@scalecube/scalecube-discovery":"^0.1.2-alpha.1573721432.0+93a60ab","@scalecube/transport-browser":"^0.0.3-alpha.1573721432.0+93a60ab","@scalecube/utils":"^0.0.3-alpha.1573721432.0+93a60ab","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"93a60ab6f6f78446e3c683bcd5d39dfbf2588dc7","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1573721432.0","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-m1tJzx4AtvlaDXbqAoKMWhloSk/VTW6rBis6LHoSNpei+DRgTjqkttCA5+HrSRo8i/CU2PEup/A4YArDq87vsw==","shasum":"916942b6136e5a62c3a2581248307ee6a75f1393","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1573721432.0.tgz","fileCount":63,"unpackedSize":1335835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzRV2CRA9TVsSAnZWagAAtFsQAJO8G3UviVKV8SYIqJNu\n4bmLVWjMcyiVx4SnTOQshMZsGiaJchV65CL0oCEIAQnHz3TNAj3d9EgD842u\nHEOQkVnKqzHFWPu/Vsas5LEseVwU0KEAR6z1XjhJfmaLIrLUdYxV2K4lyeTn\naEATV859y/8IbLZPjGASC/dC2U4fIGQ9rj3PH5V1wWM/mtIys31KQyyAFtWc\nh6vRLenexE/YgrAGmQ1461bWlRG3u0TLqpXmIBql/H1w2zRFTRgX5BBsu4Td\neWPHRp9phps/gKECbsbubTk5heA/6ka7KYlAn6Gf5NvdkJKpaCqZ7GIfJ8CT\nnMSLiBMSjqqibSY+/qwIeLN2Rp6Z5QF0pRa9hDwc9SHkj72EYEVl0mTAuAb2\nrqxaFBllvyUvE8RMgJ00XBxJ9vmKkyjTl8G3wyR+8eJ2TICaYjatZhHw0gjz\nGnKosOFW1erVVsgzlOg9Yuv/XUA6gzTBHyMWE9dw8CzoDvMpQ9ELNL5IekGH\nWECclB2CLfTaOrYlEEroAaRlRzat2NTD6bmoe2WQzOp1ccSakps6D0V8zmGd\nKoIWlI1f5F9KWCY8PxuVtono61C9BGVIYExPyEEqOYYJXIvz77QAaY7HFXNh\ndbdLoPUscdQ2nNuw/aaeTAn7xBvjni941CLPIcu6qVOoYsANSLlB+lAI3TmQ\nBsYX\r\n=DlJa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFxglAbF36EVp+8Kx4/e2DaJivaut81Bvi2OzlixD3liAiEAgcPPzT3aWhatf6Jx7I0SkNP211xuJkEfW9shGvFyNgc="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1573721432.0_1573721462469_0.5014335706926984"},"_hasShrinkwrap":false},"0.1.4-next.10":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.10","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/routers":"^0.0.3-next.9","@scalecube/scalecube-discovery":"^0.1.2-next.8","@scalecube/transport-browser":"^0.0.3-next.8","@scalecube/utils":"^0.0.3-next.8","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"a5eafcbd9f7a0b38def25b4e07ee33dfa69994d2","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.10","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-a7NqVhPVbFQ3GhgFBAY9yBDJTCyA/zLkuS3cPPj2eAUuTM0pykchRPdBirsYr/KANFfJ/Ujt3e+m8AQwSVtzGg==","shasum":"544fca776ffff61116bdf6dd65cd3beb7a538d18","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.10.tgz","fileCount":63,"unpackedSize":1335716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzRw7CRA9TVsSAnZWagAAD3QP/A5+LYY9n4ITs/mZHjeP\nOl1YoCws5vg6yIs8WjZsfwX0iajohMbdV9u1v6awqsTYhdih0+qfcoGqkSR/\nTmmbGThywrVCqJDBPL8uz7aA69+X0E7zL4Vmn01Z+/wnk15lDfW83qOycZim\nM+vHw/pL3uMHCHMavl9hfGRR3gs9tj+/KwdQUE89AAosDC1wXUurHF4hVXl2\n47bPUfV5WSdycwo5tj7IQMUsvQfJ5msCh7uAla1cZ25cNQIOM5F6qJ7z7sfM\naA7Kco79jfwVuP/DZ1v4gPlnYlmUNPa3ZeN2fpRJzA+IoxXEHYP3dYNMQcZg\nimNIqHjt32QIA5iAOEqgvErt3ypE2zKU2a65KfZJRAaJMIC4NXpqRs758Hxh\nr2s419vj0Fmmd54yDxPJWpk2i1vVCYk6MJn1qGgyy01B/LOTIhKDQ8YL/0Tr\nSFfmz4WbNx12JHJiI6Qk2ZgubFjkBMC/nB/iIaEpXepPuLNS3X2vvEaZpYxW\nz/z7N3RmvItnWlKQlPB97qrXEzDC8EzCJam63PH+igUgNBptaWc3pR5Moyk1\nesAJT3k9TnmyWjsjkLyTsBf9c00Q+Y0n+DEm01uW9/wzMFEOgx4qz8dmQxPS\n+Su6n5L5VyKWL1HOwdN8B/qSDgTyPDgbZ7ciV9OX06hORTQz4f2Rn36RkN9I\nV8Po\r\n=E3IT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNCNmyCaGQpP4IlFZuXkSjTmwKNLyc+RYndva8xAGC2QIgV4GYvE6Zr5IjLQouG+GpyCW9xLcqFtRzRKSc1xhD0ac="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.10_1573723194700_0.9780439879971463"},"_hasShrinkwrap":false},"0.1.4-alpha.1574157227.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1574157227.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/routers":"^0.0.3-alpha.1574157227.0+3df1af3","@scalecube/scalecube-discovery":"^0.1.2-alpha.1574157227.0+3df1af3","@scalecube/transport-browser":"^0.0.3-alpha.1574157227.0+3df1af3","@scalecube/utils":"^0.0.3-alpha.1574157227.0+3df1af3","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"3df1af393e689e8ad8a7bf1262bafe41a4209fd2","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1574157227.0","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-2FPvzbQmHxf8Nr1LHnQKsjNin4KSktQeK7KxYH37UuoStZxA8gBAqqZcapi5vWXjYvTzqojHeeCdEo0Go68AKw==","shasum":"c62bd2042827bc7cba86991f8c4e42491d91bbb7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1574157227.0.tgz","fileCount":63,"unpackedSize":1309396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd07vUCRA9TVsSAnZWagAAgioP/3NeVYMTXQByekzj6xKd\nCTWzFLGLZfFWaiJBG9vTYpOHf7rGA/bOw6XQ/B+eJ066jQXVXnm4xpuRXRrH\nRhxCfKtVbec2ZltfZPlAmKHCw0jnGpWRwPocIfZLuRW5ujUFVL9iORjlcfCr\n/tnMZ2OpZSfVfhXfn+Wpv+X87QqxsQn/SjDIEOSMSgYwE+sMMJR8XtGP4MKy\nMejRHAjCI6Aqys6m5yU5tgrXxeA+8sysIS97dJGfP8gbnNGyIkGtyC1pdw0r\nVuqCgzuXIQ6QidX0KnuWXgGSAH5EZ4CS2DIqaUFL8x0gxQ+i996lpy/+8lrw\ncxcRt5AWRwIHp+dWn5Tm2s0qDeJIkVxQmarwCVojXhfFjWfyQrTU4850nHoY\ngUAHfB4Csyhidx7+MRdmnjCPXk/KXY96rI/yN+4jsQLamcA7PUt7K55X4TDB\nAoW0msaHvurmfA3ANr6Cvk6Ezc2vOo2ZpIRqNB9WHeEPhT4z35Y74DDXEyOB\nRyPq6kEvcPzoINllNfPEYgjEH5uYf5+nJwZkpPDt0OWUyrJN/MD6jBSPf2fB\nra/CVLanbix4DmJY3BsbPQ/IRNjyiA5LtzXYyNgJi7QBUEV3r/ttaAAyQzdS\nYdkpqGOXL3cHE0ZH4XqU7Y/dw1qP9y2qfggv01tZcC1imgYkkJvvxypsCyPL\nVhtb\r\n=kxIh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDE7fxuXavxMM3X0+AZuiH/iWjGsF+LCDzO08OhzOM9EQIhAKHXipaDuWYJpYEskPtRLBWrIIi36mNCg7RlYyVMGt9I"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1574157227.0_1574157268208_0.5792072557861363"},"_hasShrinkwrap":false},"0.1.4-next.11":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.11","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/routers":"^0.0.3-next.10","@scalecube/scalecube-discovery":"^0.1.2-next.9","@scalecube/transport-browser":"^0.0.3-next.9","@scalecube/utils":"^0.0.3-next.9","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"f06c977e779a6ccab5c28ec2b358c0f62c9737f3","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.11","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-KzSesxR8YWIDZ8Cio8rXWYxYAEY8073GRHHaw9tR+PT53fWEOKo8LKNleRhszdi0MkSkSh7WqAEW9+iXSvth7w==","shasum":"82777b21e42ffb7eaf0c43c90788b7c5a6dc402b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.11.tgz","fileCount":63,"unpackedSize":1309298,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd08i/CRA9TVsSAnZWagAArQQP/0hBQfFCbFe8LYmuZlkZ\nFvCJdWNh2YbFsWs5181XfBLgIj6O73PunseTkpQKJ5+zYSWxWqYWEfFgMf0H\nw1Hgh7V2M2rnFaN9ID5h8/56Bji0ewUzD1ag+e9I7Hnn4g16B9AmdTaYHxhA\n18zbTHYRCSF7ppMIt+eRu4msYhZcdDjPDMcpiObkE0nDvHXQ7AnmffAdM/Nt\ncB9O3bQ1xOYudA89RY2oG8iDha9WbjHIyJ8IYdUKibDhyRvMcXIzNr8BAYew\n18OyUvM4x3KxSDp0V29FIVdgv+uMfuAz6YlHyygBV1HVVPm/AaXdSWFXi2bY\ngzYuS11otsTlu1ULI1kJkIHpb9HPPRQqz7XSiuYu42Er+gYJpmNRsiyv9kCk\nWq6JHymUS96jbPrNb0/Vo1wlvgVyqTHmInRKZDZ9dxGjFtC5VqLpF9k3Pb5e\nKx0M7BistEILfzDyTNu0QVYWPMZbjJjks1Tcd+BQ0w/ew1mneTx3xt78hDnw\nEYveazc+5q8eE+l544yeNinz6UHGutTUT692/nUSWPOztlvxBJ7lRj8l2gz6\nJtdcKPfNCkZOnT6NWSG+wO/zRAxQytim/bjQ+1Q4xYFBQWw00jjfgy2ZeX9s\nVegcVF32N0bOvPdSgb/yHi1QOaoGGsmAdfVw7GvYyEKmTgmWJWZAGJSBM2nJ\nitC9\r\n=eiDZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLb+BTaK03BUESXmbHMAFNFoJRydRyv0pyYgRtwCGtBAIgFptcLnx5RwGhN3wRmyw4/ZOQiOoBuD5YX0CjB25T59Q="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.11_1574160575101_0.5202560046692759"},"_hasShrinkwrap":false},"0.1.4-alpha.1574172010.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1574172010.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/routers":"^0.0.3-next.9","@scalecube/scalecube-discovery":"^0.1.2-next.8","@scalecube/transport-browser":"^0.0.3-next.8","@scalecube/utils":"^0.0.3-next.8","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"0cb9ac8946fc3670a5f5fdef172de87fa05875a2","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1574172010.1","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-O9aVx7vDKDUc/HOFa4i3DCae//FYEThb1SanHnV0p0HZWPpkBaqGGckpeIwUtSxBbOsob0HkxaACKsMVmtZzdA==","shasum":"5d96b5172ec4229fd3ffda6b62769fecaafa33b6","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1574172010.1.tgz","fileCount":63,"unpackedSize":1310280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0/VvCRA9TVsSAnZWagAAZKUP/0nfbxvvuivZZgKLgpzx\nI9aTwXteGFRFqK1fCX40oI0/E/I4DQFAyR6XqE7wgfuplQ23aXpbzO7lu4vu\ndrjggfK+KGm2y0sg2idyp57ZApwUmao0lxIGJVshtO5a2RaRaMtmJ5bnMPKp\nJB7OLtuwx0SrMYVLpqHUNc/uZPsFHmBVy3sOvg8eAMHSfGaMPy5YC8cgJ2n9\n2URywg+kV6V0GdOItGy4QGl5faFntYtysxwp4LXV1ebKmj1eGo4qsF9Z/PyI\nBX6hnUyK7XZ56Lb5GXzEtQeG0k4KosYXOs/qdmqQ1AilTV8S0CnACqMgSIe3\ngEhTXmwU7b+3d9rFFy3W41erfFqHKv42l9/k8RimZxKtCl7/9tm2oVqHs/gq\nsaLYiZiyOQ+9mHAZ1kIw5/ql5xK3YcQZJJE3OSzmHW5a2iMpT2k3u4fujzIy\n3fufkShSe6rsKh3iqieRX3JYS59X+w2wWxePNdkZc/NP7Bs/8dKbX9or5Xe4\nyM+qLemDRP5RthqZ4TX/qUE3ZbABdXX0SOXhWyyiNELSgW0FYk125oXpTSoz\nc9p2UDezHuqUPhea7FZr6eLkXzeVSHOZ0BfJIs8T1kuK5jfticpHhD52XWQk\nA3Pw+JkoxGjOkdO/JHR1W/L6o1I4NGgiw7fgK915UF7p1Uyk1J+eKPrzFUWb\nfN1R\r\n=luXO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAIWou33WrjnrgjU6fw166gaZvZV/TMv/oU3ocdc0ldsAiBHw1Kn1ZqBqP3rSV0CYgWBT1sLfjBiqo5T/1JDcv+v+Q=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1574172010.1_1574172014498_0.8662733151024766"},"_hasShrinkwrap":false},"0.1.4-alpha.1574172350.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1574172350.2","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/routers":"^0.0.3-alpha.1574172350.2+c0a5549","@scalecube/scalecube-discovery":"^0.1.2-alpha.1574172350.2+c0a5549","@scalecube/transport-browser":"^0.0.3-alpha.1574172350.2+c0a5549","@scalecube/utils":"^0.0.3-alpha.1574172350.2+c0a5549","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"c0a5549e527a9c45fd4263d2a4e280eb5590094b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1574172350.2","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-a6HzBkI5Hla+aKM/Nec94V8RSVIZtdNTKZAaeUw9pKbFFNssNElRIDUaazyfjpRh7Yfjc5/TqIWfjAipeRJ1gQ==","shasum":"f4a93b90fb315866274c28ea2ad8b02a0c58b91f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1574172350.2.tgz","fileCount":63,"unpackedSize":1310360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0/bYCRA9TVsSAnZWagAAMGkQAIeV6T30r1RWb9aAe4t2\nj9V/WEb+B69MTf8P1jaxOCWZFxIBvMo8A01azpu4tail/ikM4AAhyDGkLTMl\nI/Ohdo5fWdDQuXiFWpvw2QP4ORMFyUNOTUGoI8n8dSDH42SPRDoGtfSefoie\nmzZpqpqsBLkUtKdPgalrexek7AZxyLJylYZ0LkLq3b2s/XOBsVcoWYLwC/4f\nr+KORVHA7tQjGI7d806rEiFFeHQoDN89o0EQSpLsk7LqlwEZSqi4/BCGo04k\niDY4N9FZbPfy/AA4vAFfBbksrDUW20v0Wd8QaNC+VasjDUmucyzYQ9DbvEpl\nG20HaZCa6JheeTbcacpbo/w++woh8CFRIGVNFupD4mu4lA7TgslV2BVFB01/\neBpPVeoSgrNz6kOQvukxutbjcMx0QEpySpt5NmWq9grlQlldKEijvIh2OAw1\nfuZ2v21T6RKsssgBL65yjXZ7FdxAvRNJdA+sfXtgcS0YwRz1w1+sicASQda3\nECTlD3bw5+Hf1WrEjV3qMcP4H6q8tNEuNRtkAuYpw7uuD/vnbrzJQqV4NExv\nfc8FDvz7lbkYM7xuE9558AIBBTwtp3Im9iUZeYRO/KRjwKtl+qAEXv2UgBZy\nxdKkZQr+hDFnoRmtrUl3pmzGalhFelSpqN6jT0RQLWqR7lBoFkz+u4UCs/A7\ndGjD\r\n=6Ezg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUXmvRXDdOCzEWsOSLjGc6al1DfEJXKLjiihKf7HLOBgIhAO+geGcNPkQD6Z1ovIg7ssxIXBjMjKqm6wZnNn+ghHnf"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1574172350.2_1574172375835_0.5307679838604684"},"_hasShrinkwrap":false},"0.1.4-next.12":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.12","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/routers":"^0.0.3-next.10","@scalecube/scalecube-discovery":"^0.1.2-next.9","@scalecube/transport-browser":"^0.0.3-next.9","@scalecube/utils":"^0.0.3-next.9","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"c7e68b50011b17fcbf09c48c1d8177f97b545852","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.12","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-aTLQlQPHbOwsvjLx6g60TAPr9EJca8R15t3kvEecJ32ND4HWrBE7ITAVYdFm+ImVqLVXIQThWJ0j7ochYisdPg==","shasum":"5e64e4852a6ef485266379f24b4ba6704156074c","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.12.tgz","fileCount":63,"unpackedSize":1310262,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0/jBCRA9TVsSAnZWagAADOkP/3Ey4XJCAjdyC7bFsWaL\nEqornLQtcz1O9f1psuszB2vgYHjs9GhHX2wLKOHdrO8sbHWfHn7PT15h7mRm\nq6dlEhjZZD5E9WRJOC8GnI+HhVOtzJH/X0i1vyDBz9mtuVwllCfsSg5gpTqB\n3TR1x1L2S5q+TtNoqnYthGrJUnnjdtUJPncoQCnbDseq5+eLjkcAFNrWMcOp\nZhTN9gslexsLqvOAGVPn2pjVGGwg3WIv0umtWeZO8a6W9ITwMTbACZd/JpKT\niQ4qcZRj4920tV1oKlCm5qJ2j4BbBGWLwcHjJpq3Xz1WEGpfw+yJJV9OXcoO\n1ouqkAqmbzqkuu8DkcRhFH51ISdctUAnGQ+HhxdcIs4vfVGFXeO4jsa4hwiK\nJsua7raw7FNfE3hUlX2OBWuDE9gM7W6In8w32kdOzVWXzukdWejwdKcAXBhl\n9RGdiSjjEPa2cjz7G+KYh27n8BJnPaaCh5pVvP8nK0iwxevJtXSfT3z5PDNt\n5DDVBDZIaPZ+7ES+lyGvfzf7MaYe8UPXExZ/HqIT3ukmWRjOQFF8dtd1fh28\n06qVq5Lm3Ac2V5hfh/7RAboe824cw+jmqNDt9A3N1Aceb8CJ0R+Wx9pYqWOJ\npGUboiiI0R9DIBnF99AIAFFyYR2wGu2CGsTUMnrCkee3PcNVTtTmzfhTJGlo\ndQK3\r\n=NV5Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAkJwdTUNSJ2pi8txdhP7PlRVp3bQLG4sbAb/C/PbjZZAiEAsFL/xGurPutFKfNuwf94hEPAG/ra35AWvSk+WSYmZnI="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.12_1574172865105_0.6820997313313824"},"_hasShrinkwrap":false},"0.1.4-alpha.1574235200.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1574235200.2","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/routers":"^0.0.3-next.9","@scalecube/scalecube-discovery":"^0.1.2-next.8","@scalecube/transport-browser":"^0.0.3-alpha.1574235200.2+3cdefc0","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/utils":"^0.0.3-next.8","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"3cdefc0387ed1170decacf7f38f37195cf98e934","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1574235200.2","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-A3BJZoEy9WiND+C20foplW89HMxO2JG7P3UPf/YlJ+PifqNh/55hBXOVVvBY705g4K02J1DAizfjjyT8TBijmg==","shasum":"ea648ccd2817f3573146d9d4658f81f1d84c8ab1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1574235200.2.tgz","fileCount":57,"unpackedSize":526312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1OxFCRA9TVsSAnZWagAALYwP/32m0ZxefiMKf13ItgJS\nTzW7VGJsBtA06MDJVt95Qx9DbqDR99ViLm5sHz94/nYzX/tVkd1AWYIHT4cN\n5A/TjhZClg4Z1yt/cgG+ujVuA3JGW4nScmOnqZmbqvgHYhceFyoB7LSMryyM\nqbVUYvR4s14ULC2I5tJm449Py7R4oGhgBelToBEc/7GGymlPQRf+p3RpSO5U\npcT4WV/UoysIsiiyDlCooDlQ3F2Le11V8Fq4QxmxGNHwYKLhlTV34TUkJ5lF\nPWuO8jMijfssHnICHAxDUbaHH8fcjV0WHKcEbb8BVr0Y7cLsJuSk+jKtvcId\nPOzxq6ZGumn/F7nIyRwtPi48ORt6X+WPyeTRNMYd/PpzTzfKPMQnVLsKhsd+\nqmuul0xhjnTTy24pnZucL9HcKgE0YD7zCQfXI0YhARv7foi1lzJQ+2dSV5o8\nh/LbMbwbbNbb48F94c2s1auI3vsJMGQo/dDLQRZOwZN8bqjenvAMCAw+e3Qf\npuvPCVhqnWhSr073NuhDz7wAj7JK+NqO3/K6PNR9S9FLNHRXgPahN9JybKmZ\ntjbGdI+of59YaIVDJV32J/JXXgyPziahSL60r5XmnDNlGh+2tpo4q0PbV7+E\nf77bxH62aUnLVI2mNzcaXyfm06WiO/KyVBRhuB4wyGQDvEjPM7syX8JJozQ0\nYPcw\r\n=CenB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDr7tynbZHM3necRE0gY8fWBsqom8RapRf6DR0CGLLzNwIhAKrnH8uOmdMSigopD8Hj5sPCYNFzqGyP5gWavEAbT/4q"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1574235200.2_1574235204670_0.5797413265923299"},"_hasShrinkwrap":false},"0.1.4-alpha.1574346337.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1574346337.0","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/routers":"^0.0.3-next.10","@scalecube/scalecube-discovery":"^0.1.2-next.9","@scalecube/transport-browser":"^0.0.3-next.9","@scalecube/utils":"^0.0.3-next.9","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"5d9e6a7721afd9778c1cde98fd0ec43bfb59acfe","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1574346337.0","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-I4N6OvZIQLGi6rg1q/Ni3Vj42FWlcE2ia+T+pr0ADM10TAyB5KyYTfH/ddwpcfVgEOntrgO3LnxuWPDtlZvWEA==","shasum":"d52aec97b836a6022bd0d09ecb9543fd74a0935f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1574346337.0.tgz","fileCount":63,"unpackedSize":1311850,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1p5kCRA9TVsSAnZWagAACSYP/2NhXfSlvdXuMDFmILiz\nQse4TbFXoWYAn/XCWujyD1RNgjhUMLnzhDii/8b7+pGWOipekltveI12Xkxl\najQMwrmbeI50ei/+GYpYKdgA5FETJzNszB2noznzV17Q+Q2kJywvBO78Lh/s\n/IX5yBwj8Ecr+llzYIHO90Rz01U6c4hYYQjdOaGM6G3NdA77XkzMcxnb7xxm\neZXQMRlx7i16atZXsXdx5tHHQfDosGhsZet2Pj2MyCjqJ4BcYzxuYKC+ftTq\nrc+QBl7mNlaPE2RgvZblQlcpTV9cvcelzdzXDbflw0wG+qr1nfvkAEIHUBer\nxXcts/unlQZXWrwlxLZOh51a/+/NeZLcMnZpos4EIv23T79K26QS5ae/MuTb\n84WWxYZX6PuTaP0Q1/2hX4dK1gM5VwexZa9tfBqejUPDMOtzguEllXpqauQ8\nxX3xqHDu2MGXcz1tkYY2W5x9A+ek8nwnk9tQmr6/nu/ul/rurGESpbAPV785\njGE3yZpjsC7QqB4BzlA0VjjErbpR33TjOlIIUTm8U4kxlPGS242kRkYmgKYD\nLutxJlMx7IwYAsTczkDWYxcF4AUKC1DauXEgJXAXes1Wj++j74jujWIYxAZL\neu3WBckio29bhFUc+SYfepDJSaXNetcMW5oEq9OVY0kQEl2MXM7CX8kOuoKE\nb4F4\r\n=DOFl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGEuu5iYGxYM+hCg/BOIEunRItf6fWvBXiT+WxIcojdZAiEArwtSWY83ZoQ87TDh2MNkn6GZ5sZl8K07aHc9F8yYIIs="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1574346337.0_1574346340372_0.566837910602513"},"_hasShrinkwrap":false},"0.1.4-alpha.1574346856.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1574346856.1","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/routers":"^0.0.3-next.10","@scalecube/scalecube-discovery":"^0.1.2-next.9","@scalecube/transport-browser":"^0.0.3-next.9","@scalecube/utils":"^0.0.3-next.9","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"3b54f80c86742935f4b978ef502fc212e492cb47","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1574346856.1","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-fem0KryLHnY1yQHI0LLleneIQ64PEzVCGLrPjadmXv/ybaLr99wVEPf30P7vnJKIBj5mKEFHUpU7MU8i2mvJGA==","shasum":"af41761d9726fac59e6559a8e75a4c2b21996c8b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1574346856.1.tgz","fileCount":63,"unpackedSize":1311939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1qBsCRA9TVsSAnZWagAA8FEP/0eKNxSEw6b/m/E6l2fY\nH5Ja8N8pHA+pEiburUms6i5z+d60er2rnKZ/EPiMk8M4hivIHBVqaCEq85NX\nR/JPV0N3tCNGZrS7HWVeY0tQSbeNhtMPR8n7VY1xX/8+SjDVURpjDSVX5sEn\n3POb/7H5Pu/Yc9hHkCuC+1bPZoBjjZ28OMSeJGemJ0GDAu/cg31MBMN6DxTk\nTS/5kN+QYEo9a7okzBNgTr1fs9NKitKIMZ4M6V3yv1gQvqUMxxhiaLpa1A2E\nUKMmVnmPtwboCc0fF9PDl+Bg/JZDY6RmsgddZWlgbtVsSPDQrdx9YTx4YtQG\naC8mdHtolKSDlfnI8ZiFuVfgICrgUXkY3Ofb9GiRVIsvk26Psw+5ddyizCcM\n2UXsFxYIMZ7s6hfew+W3hlVbseJL4VrDvprfOxatE4FLdUpi6LFeMpk27m0x\nB9WPFfZl4JlBLFb4MrJpeLYWCnsM2ZQppeUtNA8w1EwJ8k97Oie4SzoQAjjd\njPFzj7b7Vv6HpGvTsNQM81zNre6PC/DgyB8p5IPJd4juExiu9gs6Uiv2CJ6L\nv4btl8Mr7egB52VjDhqIW8Uh+SnEspnD4nPwI+u2iB807QAMacZj8eHfTtuJ\nqCU1ljsL98PVrkWGcRSpuCvfQc1BYDN4jjwVOKjvLgGS+CSmoC4VgTlvmNMD\nqdCc\r\n=E3+A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7RgCaeydQGaThGWtqjEevhnM+wD7KLs83Kse3kPiZWwIgeKr+GAtYvo0Qb8kSwyQGIlLXijnRHygVCqCNsrto3qs="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1574346856.1_1574346859709_0.687108315623778"},"_hasShrinkwrap":false},"0.1.4-alpha.1574349086.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1574349086.2","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/routers":"^0.0.3-next.10","@scalecube/scalecube-discovery":"^0.1.2-next.9","@scalecube/transport-browser":"^0.0.3-next.9","@scalecube/utils":"^0.0.3-next.9","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"2090dcfa2b321c8a014c9fcf2368b3ed546b01be","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1574349086.2","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-ryJof5CdoUm+ul487i8MhxM0OlJvas085xrQGSXVQDSIz3veO2LCkeBeH1us3/kTKzIufExzBHqdcvi2LqB4JA==","shasum":"94b92631bddde66cf8aec8371fb4d8396a3dd5c5","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1574349086.2.tgz","fileCount":63,"unpackedSize":1311939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1qkiCRA9TVsSAnZWagAANXoP+QGtEJWsoIIgUSxXgCae\ncCZ2MufmwFY5hisERMrE02qcLf9socYhXpl+BbvetsnqDJ4c1PeUBWV1jfaE\niX2scsXFgsD3TjUUxYaQxpolrWcaVQMW9Fs/b5XowPGgrnP/mv6gI3fonOa8\nrirbFdYUT6BypHO10tuxlF9TfsjGD/SBTt9L+mdxhnZC+WuLLNoiiIy1U+Y5\nZxntMBFlCkbYJ5I2v65/FbglOwaR/HFHVo/7KinxXTgFmAPN8VwjGFk0fq4A\n5I5FpLx45PIVvdmLqH29D24+57iUA8Y31fF7QXdIIcCooTtW+RgbdBEoU6Ch\nd9phhGhZve5z/afiR3KcdZ4TfyU+3eKppm/v3tMQiRHUTp9hqTRL6bAc/PCL\nZiwe6faHtZjkPLvbo8pHQe7ZABT6xqs4U7k4VR/v5ygBLLwmvSkCJeXo24DT\nvWAoOjcC9f6p72uk6+vwNG50wmKpyF1OYD05CYqr/svLS4jdheYH+3k9074h\nGczGS8LCLRTWUl4nWYpgIUqw5WmIi688+079Ub1Vq6VKd0wo9uez2NWb/gg4\nFrPvLC8PQqBCvMb6kDyg3UMSOiKQtkoc9XTHBMd0jHw9xnN5I/iyjCDbfP4i\nK/sYQU122QdaUO71xQIY/TZphZbY04+FBYA8WKRKYG0KRrNJFmGmgTJFiDMj\n4ceB\r\n=zoT4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG88RXEc36nfyBXZMaLKwJJbqippCbpuihkECW2Ry/7OAiEA1nH0tFdmLpBxpyvHw3PKC3EPMng0iM0XEot/ijlYyV8="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1574349086.2_1574349089732_0.7288276361869206"},"_hasShrinkwrap":false},"0.1.4-next.13":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.13","private":false,"unpkg":"dist/index.js","main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es && rimraf dist","build":"rimraf .cache && yarn build:dist && yarn build:es && yarn build:cjs","build:dist":"rimraf dist  && rollup -c rollup.iife.config.js","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/routers":"^0.0.3-next.10","@scalecube/scalecube-discovery":"^0.1.2-next.9","@scalecube/transport-browser":"^0.0.3-next.9","@scalecube/utils":"^0.0.3-next.9","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"a3b1274b316aa78e9432c37dfd7c8775a6f3145d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.13","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-1hVQtlpsNX9O6v5/DDfDDg3iRKYfEvMDRUaZyShrU9R0Zl4bk0aZh4f2Zlmqmgqc341B7P3c6A+45ogBlqRxAA==","shasum":"55953b3c3803035df4a09c84a96647166efafc11","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.13.tgz","fileCount":63,"unpackedSize":1311920,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1qqLCRA9TVsSAnZWagAAZOUP/ic2DwyqkwtYYa47odVz\n0MeAuqPbw3NyfWXl5sxyRYie0Crpu+0mjPEvHf5wRHeNGAXbwYFhBC+5/hsN\n8NQ1FMrY3W/K5s6c8i2Jf54JgEs4QLig/yJnGHB9/jpLHofjKXDHSwRIQhuk\n+xTumLaUVUmV8LTLb5O0ckTRfrLkkdhuPb7yuajzJICnWZ2uDoQdq4IWGm00\nGoL/rgXxTKV3qxD8ZG3NIcJX9XReeWlNHCdWm7NGETfwkv8ee+zJSSOxSwug\nC6mk0siV1MB/TVcjTehXWJOtsF0LnqDMBvJWhH8nMC36uW9IxAcprqp9Gyvm\n2n/4tOornKCGTQFy4IH+OHpPuk4pxZn7JmdLnFoB6cCtK61WYaslQ7IYwKnQ\n3BB23SJspfR2blcC4c2ZfzxiadhXmlv2Se31+64EUHDtI4F/7RiYLwUW/p7V\nnuR8kvgLOOQ/+I9cUu7OE6GuTFdeBZ9KsVkca12szQJwgFUomZrSVx/Dlo+H\nCHM31C8XJMywNA0i8FUsa25tvYTAsj728gxMe6iQr5l9jkIvFKhGQse//xg4\nt/zJ4LTiq0BPDIGocNDdDH2yIgcArFB0lMPjl87wM2cmaiI5e2IOBBNTe1jf\nr6bdlKNXP4lD0a9gdTVzj9nxGG+sPdqrkGZqYxCoHIOnHQKyDAzof7dUQog0\n0FXb\r\n=/i5d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpd/kaoBuZnqgQTwU6o605kRq8Ko1Hj0KOHBDN0+KtvgIhAMmwFtw8BFjWbiTmCjvLbLJxuMnGsdlHD/YQplPafOXh"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.13_1574349450755_0.3679520858129244"},"_hasShrinkwrap":false},"0.1.4-alpha.1574689536.1":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1574689536.1","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/routers":"^0.0.3-next.10","@scalecube/scalecube-discovery":"^0.1.2-next.9","@scalecube/transport-browser":"^0.0.3-next.9","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/utils":"^0.0.3-next.9","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"6a47c0e4d489fd726fe27d4cf5df0131d7a8fdfe","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1574689536.1","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-t6jfsgIy/WdWEq5FMdqRcdYw0exukI7TIUZxipOU98nAehHDiyby8AJEb6D9bShqbWKM3Fcge0G1iWjHkvKINA==","shasum":"1ffbe7feb5f2b0a5af3f95db1bda80febfc0ec0d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1574689536.1.tgz","fileCount":43,"unpackedSize":633560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd29szCRA9TVsSAnZWagAAexcP/32NTm4uy3QtK2TnxIlZ\nXwXTW8WnQQ7wozYJy61pi5ThbSUMPOP+GTxgyzG8l0q6R8VYh0juCPDV25nS\nwF9O8j9VpvLv5xpBSgR31pTa70T3LKqwtX6nlYSKmxQ4u4JqHbmeD0sIaLb8\n7k9GTRyRwQZJ5FVuNQRmGonmCaRCg4Cz+BybaT43MhOVWY90RGr1T3hNQsHR\nvqQzhEQR/ANgm1R518c+jCDyegrscHjHIOAsbapdqpVhxPctdld/tOH09uis\nFcn+q9tDVlhTRzye5jLhIz20F72Yp8X78HsPJuG2AoW74NFFXBQLDZJ4JbCG\nwXAWucTMS6Iskz72uhCjrOfFM0Wjy+qe/3GyFDUP+QevV/tBvluLp2Z7P0Uq\nHDoc6SHhClRESSsvTio5pYDiD6stLZq/rIJXJQvROLbrag43Rdrs8QllQqtw\nfceQ1N42ugpsFHeMAzJPLCbwhkgXkXxRPoUk2YgXF6/yYg2J27rFUtxs3JO8\ndqnWx7J+Zbq/jYuQ/huPhLYhiky4+cumJT912t0gtmWYJ2jCJb/+P1Fm/wtM\nQVD2QPCdIiy2zc04ejMvzzadj47GDay214aGvYdCFI1NWd8tG8k+BpGUYExC\nXCeG4s3PAKce6M6fw7Vw4GotNSGWVziOqCRy3R1tkmHTTOLmbvPcfJVBf+bK\nsnY6\r\n=ePHp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGTLCpX7G3CWoP/cuCdrG5ep0Uiw27wdgWADYrJ8HDFXAiEAydCjCDvEFQF/Y6cgW9Wl4/sP/iooB0eVa3gejvep58U="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1574689536.1_1574689586562_0.2702839890439048"},"_hasShrinkwrap":false},"0.1.4-alpha.1574696602.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1574696602.2","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.0.3-next.9","@scalecube/routers":"^0.0.3-next.10","@scalecube/transport-browser":"^0.0.3-next.9","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/scalecube-discovery":"^0.1.2-alpha.1574696602.6+03b0f32","@scalecube/utils":"^0.0.3-next.9","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"03b0f32905d731ddb3efce299a5264228a9f0f10","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1574696602.2","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-awaKjiHU1HIT+DDc/9Qk3DbyUKnwN0wOxsov2LwX7mvWHK5w9RWlREE6DgFs6xN/z0W22dJBXGYciYoVsYwp8Q==","shasum":"abf26bc7050b1b7262052a9e33904eb0323e335e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1574696602.2.tgz","fileCount":43,"unpackedSize":584417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2/azCRA9TVsSAnZWagAAkGUP/iQKb0UuTD9/te4Qs1gZ\n6fKeDA+8LdzopBoKP5kiH7EIUGbnZTLbWhbVksNLJea2diikJNBi6hQOb36H\n7mXavX5kI1OBB70zsVbQAEU5mA8K45TomMK5t/ZgxrkZCBfIQUmOtPoyfZuy\nh1y3ONtBy2YBjX5OoGmYrzutxJCHcEk1CEB5t7MVkPSYtrxfKePzfZxlf5sC\nrHuT+Yx/llX4Uw+WPU07xyOo1wL9L/dBwbFejqMKX6mz8x2tcDlHDwnK+u7Y\nFauj6chX851hQItU9PijAJ7mnfo9cScJq5muuoaVfUIYnYukn8JZ2INp8dUL\nUnr+AFGqJD8pKyXUQf+JbxLtSQUWvM56oagvGbqKtSLXBFw6kMxs4g21dwBi\nMN13qh7Yeg/LRVmxFBN9BfuKiHnWOxf8bbZkjhjcM5TiaH5hyXIV00OHGYC2\nKJpjjZ77bQXLbSNmmbZSA1Iy9MiVpdBMgMpDEnwz1yq6DRabpGT0+RjuQDi9\nsIbYCocq+q7r93RMuCTQdcrfGMAX8EXbXmF1NkYSFIqgN/RzXnKhN9cdylje\n4i5P5Br5MqrM1zOTWrCWHr6jd+xP1JjJR9DM29l9rB70hk50XPT+FcPuYWXf\nxKOguGVBpsYvqWho5SpBRpkcVKwS6APwlj+RAdi7e6VWUrM4EKLf6BAImPlw\n3kPb\r\n=Jyv4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHmfhQf4xAk9rFQzaVRk+dkvLkEyF9xgLlg80oIYKNTwIhAJbMvJZZYpk5XXOfFoc+B/yOvWXq4fu0YeiwNmU7TE5H"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1574696602.2_1574696626380_0.875876769041146"},"_hasShrinkwrap":false},"0.1.4-next.14":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.14","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.0.3-next.9","@scalecube/routers":"^0.0.3-next.10","@scalecube/transport-browser":"^0.0.3-next.9","@types/jest":"^23.3.13","@types/node":"10.1.4","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/scalecube-discovery":"^0.1.2-next.10","@scalecube/utils":"^0.0.3-next.9","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"8ebc86961b1a2d6e930b6aeb288c0aaee2debc63","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.14","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.16.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-gi40erIsft7XjaazcHY128d/LtNBPaW150Td3KDDMdf97p53+dS8K3U6o+gAayrRT1cDZT6IkA6ambwRBv4TMg==","shasum":"c59393f0beb424048b1c12f297e0919995466b7a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.14.tgz","fileCount":43,"unpackedSize":584379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2/kXCRA9TVsSAnZWagAAwA8P/iynixSA3oThN11knvCB\nzxl9LPw3yKiGfhA3xaXxkHcfQ/yhbIzs4rkv57cOlh3U2YahwSV2uqpE16kj\nF3W+vlRO8ux6tUq1RvdUnKBhr6OraXcPUk1ZG9DLqqhxI44fUCQbLylHz7VG\nSBmdRXMuks+7wKELTlFrYkmSLFU9kemJu1q2b1zw2B+9zADebqo4HFs7jV1Y\nkIUnFGDV9AuXOlbbsZamQkqx7zK6pnavTu1uDKCHMsZLEHhsMl+gnFUnqi1S\n2zDGFQavW8TY1NWUmlycAUcNgMZTjZUjbfDVIKAnpQMTxjJrAe0LqZ/u5DeX\nlqrlar2NPLwQsJW6ItfKXOA6jnMZNeI6qvgNQVcwRYVq2v0zk8PolIkaeTtQ\n9OKpOytf8h+ndHaq4UG+aCC/BQw5ZaF0k2vhC551wk22h/7mWIzllBZRVvS3\nDAHTolnziDQ73HzoQhClH8VhACofyZBTNUfeqzAOMOxeqO1TEim4E0x/LcWO\nZq2jllrPVBPrMuVsscAGg8f2G54ITszxzvt8za40zPPZyGqx0dLc83YZL0qZ\nI86sxNcLwCeOmtuVOrHwKfB3D8wcFpHQ+JbZIF3zGJOYYlY91B0e3NMxPG0l\nCpxTyJeBlUHlHfr4fo26IbeKCvgepAm2qc8cROR/Dg4fS4Vf6oqoVb4p60uT\nG8kk\r\n=qwzu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBh7fkjm1bOJi/FQFPv9ITUNINID1ZtxjK/YHxFVWJZtAiASv4IKBj+dkUuvZm5PI8jvikTVa9ItAhkJI5hVipAARQ=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.14_1574697238638_0.35887144538629423"},"_hasShrinkwrap":false},"0.1.4-alpha.1574778490.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1574778490.3","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-alpha.1574778490.9+585bbdd","@scalecube/cluster-browser":"^0.0.3-alpha.1574778490.7+585bbdd","@scalecube/routers":"^0.0.3-alpha.1574778490.7+585bbdd","@scalecube/transport-browser":"^0.0.3-alpha.1574778490.7+585bbdd","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1574778490.7+585bbdd","@scalecube/utils":"^0.0.3-alpha.1574778490.7+585bbdd","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"585bbdd843a0102b6b062f2aece146d717105b31","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1574778490.3","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-LtqTAbr9x5aaZdmSO3KUE50ql54byO6Y4RY+gUuVJn3e8RCr4a1mvzxAf8TcDxh15L5NMnuRRaME/LRM5LwFlw==","shasum":"e6e3103b33f60442b4b79c7a6cdf85523237bdc8","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1574778490.3.tgz","fileCount":43,"unpackedSize":555954,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3TaNCRA9TVsSAnZWagAAVbUP/Ahwkvjsj7yNNZiEPHM+\n7cccIt3wgYksNplpQtnrw84wryAybvsh0EGwIMXkxB2f8jzr+sibLp8PGaF4\nfcMUvHUePisIC+LtmumCmUpmsrSNx5FI06Va/M2eVMTw94eT3KZfDqipwcZF\n6yOIVqo8wV1PSAJTJJySeZZs21OOqkcI4dgVDuCRWb+ealq4Lh7LDUsBX+sx\nLNpLHThnLmOAxgEQtqkvDssebrNw12diZTN1BJoXxvbuG3YsJtg9n5nLVSxd\nicxcqb6onH7RbZwfA2aIZ4mFm/9vlkw3oNdwQfaUZlHxpovG3Zos6UhQdoGT\naQ2Jvr/kJHueeuxMbDgqSj0/aS0fQ9UQw6D3X6BE8FcJhAPDq9zQr8R1TmQL\n2RelFlwb1MIcM0EDk7xGYF3ZOLPJc+wiuxVFOacreUtIqhlksYIs7arAFRvs\n6S2PBj5iSczJ4ls47+cQZnSQIZHWEY/amhdK1FnCmx8hrxFzqUV+nAs7Mhnh\nmCJbq92WRd26tTMaSXvLIuE8+JSTn/Tv0BD6gSt1zWgxeSZgJcQO5irInjG9\n3u9GkIDynIiRm4v5kS5SuOLOHNHlbLzr1PG7RA43zNi+RhqGslXfFgOAe2I5\n6uN6c7Lfh+oZgEsfxut/VCwfaCKSjwRECaqbnSZ1BW/vTAF3+3xc3aqKZsIW\n/64z\r\n=Pc97\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVl3ZxCWOOoEOrcOCkEW5acrwV/K4g9kLkF7BRbwTU8AIhAI9cDkBIics94g4/yg1jjLg+On/9PpTGuDThnqyUAsnS"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1574778490.3_1574778509303_0.48319831108478173"},"_hasShrinkwrap":false},"0.1.4-alpha.1574779267.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1574779267.4","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.4","@scalecube/cluster-browser":"^0.0.3-next.9","@scalecube/routers":"^0.0.3-next.10","@scalecube/transport-browser":"^0.0.3-next.9","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1574779267.8+196f6fb","@scalecube/utils":"^0.0.3-next.9","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"196f6fb160fde041edce8a0ae9e62e07492d4617","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1574779267.4","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-ggC2gR3ZGiX+qYiNom8IcYgwGLgbPK8K9KF3bM+WZiMVOUjm47fHUcvln3GNuPEa/cxsBZ35iQPQ412VHuSmQw==","shasum":"1ff75ccd2b35f83c2ff775a8ed58ad56b3cb0d51","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1574779267.4.tgz","fileCount":43,"unpackedSize":555855,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3TmLCRA9TVsSAnZWagAAxlYP/1KjNJGhfjG6JjPDDGV0\n1Zl7PK+Aj7Zc8HUf9rJMFS4kyKliJNNpiZYwQbdgRfuRWKFQi85J++N2vmOc\n7A+BjH5aVRaAd3iGezAAFfY2ryG9gzo9DWsiQnyU8YqHogTP2qM4JL2+Ao6o\n6I/AdgZQWBdUUCXsZ0IoKl2FiPq/I5xyXvvYzWkoVg+Q+dECA+5pKCHBoH96\n6YAgaMxbDem4r2ilXAA8ztfWRvucsXtp3n7F3OS7unn/geEaOMLp6/tATdRZ\n/DMo5uJp/frhhrnhOES7MIm6g07Fjpq4LByEtugW/jyYH5kBFHYVUaNz0NQh\nUZ+/64q03+Mypb4P1sQfvDeP9irVrdLTJgfZLBqrC0aDKqoIvjIyUZIK847v\ntVPLu79dA1ZXT+hIw3KLd6wBBdi4AIHAzb2UDT+EtOe/ytjYsI1z0mmQm6gm\nAKj0elh+R/2ui2OW7Sw+qWTisqrcqs3sgYpbjL4bdmDnMl/u9iP5tXxwdvEO\n2CY4Nikzbdeg223VjnbcF7AIb1x982tBk7bv26SZVeP3cBlQgG4uRH9mBPqx\nf8x+PWEexL/HA72+dswHqcLa9f63xjwTvfh3KCXLmR3vpyPUG18jMQM7Ywwg\nngOZ0vg88Cf8T0DvkRttGnPT8ct//X9AzFtsDzk9GWxbQ1wmmXn4yVXQVC9r\nb9gH\r\n=XaQc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjqxyHqJCU8/2dGzFDQ8ojtGxnr3VK8r5umXYKKK+V+AIhAPygQHfTz1NgJrATS9XTMQDP5bzW2gYDLAgnVpxi4Jly"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1574779267.4_1574779274937_0.9610341463556862"},"_hasShrinkwrap":false},"0.1.4-next.15":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.15","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.5","@scalecube/cluster-browser":"^0.0.3-next.10","@scalecube/routers":"^0.0.3-next.11","@scalecube/transport-browser":"^0.0.3-next.10","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-next.11","@scalecube/utils":"^0.0.3-next.10","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"91c38c9d366cbde543cf6b5804c5ee76d9979212","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.15","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-y/S0DGN4soCtJ0QkiOkBzVTSc+7IRK7JH2YVZI9wnV89NQc4DJfJpXHpBsapPEOJOoRnLME1A2cAxujszZZWwg==","shasum":"e2989d19ffb83406db4d618db6ad492a79ebdff4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.15.tgz","fileCount":43,"unpackedSize":555820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3lekCRA9TVsSAnZWagAAOfEP/ArroCZmrejkzDMKVAqz\nvmHXoIImuDO5H304LnHjHRWwhXu8UzcQsWj1udNjB80WIZZx/MsavixlAtPM\nnTC8pQ59Syt8CmjDgyYxkhyhgUaJbIwgOCAzOjKXH1LgwrqCgP9LGsJvIlD7\nUJJDLX80LxK5D7pvK5UhbI4Sop+/SU2dCPLhWBfmZsKIpAfvbnWEeuQEBwNR\noWnP+gyPUUPi6HJT9OyK6feK3FIR/TMDpkgmSjHpaVq0BIty1bnvdHDIQwcP\n/j3v25mYdH9MtdbWXwdvWYv1veMUPW+AXoD+TkJBVMP/F1OmCWhWvoCJjPhI\nXap87V1tYswauDyWj7TAjsiZPn7kP1WQ+K8aIFdKFWG2pm2LHvCpqywpo8IS\n/Q4OprPKm4rj0VAwfSg13+2why5cfgfPLPJ45HyeclhH/AzURy897Hg2NFZq\n6ZfSirlLv3ycln67OY8R41iFSjAMgfk/hGH9lagOH1NKge4enwSZNEX3vBF9\nZdUsj68o3w/FdIWKdYH8HW8iJTybs8uVbBvSYehXpUG1W06oN3XQYGSV1nEi\nA3RFWxiMGrHhTZPa7KVIyOXarHw7+CIUi2pi02lFt0k5v+VOVjw54GjVe/7K\nXH1I/uWSCcJWgSV2AFM+RLPUr55uPN6hb6YYKK3dYcSHVzw1ghB2eJOgZsVB\nT1cP\r\n=soOq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAvbWfcEalN7LpPxvuh/+O54xxzakrCt7Co5l9gQpLBpAiA9omn4RjuDf2hr2ZQin3kEdZE1oWxX8RrOfagECO2+Dw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.15_1574852516169_0.7648816567053436"},"_hasShrinkwrap":false},"0.1.4-alpha.1575185873.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1575185873.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.5","@scalecube/cluster-browser":"^0.0.3-next.10","@scalecube/routers":"^0.0.3-next.11","@scalecube/transport-browser":"^0.0.3-alpha.1575185873.0+599dc1e","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-next.11","@scalecube/utils":"^0.0.3-next.10","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"599dc1ee73d1180795d30bd0994c6864fa691340","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1575185873.0","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-E8Ojn6iiVU3sIAGuYBq6mnHU6U+hSweKy6CbchuROniXsKUKZ2Yj9ciVwPyEZpmd9d1VZWEz0rFZEEwO8MdKgQ==","shasum":"d5c7b2cdde69ac2f5d5d7c94e67c45a6a7168f9a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1575185873.0.tgz","fileCount":43,"unpackedSize":539247,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd423hCRA9TVsSAnZWagAAPJUP/2jC7k34ekWuPrNaQ2pT\njWJDpvbrAq+oZdZWEDiGf+pzqRHPlQ4SwBPp7Lm5csA4BoVkeNjwxxds9fBw\nqIYNZwFDALNWjnAWsfEOmxUFi24+E57kd/GtDlvZTXvNBguGXGYiI90XgDHi\n1oGflPz4cTDVb5UN/g4uKuze+x9GO4Qw8l+7v4aZtSvp45jWhchqek1Bnk2c\nfxE/F7ApkuEdqe34bJKZ9IEm0FUPV7/95xs11LTkXnq3Wxz/Q+RkXbcPxeNT\ndq4nQtBfwEdgF9J7omGe3/NoKAJzsQxpgwg25/hfkIb9tKxinAywK0Ddi0q+\nZxuc+BKeYNUCBulmU3bGnOJYxTQSmfWBiR+XgEf9yIGH9jAkgqKqJDdpOzZh\n1AodPFBeteDmCvF1WgiP9ziR14vjQRgxlDtopIkCpHt1uJomM65Uda8Ifi3k\nBMCjZpKyFyb5BsvKKIs/gEWg3Bp4qXfJOTws04eVkUxYvJb2cZbZgujtaNvL\n+TXkDu8OKN5CdP2CdbsSFlD7YsTLNQkYEHvU3G0vXo6T+lUoKjGrkeuMQPus\nsX3mMBOOXdVDWZtln70eR4RLF9Fz/hGpGuXh/vCL7pelYWDCkXDPU4Bd1D90\nMAdb/a2SiATP6pBsbep/Re12y0k937YQ/on2mMj8bm26cahXfuGXRXRK6i3H\naFYE\r\n=HvrV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIER6kKxkxZlm79QkjcnFHyciVlza9iGDSawEtWt+tlEOAiEA13vbAZFVFWOVZNTR9GmWSTnA0tM6AHrnKMlS8VOzGFQ="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1575185873.0_1575185889314_0.4013825818141159"},"_hasShrinkwrap":false},"0.1.4-alpha.1575189026.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1575189026.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.5","@scalecube/cluster-browser":"^0.0.3-next.10","@scalecube/routers":"^0.0.3-next.11","@scalecube/transport-browser":"^0.0.3-alpha.1575189026.0+599dc1e","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^23.10.5","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-next.11","@scalecube/utils":"^0.0.3-next.10","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"599dc1ee73d1180795d30bd0994c6864fa691340","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1575189026.0","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-7IkSXKb6TIwf5O7LfaDFfioFakNKcz9BPMzYixZywwjmwlpNbqe8h3/M9SLApsJSe7E+/pLN2qThPz02rMmqDg==","shasum":"d06273d61c00dd8dc488a914721bc3794ec407ca","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1575189026.0.tgz","fileCount":43,"unpackedSize":539247,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd43onCRA9TVsSAnZWagAA8C0P/2yhis4om7b7r8lNA23C\nf3kr+YsqWKXxp7KAgGLr+nuxm2DJMM0mDvGEEpqG1OzX4+VrRJPXNp5zqBNv\nHeqii8qHyu/r0ysnKv00NTq0WGIAMwsYykBayaeF91VWgE4gj3XLfCuOw/bk\nroMLD3ONoMsMqitUTekg53qrLiIsEagSqG6Vi357fQ3WtGOQa1tl8Zm/KuQS\nn/FAC50ZWgN5dZyRIdh+5JuqPC0WYGsjstnegutoaXeVu+enFaFNHM6+Ynra\noCSNesAuwW1QlD7bpZhtA1QOPdLkX9+6q05D4IbSViYYGujXdPbtYLkQx1yp\nqPm+KXPqsXQrTvEqGxCzG8x7m9ntJWJtcz0YN0PyBGrwdJDQ+4owponk7Bi9\nxZRmCpiuGkirBbsPzyxj62r6RhzxJocSqbvw8gxcrAU9KTWeCEv+pNH/G1wG\nsISchu8NQhrL2wejGan/5C0anrqjx6ZH32NPnzlPFJ5lPFviM8TOMIgxY+kK\nA/nLKvR88oxi7uFTYydoaTDcN/7lY+jdDv3IC0UquLM8zf6/i5Oek6coktUX\nNJnmEOVwkhKvF6S4Qdj3vnh1Ik7g4XDGevv4zTirTcClxvO9kTfPkcc0W6Wr\notZLBImsd6+T7mx/YGf+KkAV/S7Ln31Ttv47X+rm3V5UPS6DvstklH4HAG2K\n9W1a\r\n=CtcL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmHWbrUZbs3tbZe4dusqq7J6a56w8RYsXyQ2oe01+JwwIhAOTzhXxbeBmWfkIgglpDf2qFt54GndW0hI5hcDW/AoRo"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1575189026.0_1575189030951_0.449062474099001"},"_hasShrinkwrap":false},"0.1.4-alpha.1575199621.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1575199621.4","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.5","@scalecube/cluster-browser":"^0.0.3-next.10","@scalecube/routers":"^0.0.3-alpha.1575199621.4+6033d61","@scalecube/transport-browser":"^0.0.3-next.10","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-next.11","@scalecube/utils":"^0.0.3-next.10","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"6033d61326156216dc445b5b47ebe15b21685c2e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1575199621.4","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-6BEXDA9rmM7ioyh5nfre3zJQJuq/e2Tx0poUaXfEbyHiVN9Jhgv0x+/X4Y7BQ2QxltPbJlicZujEFXfvx5x8IQ==","shasum":"79fe780910ac41cb5b9fd9d40f8baf0e8e1e972b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1575199621.4.tgz","fileCount":43,"unpackedSize":539246,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd46OZCRA9TVsSAnZWagAAV5wQAIHuc1293tGZ/w3LeI4W\nK6WnZLY+nWpLY/ox1W+hKdZFAgY6PUC9cxroCHehRpd0b8M5h9P5iafVGw2w\nMsLyV8dW0+c2n4+lFEuAiZOqMTxy+nLTfIOJvo/7gd6DRE97JvYsd8FPMu39\nQycaKcN3Tm76a8CYWmJBFemgc3x0MRZXmneV1RXHg2Upu/tQLB/96vfG5DPr\n60CJ/bmuoH7rMqV4pv9yxbn8xAsA/W2O0Pou3wqq8YFCaHCCtSfeDk57Vb8m\nr+dn6vZ3aB6E+/AmRCpV0vK9yxKg3sIcN1cnYK03m2Bvjb+1fI3U21KAs6HV\njJn0ga8rrHVvaM1SUMlb84uRLdXX6f22EdPqLHMV3fDGfmCQvBxOOnY9DyZo\nc9oqIJuGq+1vJA/G+2lgPqzDQMMeAzeIYDyn5R1Tlk6y55AfvGCc5QNrKqNy\n3W8rUnJyNjRjAyNjALqys3rmEyZQigrJYzwYgBHmtxScKE33kj3+c7mzFj1u\nXHSHk3nHhz9wd5fixxFjAjzvwwIXiJ70+EO9gi0yEZhEFA0n54WHy0pPZGTY\nvH+4VJSCz9GeZAR0rYbGiZtoKiL68GnpT/oCng9VsuO3i4m1L+j7/184ihcH\n7Ipd0e0QFiFfZWHsQGR7Tj1Ft8BysyT89fc5+OAFCIlIFbheSfyNnMuUuT6+\nCFU9\r\n=aOm5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBylXQAS3HtU4NedMmbHCHmtZ8OJChv/gNM5getM0qFAIgOt4qj3cl/xIUc5KWawS0g3AtnWRqEktwYRmtUUEK/84="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1575199621.4_1575199640639_0.7345961304342534"},"_hasShrinkwrap":false},"0.1.4-alpha.1575199758.5":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1575199758.5","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.5","@scalecube/cluster-browser":"^0.0.3-next.10","@scalecube/routers":"^0.0.3-alpha.1575199758.5+fbe4918","@scalecube/transport-browser":"^0.0.3-next.10","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-next.11","@scalecube/utils":"^0.0.3-next.10","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"fbe4918874ea32303c6484cbd039e7c69b100363","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1575199758.5","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-Q6OW3QIZTUyTHOG5b8qF9SIekhW3ANCinxPNpt+lb7MmYdnMB7h3rPEnXJe926Lc+DVGn8keaIXtnbWpw9D10A==","shasum":"8aa66ada268b0508510debc8e29d2eb0b2df7f36","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1575199758.5.tgz","fileCount":43,"unpackedSize":539246,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd46QkCRA9TVsSAnZWagAAE+IP/0WZPO5oEoa1+CrbRMiX\nBLStfvgzK1TX6sSLq8JUT79YcYozAobdhc7PoKJjm5NzLTT+FReclA6qY27N\nQEyQX9R+kJScgmGNamKDEe4RpFkDTCzD/SLFBpi8b6MF6plMV3qOO+F/V4yi\nhLqlzIiOPDfJqJt97SGDzRvbE6aw+xxZCe1up3ksxKbH/CJAk5fSYqoS25Vi\nPcMwtqC0L7i3FMqbafdUu7SeAaoIF85/kk/jr6a8b/DkxIcH0Zjv7Dy9HRD0\nuZka2Hht78BT1IsC+iKm7uO2731VSN2IFAKguoRrHL9BltM1YM0rqP4KLkm3\nv8bcuThpEzAQYyJRoWqCXMd/iIRaqd6sQ1liJ06jvxP/Xths5njTYLDsbiBt\nEFg+xnAQ6wz5dAJz706UU2lgOMKJqyAjGU5cMnmXvMOXzc3SFPAe8/kdcOJ4\nMXKXhMYZo38fjXIYTx4fqPJN/MLLXQUlWjJPbEWgcdt3zLMhJ55G+g7akigh\noQfoLZpOv6UM93fWO0f8kq0+l2ERJpnXrUNWJM0HG92Oj9QOfsRf9H32WWvy\n2KdhUQ6IVp/lFqAXlIMuxjoKLTRsQSYFxrLS5F8TMXFCXc8wU18aSvchkozh\naDUteJ1SVHH1O53+EmmkSilKdnxAP29E5Vb9uzVdZyjSIE+/w8ogNFweXRct\n7vnB\r\n=JZNd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICRkXR+nLKU66j1FySFdhJ4uN94WXuOF3q0X6weSElwyAiEA2EhsUongCd2a/rZrJOINyD228ZFrbg0vwvtl2BBqD2A="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1575199758.5_1575199780205_0.4831780277636113"},"_hasShrinkwrap":false},"0.1.4-next.16":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.16","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.5","@scalecube/cluster-browser":"^0.0.3-next.11","@scalecube/routers":"^0.0.3-next.12","@scalecube/transport-browser":"^0.0.3-next.11","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-next.12","@scalecube/utils":"^0.0.3-next.11","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"60ec4d4705534eff467b7b4cf8578a1c343e4358","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.16","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-CiaoWJqggWgJhKVK9WCi8hapCx8uo/siQqWBnvC3Rv1AYhWBYGuGsO1K7GUYMAzugnZodGY1538eeN+I2JQPLg==","shasum":"52a6ef5999fcdc297994e86a901b36ea411a415e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.16.tgz","fileCount":43,"unpackedSize":539208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd474tCRA9TVsSAnZWagAAgbIQAIHxtF2rrGD3gFEb8e2V\nSE3E3inSA8RvUQKA9fJbwxTuAGF9p7t34t56ztdRZ83aqunNCH/UfvUsp/XK\nezr3LETW05Rhb04a9CE7S34F2azMQ3R4iHESo9L7y2mRJFZ/SEDQouTo6bOq\nb9OUYM2KaloXdtTazheEZkpT4UU2wcc7RdotVzBDw3MSICd0hhZ8muVh+9H9\nUVA/g9dpPt/OfQJ4GG9NPbgsr9sqRq+joyIdkCTGJ5mdHEsbwdXurd/R3DiR\nEGvUQT1vGj4j7v36cD0DVtc2H8tAS0TVKOI3NZ2UcmO9k9LOPI4s4A0hA8Hb\nYg6EGCrXisIwDyRw0IIP9xo2m9fAvs72ZPR/YQXBqlsvt8/7TlIeDyfNR8Ho\nFTTQYhTguG00PKANvZJ25MHrurxCo/WDdjzsBoQhQl5wDGapF9IYVm6gsxxt\n0Bl4rnlETjQHkPMQNIgrLf2R9MI1I1Fvys7sXmzxQJHclboqwXRjKD20iFBL\nkLjxjlPE1dBgSNhCMklIvawCQ8rN3jt0E0rHoKyahrq3SR5u91R4iiuweros\n1+iVuxYZg62YrEhfj5b69fmg9zRN++Z0MF/JQbqKkYOV2nbQhuPqEURtnUG3\nDUCjb32Z0hR3Vdi1kQeASY64Uqu0lo/c2DIJ/jRlZPwQ42sbeg2QdkBbe3kF\npnh/\r\n=j5+F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/f/Z5rosfxQ94Zsa9yIvvgKzmFTdYCTGEoEU8i2kPIAIgQ0HUEUZ1Ri/yUjHlcHBWBPusJJ83Jvy6ibehXnc2RDQ="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.16_1575206445494_0.07442428236626775"},"_hasShrinkwrap":false},"0.1.4-alpha.1575298495.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1575298495.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.5","@scalecube/cluster-browser":"^0.0.3-alpha.1575298495.0+15b8129","@scalecube/routers":"^0.0.3-alpha.1575298495.0+15b8129","@scalecube/transport-browser":"^0.0.3-alpha.1575298495.0+15b8129","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1575298495.0+15b8129","@scalecube/utils":"^0.0.3-alpha.1575298495.0+15b8129","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"15b81295439292311bb830ca5a944c95f08f0e3b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1575298495.0","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-aISceBJ+e751PDKCySp0sQ/xwUsmY0Y5IiWIx8nKLz/sDLpddfSDFzjmaoRYh/SXbJBJtcofWhwizboQNEpbxw==","shasum":"e70b2a0678cd882029aea388d2489d442cef19a4","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1575298495.0.tgz","fileCount":43,"unpackedSize":490456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5SXSCRA9TVsSAnZWagAAv1UP/3woe91/abkxj69ly+4L\nxs2I7XvkdXXzs2gXkWN9RoqNl2Ya+MlubrssQia/TYeMfqE0M9vaOV692E04\nnJQWD1rwviSaVHllxpi+2umh22NEyiN9wEZemy/AYz5SCuy/RsnEXHWMjfZF\n4oeeqsRdRXJPyN4qkGn71rym3g4oUr2qykXv96zOPg2x5zBsKrv1DV2e7qq6\nGD94nuPtWWeEu9rboWj9WJu8JRA+Nf1NAogx38Ishxr6NjKlp0w7JOnCotO8\ncdFLIVINGmziv7Cs0uSp6W1ysZ4RQl17t6AFpYUO0humPhpmay1yanlaJqTc\nE+iieXiaYPIcTMaVvDFZA79xHV6gvNNBPWG//BfcNuhwsnpc66X15SnfsVij\n1nRk6o2xVvUXc6Q2AVEy8s4dOqizZ9K733QMcttKGl2DNr6r9lxrd5u3WAf6\nP/T5PP+OXzZlbzGwZjWmQPemloFvwrmLVpL3Vw7vcwDAOeZzYQrwAllsXwCB\nAl+pYWapAI6lviUChqC3ZoxJebsox6MoNQrMXll6JsIIQWkuFQMPkEJkRcMB\nEA5x/CfJqfrHrGwDtZnbNsOjoQZtE0jZiRYF9HWW0vegV+bq19YfvQ6wuNQ5\njwso3VWsQZX6IW1XBOWKS88mQFMrIy6IF7Op2hmRaykbD5kQh1E6M302zFn7\ngyvd\r\n=pJ3d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID6jR5ZJn5JfekNcjlUbruZdxRU/tBI9t9h9e/h/DfJeAiEAgxEn3MAZomJ94CUx8anFEDi8ByIoB0bcNQ4PyHX93iI="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1575298495.0_1575298513892_0.6652148555586743"},"_hasShrinkwrap":false},"0.1.4-alpha.1575301043.0":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1575301043.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.5","@scalecube/cluster-browser":"^0.0.3-alpha.1575301043.0+15b8129","@scalecube/routers":"^0.0.3-alpha.1575301043.0+15b8129","@scalecube/transport-browser":"^0.0.3-alpha.1575301043.0+15b8129","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1575301043.0+15b8129","@scalecube/utils":"^0.0.3-alpha.1575301043.0+15b8129","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"15b81295439292311bb830ca5a944c95f08f0e3b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1575301043.0","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-yx3l3ihOwZt1pLY9wWK+flmNIMLNkWwcOuF8eGFAywX36RjEDhEN7gjvpEvYJMi3FxjIkhphJdhvmI8U2rYlcw==","shasum":"df0a12fcb4c8184a342f792ad93d7539b53b84e3","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1575301043.0.tgz","fileCount":43,"unpackedSize":490456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5S/bCRA9TVsSAnZWagAAOlYP/j3R4gpZJxlEwtFRaw6e\n8zznS/ORKQG7rOte36jSZPdzpkKgcajIFvimj9keNGMaxo8nFCxE05o51/Jl\n0UiYzssn6txu7PfJyagWTmHlzuXeMT9OvN/DKIaJDiGiD8atqtw8Y+3FY/0q\n9NGWXL+yFAlnBfohEKrBtj5cp+2d8Dngoc+ehjCK+8oSDAvQwDBwfKrOrvHH\nawsmbVuqZd9h+9dnHqx8ckfYUaCVeWRbxKNrKCDLhiR9tYaOzUjk7rMGNWwA\nJrDWdkI79b2pPkJM6zLdSeJsGawlY4rzAP8fAg58HWxnTXyQkDu0ynw6HRYJ\nOSKkszpz+EJGMDMIVt14KcSFTNuSsLFE6oB32rippggC2lfh8E7RdClJ1nYN\nTsTaQIGz3p5ijM3+NdE9IGfnQdmaQdOjlp7SsGlAvkthCv67IWgvsx5bvIjp\ns/aJHIHRpWjHK1e4Ze9P8vVbSt0H2G5vzJlV0oWUCedIYblz2EkE+/ONh4oR\npeNo2zXk+s1Es2bWRzXrQ5V6eAnHwtXWt+GN14FrHY/W0SThF21hZfmGy1tw\nH6dhAs3r8/Idusu7fAHQ9AsxAwpnqFg2f4HSBa9RPoVQ39I8A+Vrfg7iqu8f\njuXQ4mFoe+1+NxSGYe6pIAsx362YnaCEh8lwx1CjGlaZEjwEf4eM7Sw6Eylp\n+gSW\r\n=gNk4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlp/TSzS0qqv54MEUkthUqyMy6m6BLUNRu/xFsqmhR3QIgYWCZxs+D/H9raYFMDgmxkZwZ2gZYdUbuf9TJZMS2cEY="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1575301043.0_1575301083035_0.44666843482002183"},"_hasShrinkwrap":false},"0.1.4-next.17":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.17","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","test-node-env":"jest --config jest.config-node.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.5","@scalecube/cluster-browser":"^0.0.3-next.12","@scalecube/routers":"^0.0.3-next.13","@scalecube/transport-browser":"^0.0.3-next.12","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-next.13","@scalecube/utils":"^0.0.3-next.12","rsocket-core":"^0.0.16","rsocket-flowable":"^0.0.14","rsocket-types":"^0.0.16","rxjs":"^6.4.0"},"gitHead":"6ff6040a07e4bbfc84859dc2d8dd20fd807ebd21","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.17","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-uKL/Dqu4GgIymiikv2On8+M3Y8F7n2E6llef1K+me2dvbYPzdrU5oy6+JTLun2eTKQHc4PPPzo69ZlXNf0IiWw==","shasum":"32434b5c82ed4a01119ac4847384cdf757b2994f","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.17.tgz","fileCount":43,"unpackedSize":490342,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5TNSCRA9TVsSAnZWagAAMwsQAKPFsJZQoMqU0SqM7RTM\ntH7efkLnI+ryQb6Slhh4p5Pe6faSSUotKfeDrwf7F/U8zSz99NvQkF/Vv8Im\n46MaacEOzF4/dF+iPMPlU8SVl2XCaggR8wXJLqUCWjA7aDA+lv43/fCX66g2\nzfHquAPQQG3C9TqIdTboynbjxTGz2B+qPw4PFHyMf6rAI2cQBtVeLuo8I/gR\nefiO/7il14luXwYzmqKAH9xxpCo/M3DYl4HkXNq5mIlfbX7g0asww5g7rZOX\no/50igB4gqCaMrl3xcNtsGMfeYOIz5cEFdZhdW34ZIMTpcguxDMtO4T8xOu0\nyYC5tJDGfq2as+ZQ40Kcl1tRKGT4ueCeWMgUcubGk0Rga36ek6DW90pCENZT\n+zBrflxCkcbBc6wLJVYnua1mUguMwKf2mrM1Z2qMV0oUL2tei9gEGG4Pje5R\nVySAJ7tmrPuhf2nSOuQ7Cc6gqBD91mQb5zXlT+M7AZtV+SNK8wSPlv8w8OuK\nOtLzI/yRN39ik0rUzrgwM/T3pz0R59vglgcYG5VBYMKAa5Zqt+o68DeURO7r\n5N56e8nYMe+V77HLhacdyMAfJg9QtTSYUsUr9CleAvzooRAaO/4EVQKZxuJ0\nUDYTlZrYTEjzuJBQ3bJFbUeY+jjIAcrtN62GRj/HUPm6eVgXYXs93+Z2LHMM\nBpEG\r\n=arlR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKN1LfiJ3gDqW0wb0L3g24B6XTTxUcAbYkmgqiTk47CQIhAJ5gwtC4m1N1VckmdAZFrHrhGwONCLhwl8bmagR69FHU"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.17_1575301970293_0.3667000577829702"},"_hasShrinkwrap":false},"0.1.4-alpha.1575394635.7":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1575394635.7","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.5","@scalecube/cluster-browser":"^0.0.3-alpha.1575394635.7+747e9eb","@scalecube/routers":"^0.0.3-alpha.1575394635.7+747e9eb","@scalecube/transport-browser":"^0.0.3-alpha.1575394635.7+747e9eb","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1575394635.7+747e9eb","@scalecube/utils":"^0.0.3-alpha.1575394635.7+747e9eb","rxjs":"^6.4.0"},"gitHead":"747e9ebf9f03bf208142ef2d8293a04cfeff7bac","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1575394635.7","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-QOO53NdRWpY04V7midGF6aNs844hJRQ2kSUTHTQvyNb2cooV1lxl+0JZoUCA/oRPTtjyc5dCm8Kx2kN5q+M2kQ==","shasum":"3dcf91dd801ce7635894ccb328fadb08ebae928d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1575394635.7.tgz","fileCount":39,"unpackedSize":172123,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5p1gCRA9TVsSAnZWagAAMVwP/0v+dA7USjlI06AbCbMY\n3N41Be3HULszLQQDFY8wVWGxJpdyhkZ1fMNXUt5g5NMavOKono4iFJTLL+Rl\nJcRX9ImTtl9PkxmSbLZEL5BHCyB8j+NmK5uUKFdOzw8dAY2aexekj0hEEX/0\njZXXR+3+G3091MRpRebpY2fto0norsBLTzjllBNUYxe8V5Ag8J0d+zBAhBKJ\nSHhUvCdMFFstcxC+4R0P1dcgzi3jOUWN0z4b6b3qbXVAl1dGU+hVRbr6cB4Y\npHBHOUqPVWINuiA9hKChL2U/ktoBow7gFJJVp1sCLak9C0q78tMY4PiL8v5l\n0XLEqJ5DjZO+nwi38SB5LXE++yuSFqqQBFz1++He15+QaX2EUXUW3K/1tbT2\nIWJ5Nexln3BaR5ACHCnaQy8wUEHDAgPFNAV7zvRyi8x3Lx2ynfSMU6cWt3Sz\ndAI0ccORfDl9meOuORDVvkwhb/WwjFFr5Tudof5KSMkqXXdW+BANd/ZyCw1T\ni/IBkglX70SIU85ojtOA8NCgdwtqbNZsatz+f7lOBdj2QoIHHE5FJgvpDKD0\ng8pMmKWBwe/EoYCQVYQ97Z3GN0SiF7++r0MW3y1CSXSV4aGTktkU87//Sftr\n2nR19YVltxZCBjDVGs70a/a8zgbq6XACcW3pC+Pvx987WzF1HX1w7i+rurfb\nlGHd\r\n=JMvy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDR6n1dkVQ3fEungbzpF4L+2+JWuzytku0DoViNMoad0wIhAKN9CnUvisB2MnXZISi2wn7orsLME25bRDJWtfUv3zek"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1575394635.7_1575394655895_0.42518111466823827"},"_hasShrinkwrap":false},"0.1.4-alpha.1575453788.8":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1575453788.8","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.5","@scalecube/cluster-browser":"^0.0.3-alpha.1575453788.8+1702009","@scalecube/routers":"^0.0.3-alpha.1575453788.8+1702009","@scalecube/transport-browser":"^0.0.3-alpha.1575453788.8+1702009","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1575453788.8+1702009","@scalecube/utils":"^0.0.3-alpha.1575453788.8+1702009","rxjs":"^6.4.0"},"gitHead":"1702009bb53e8fe4db29a6504baaa1eeece4e910","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1575453788.8","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-eqI3Bs8kxLNSJSaILsE5XiMTYuXxc86PrVjKT1jCMCGpy/Mf5zPVSJHXDFdWlix1UQLF3vo7oZ33GpGXfbC/6A==","shasum":"384e2209a8ac94935486fdd22474a711209170f1","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1575453788.8.tgz","fileCount":39,"unpackedSize":172123,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd54RxCRA9TVsSAnZWagAALv4P/A7JBV2TrVIcsKIRfpOA\nsqPbDsfYPOU7wnGfWEx2PW2Gzm+uO6DuG3bZw5cBJtCjhSsjPSsNtCEhkoIF\nSHuMlTW6Lifi3ctvSF+y3zpQUxwQTIkq8Q+rgBqRXTHUuP6HBXNPy0j7OjYQ\nJkQErYY5Y+VmUCtdpgheSS4pA42vq3GnmYt4tmt09QQsgY7LuDDLYKAXdwgI\n/Nims/uT9/PwlKtMK7vz+ZYwpzJy1u7mMSKGQgWHjpoY8ji0QN1CgOarhxuI\nOmzDx5tnc8vEMhnLJ1wh7l4bRolzTS45FHQsbxxeY74sqyJRJmzreflmfV1n\nfIMqVLJFrfi7JQfNEZZNxvOuxxggdw4aT6tx/D8Mtojqxl+RJrkJ8JXWgYGH\nogdDZDgdYxNsfIDHl0MzT9HuzY3xu/qFHt81iOvRdgZmypvAP/OqS6baDB5g\n8w/iRa42b/r+8VirHFkYl7snJMhFW84PEfP/Oep1CLnezymd0CtFpZwdHakp\nQOwBj7C+HlnvOJdy5iuoGptvgVUbhrZFiE/h2agJLXmvcRZ9+n2ksTR18Sn4\ngvqzGfcMwvMiYmZOEFdEgKOUTx7Wkg2Kyb8qcM6D/jfegwEMwCKc0SxZ0Ycq\nXFjeHqE/jgwb53eFGk6TqW/x1j2qP2gsuxNGj9vdftJ3NUJnsrn6mLuMdw/i\nLc8N\r\n=BClm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHElqALztNbU4RDPGIP8wbTmAmrVhcXw1edlfI4tBjheAiEAqTmlMztkmLpIOQBRzLtMjVfuMzkIeDwx7Fhp1RBBb3s="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1575453788.8_1575453808994_0.3065087045726771"},"_hasShrinkwrap":false},"0.1.4-alpha.1575545818.9":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1575545818.9","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-alpha.1575545818.9+0786142","@scalecube/cluster-browser":"^0.0.3-alpha.1575545818.9+0786142","@scalecube/routers":"^0.0.3-alpha.1575545818.9+0786142","@scalecube/transport-browser":"^0.0.3-alpha.1575545818.9+0786142","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1575545818.9+0786142","@scalecube/utils":"^0.0.3-alpha.1575545818.9+0786142","rxjs":"^6.4.0"},"gitHead":"0786142ad6ec8db56d1bb8f784ee5cd7db73f367","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1575545818.9","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-GzSU1C9jhxcX32itODgtgWzO4v6+jEvCzwkalbGwF0fx5wYXMgV4BTkU9CH8qN42mfFwYZgzk8UpuyMW4gnNHg==","shasum":"a33e55c86ff77f6ba729d409eaf1206e3568489e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1575545818.9.tgz","fileCount":39,"unpackedSize":172143,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6OvyCRA9TVsSAnZWagAAwe4P/jQ0qndIQylhchIJDNZH\nn0vkH3SKUPwRDgmkCAbyjuLbNPvpQGpvplulnrPu5+KP2ecKilWdjWDQTe4r\n/8ey3J88Fqx5CAmbZrFi300HJf+qKMamIbrOI+kYmpOXJm7kyIRzJs6e2sd3\n6Z8/e8/X/D0+bq1nccLdZ6l2HiehFjVAHBQda8mgYYweg+Y9bZpQqOmZBMVY\n7FE2y8m136T+NBFgrC9q8JWPvBM/rfatZxkgLNfRjax+/camBFT3LNpaRsTJ\n/3LOP5rDCM7ddGC5o743Js3eyUwYPri5PURnc8XnkZ7ihE1C6aTwVIiTGd51\nJD+zc5iLWurZGn8I+rdRQcePbOAs3Z/Y80KDrya+U2EcrJ39RoC9gKouH+Ga\n+BXxCP3IDDxlVz5RoCEnE4/E6b8ZTk24bfgOx+ZSOM9HRKfPveRrY+vMg1iy\nsrQa5YwFqiHu4DB3b8DlwYMSnv0TRW/37mlNRJb4gU05QQSpI79WoTvHvMdX\nkVo31JgPkVhnU9JRdgGHYpGq3BcV+RPQeK9Dw9vrY0QppQEEOF0ZN55gKVOQ\nTdXYIR3puTtEBWwnZrJJ+7ETaNpIXXuWiOOXbenDjg8xJjR92h1Xghs0d0xJ\nsDk4VLuRqYtPHm5bdWG/UaXACULFWI+QMV+7/5B83vjuU0Xr+/v44UMr+GsM\nQBFy\r\n=jvbj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG8TjXqr8nnqLoHqsGcc7lTnbw9HF6Oc2cWx/1zVxqqyAiEA5jb+iufDU11XH+A7nB9dkm4HT0F0tGnBZMr2TBS5Sao="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1575545818.9_1575545842293_0.9181862232450015"},"_hasShrinkwrap":false},"0.1.4-next.18":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.18","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.6","@scalecube/cluster-browser":"^0.0.3-next.13","@scalecube/routers":"^0.0.3-next.14","@scalecube/transport-browser":"^0.0.3-next.13","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-next.14","@scalecube/utils":"^0.0.3-next.13","rxjs":"^6.4.0"},"gitHead":"4d2c2e645795fb5568cb3c47156320ad718ed2da","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.18","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-AHQZDGmT22E2gaVtP/mW8OIToaOgq42uJPxJDHI4r4eTyy4EH8AAEvKU6Iny5KLRdYqV4Ygvlh5p2GfsYnK17Q==","shasum":"650b0176de68ca091713399cf37b97aa26e56e79","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.18.tgz","fileCount":39,"unpackedSize":172009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6PONCRA9TVsSAnZWagAAii0P/ixCzsi/gQF4bA2Dv0uD\nAklRDC27LmDPEs2Ex10Y7hO0vzJNaiRz5n8/D/X5TvM+Esw9FL6bzqQTso9K\ndWadIJOsvfi1FYm4uyPIe4qGmIxqQ/9D+pXKOjqIPCzMd90ixaWgLcGlFZzI\nPrOteX5nXJdGyJVTzxEjNpxuIXZ3OwIWl0zz3KUjO3+q5g++oZ4ZVVjxb3yZ\n6g/hRYe/Vt/hXGOc3UFfintO/lH7GUfkqIZMhX63Pb1ctbzOapmGBbvDUf5y\nL92IPumq1YLiQst82zcp3DhOfD/0rZK6xgcFtAwNZCL0QBYtmfu2umRsO27r\ndNtuwraC4r8AJ38rz9MM1YsosELUAZtUbFpgOcQt2R56aQPE1a5pwpxfrJV9\nQ5+8c27009jXhS9n+kjgEJqSLv5CplhxxMSADgZKsOFgUBtcZPFmFCht4eiV\nxtVc4zWyIVIE1A77pHRJOUMYC2sMY09ZP3Qt0TVS7+2Rgz8Fi9f7TySL0JSA\nNueaszy9E4uS8h0p+yIIpKXtZ+0l6dQffT8uy/nKqomkc/M0BwtBEOge/iwK\nBE2LCx2H0ndByL3wj0PXwNHv1Q5R/vfiX8N5AD8brQZifOqNYIyNCOexw3qH\ncmcMCYrxM8cHw5W/7VEljbUDtbjQsHO2X3rp8WjdHcSYVISJ2ig1LPgvbHff\nIr4B\r\n=xuRw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFw64UQGT+lts2+yp1K21bp7rJ1mCWG55PO4++Ml64bgIgDfDayu+cwV+bz0SIxhwTgd7pjjzQTN+Ar3Mm1sP7rsk="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.18_1575547789259_0.22184124570877395"},"_hasShrinkwrap":false},"0.1.4-alpha.1581835731.2":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1581835731.2","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.6","@scalecube/cluster-browser":"^0.0.3-alpha.1581835731.2+84144a1","@scalecube/routers":"^0.0.3-alpha.1581835731.2+84144a1","@scalecube/transport-browser":"^0.0.3-alpha.1581835731.2+84144a1","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1581835731.2+84144a1","@scalecube/utils":"^0.0.3-alpha.1581835731.2+84144a1","rxjs":"^6.4.0"},"gitHead":"84144a1416396e8fa3a0980edcd9a8a06e5e38e2","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1581835731.2","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.19.0/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-SXK4Dfz1vwn0dNf4oLb7fFQn2QRzyQeHHb652htKRYMOA4aUj++oXl3JKbp++mNCmqvBIdKpjPGeunP812laZA==","shasum":"204a50089ada8e0e2db48cceb97d8e38c1e5bfd6","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1581835731.2.tgz","fileCount":39,"unpackedSize":173441,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSOXpCRA9TVsSAnZWagAAEqUQAIeVoo2vdQOWF+hOAWp8\n9xXu8fOGNfQ3nvs/RcaMWmGjOcFqcwoJGyFT1kAIluTSGZAGZgrIDctGfTj7\nIlaLedtdwK6i3wj+oOUJ5oKWjj7u2o0q/y7kyKt9V3yfy0bjpcaWmZQ40OXw\nPpUTQbD8ciMvP7GETCfJHHJaxIhM/gLkx7DMSHdHZcdFlj/lczRxCUb5akTx\n7jy+/eK6locm/SmrxX/FlR+Sazp8/NjdfA4vHQBZ3GEvlFfx1LV478IFysnJ\n8vKYHkhyhl99pJ5tMK0Y0tAtecAdMrEy0H7o2CgXLxJUwNO8pQ2O/kEux9ou\nnMtGwZIuxTH/pqoXz9+mQp3VNTZ6yWHu9HUZ4ZxOttIbUpgKtZ9pV2f6Tv7v\n/Blp6k8hQDVvPTVKZKWEYb2Fqh8qMVG0PjHRuaZxmYudWUKAvhkBv23/iQR3\nIm3s05mWOLaXSbo6Rd3KZY+p36Zve4hotkj2JKuDMzMBWI5A5qYduYfNMv5N\nF9X1SWfIidEdc/a4imvardC4Nf8rwEvRvgt85xFJKiYBghsNYEWPRCaRN55Z\n1IJ1diJOAcyFEzO0vWbqwoFVR9acewOGX4CY1jzyWvFGc1w2HggFkPhUtMIw\ntPwPDiy64z3HqUv3NCYSAK6HuYZyKtgChxfu8KBDdCGNcEJrXt3WI8RyGBu8\nopxo\r\n=jas1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8GIy5xKEmrGZloxIenhkFdrIXx+dusewB3Lp71S/hiQIhAIS082N9RBQLmm8L89cdCcF0TdaDb3vwIA5sIY4CM+LM"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1581835731.2_1581835752827_0.7486088761220635"},"_hasShrinkwrap":false},"0.1.4-alpha.1581836145.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1581836145.3","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.6","@scalecube/cluster-browser":"^0.0.3-alpha.1581836145.3+3f62c82","@scalecube/routers":"^0.0.3-next.14","@scalecube/transport-browser":"^0.0.3-next.13","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1581836145.3+3f62c82","@scalecube/utils":"^0.0.3-next.13","rxjs":"^6.4.0"},"gitHead":"3f62c8293fcb6b8b72eb7f880c74a70464246ac9","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1581836145.3","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.19.0/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-yYnAEf9zCJfdiY7sxW3MSYjHwLJ0oK9D25kxljiuNrlVUlHJlbrfcJUeft/pRm8djFFXEtDSZOhMnsC2aVf/bw==","shasum":"0661d7c9df03cd7720b4ec153c1ebe0b3740080b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1581836145.3.tgz","fileCount":39,"unpackedSize":173384,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSOd7CRA9TVsSAnZWagAA+EMP/ilTAR4XWMiQRgwYhvRS\nVtW4HxkqUNScWvqtHVzxt4PtpueuW9/skvuCGaiYMcl9TXzmVu3JcX2FUY4E\n+yCZowg9nDNWk2ttF7K4dEKDtEG92eCbtNp+IC/DOVRVh0REmnuzKw9jr53E\nCn7WnCgClNwxR5rcWaUqDeJOWZ/ifYemaydM6BN0rL91pS6PK+wqmIbelrRR\nqu3kWqUbkbZ9/OuGfL0PuGowsb+7b1vgeC0CKOv++nKdmMSSafx53wv7FavW\nlBW9ynrqJeAiBIVhlXhz8GOPjnD+m2A5MOpXWGXIjPDN6GyeM/e+BTYWMrea\nqNGqiwM2Sp/4yzOd4ghYkm0N+tkYvvaxDnn8CGGrWe6CCnLCs1aA4FnuoRei\nzUC2uX8ZpKPICw4/cu5DS5J1jFgaSBWKavgMFf4bOCmhLdWWML6GbT7ekG/w\nNMIB3FP6yVdlz6JffGgLfI2h7cS2qEa2B4Rybsr+IzWDbpjpI26uCDk6BpGb\n9N/4ccRmMMrdm9td4lGqmOCw+OpYbYk4WgTdmhn4XVEPJtC/YWuYZatc0hSZ\nbYDVeM+mScrTCmrinLEFbSEglRHHtr381OFnqORHgcCr7w83U+cM9nbtKVEO\nHYJ3B+fBxANbd/sj2hK99eOSdDhNMoi1+spuqFfuijMvqQEpiKCUC83W8ika\nG6tG\r\n=8EDo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZi7QhjMTKqpbgFecI9FhnZ8X68Nb0a5VhjzC/Anb7nQIgRh7zvag5v89+ddl07HGHPlC5BcSNv/B16J6bv2VmNxI="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1581836145.3_1581836154969_0.08158268986909456"},"_hasShrinkwrap":false},"0.1.4-alpha.1581923193.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1581923193.4","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.6","@scalecube/cluster-browser":"^0.0.3-alpha.1581923193.4+014f33c","@scalecube/routers":"^0.0.3-alpha.1581923193.4+014f33c","@scalecube/transport-browser":"^0.0.3-alpha.1581923193.4+014f33c","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1581923193.4+014f33c","@scalecube/utils":"^0.0.3-alpha.1581923193.4+014f33c","rxjs":"^6.4.0"},"gitHead":"014f33c3a6fe684d3f87f2c3ca8882ad1d56f222","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1581923193.4","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.19.0/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-j8Uqmqw0Ake3HONbWuUE/T9t5lgoGtYg6CQ/GxmiwFYTINSY3QI+wRMutUwfa9WphG0hmv+cz2YPl2i48qTlYA==","shasum":"2158291e287038f858cd1c830a2442a9d6a580ea","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1581923193.4.tgz","fileCount":39,"unpackedSize":173767,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSjuTCRA9TVsSAnZWagAA6REP/jOqWA96ugRkNDd4XDsl\nqMs/TYQCzPXbU/7vCCoT44Of4ooRMuzxOKzfSGZGqgx6TYxAJKhzE9QSlWC2\nX0PjiG//uVgH+RqdDqGVga8LWZbq9JzOwW5uH7XLXawUYVM4/2UA5BHFuGof\nZ/JZseIEdTvR9qKkg1Xa80yGOCWEWeGClQNiqjDiahil1+lNNvb3OD8krvUQ\n8wg36W5iQcuu56Rh4IZHRCd5mr9U78xZFuCUHSTuaC2s7aLtjD+c5pwIE3AR\nq3b0JlamXhONMyselM2Ygq6OmBxH/c3ZCdyHpZ0kBGIZxBuBo79Xo2ZeV9SV\n4pcCp6QzeHcpXgLvUj2sNNGK7yIxamqenCRoTQltXtn03PAjFar/hlPUniOH\nZ6gppimdD1PgbmwcLPU/bmKoNtWjTKpP0ULo0SNtk6vvv0zQgCmaCZfEENvQ\ns/Fhz+udKWyl690R2QHxzDo7pChbxMXp6St/FUhXvwOOLc7RVgw0/n+AfynI\njNhrp8fgIe0sDpmWNSMLvdpzq96cbFauT0TqbQ7fG02HqOpKgjyx4U9fi/6R\nOak5zKL7S0rbPAn0HACx/cg/4Z+VwTUJR3exPU/762Im9gX2PYqJyNeTx6x7\nEn0WVNfUQjol1a6CTjVtqqqm4EgNx+0GFyVxxVfV/Fm/R2QvCpHP8D9m5vAt\nWqk+\r\n=Jlwe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID+yS3zWvEBS+8KmVEFTU5J/a9+UuNDonimiE92T9VHIAiA+AoQzRP3G8el99YVRcN7Xin8ui8cH6fhPzrBNQPL7sw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1581923193.4_1581923219325_0.6476724345596006"},"_hasShrinkwrap":false},"0.1.4-next.19":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.19","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.6","@scalecube/cluster-browser":"^0.0.3-next.14","@scalecube/routers":"^0.0.3-next.15","@scalecube/transport-browser":"^0.0.3-next.14","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-next.15","@scalecube/utils":"^0.0.3-next.14","rxjs":"^6.4.0"},"gitHead":"e56de97b898346124ef55b18d234716f4272b0c5","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.19","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.19.0/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-aLjylSaZHorC6983L9Q804ZbeKI4g0wGujbJvJYk9W2yR7uxGMvU3ce/MzPI8qme+G2Ti3whAHK2g4D1F20DvA==","shasum":"0a2a2219ad0c0821cd1e22f7abbf6ce1af8ad61a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.19.tgz","fileCount":39,"unpackedSize":173653,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJebg+tCRA9TVsSAnZWagAA1dEP+wR+zJ//WVVXgH9z1ROC\nXjo9SXxHn2U/l1Z8RLBW0y1Q4vY5JSQU8L0iwGBzRoA6JxKC9jvcSMuhkDdu\nhk04z76lAEGqySbqNVr2x3mpmtNxe+zEoP0Bhb/fOZenTzF10JJsxjq33uxo\nXCGVuHitxqNcgwBCock+f/V9bpY3po8369mgdRvZYdHxdIIVJJ1YQjlubilt\n3WypYq6s/s7i9LB2Oe9p0SqHY7RAMhrrnPAiDPJQwvl/clrz5ZK6eZRLzioG\nTCAFelAjovaNR6wa748jQuvfqU5J0pT74NEEjF8NlHWfEhct/uv8ogN+y0A8\nbUBrLdsdG4eeouwKfaLl1ybW8HUGCgugi2a0u46JNp75/xFiZOjbf3VFXfzk\nCCR95nIlHMH1MQXK+gCdIPjB1gd9+Gnvo10wSRSBvcmvbIUC3Gl22yd6T3Kw\nRLPtf0gLbUrlMv+mVUE6RBfoKjOLk7GF7auoCm8GdeKVEQBjd7znE/eHNM+4\nnxmN31hAXDxu+uJ9+LKpAWPs+/ZG0wx7gpyjUxMat6J8YEfX/BjpzhzVoEO+\ndEERd2TLvPsdfRuM5U2vBVJ2PJ4qzTZoVvpkW+ZpYwMuErblqFA/hQw6CbKI\nk+ISHDIUHm7Vq3qAr5txeBpfxGcv0RtoSVmwXDPbAJo20ORqJRXG03SKrfQW\nN6lJ\r\n=JtF4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9IITFT88lQWpo9qYXFWTFarZVO6HYcuuzyS3sp/ACAAIgJE2rBUaw8yilkWf8nFylAZ/Dnor9rROZxr4FSKLCKjk="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.19_1584271276907_0.09261345951692834"},"_hasShrinkwrap":false},"0.1.4-alpha.1584274445.3":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1584274445.3","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.6","@scalecube/cluster-browser":"^0.0.3-alpha.1584274445.3+b139a3a","@scalecube/routers":"^0.0.3-alpha.1584274445.3+b139a3a","@scalecube/transport-browser":"^0.0.3-alpha.1584274445.3+b139a3a","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1584274445.3+b139a3a","@scalecube/utils":"^0.0.3-alpha.1584274445.3+b139a3a","rxjs":"^6.4.0"},"gitHead":"b139a3a4de0f9d01011071d9d54c63441c07851a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> **NOTICE** versions 0.0.x are experimental without LTS or the API and behavior might change from patch to patch\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1584274445.3","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.19.0/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-RFIUhdniWo9MZC6WeCqdA7ZqUpAJJ9Ks7iqctFYWD8OR3DH7BuuGUQz9V7qGPPTAAfbOd7+/f3Lg8xlyv8yZnQ==","shasum":"e41f2f6303ff8e2e3b2319fcc50e5f56d064f4cc","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1584274445.3.tgz","fileCount":39,"unpackedSize":173767,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJebhwiCRA9TVsSAnZWagAAGAsQAIatvL++xBwaHZ9CeHS+\nhZbzfyj2D1GphxEyERUAEfwC3Due0tgssCAVfLXR2JnG0/DNqIge1WgM2UiJ\nf6UMROu9A9t7aZSHn5kr+CzT4YVoEJ6byqYX/TxJyXS+Bs/rqQjhWfNJBbz/\nnDyMVIFpLBpiN+zPWu+2Z3F4YP7nLtbxUIKuJc4ubSuZ259cVa97f7KkaL7L\nf7ikFH0koubvR7fhpWE/Ni1xB32XHQyWPFVTulcuQpKt2IOVSIhk8hi6sVMg\nyf5LcK151tAectqB74aW0pCpfc0UJwlK41Nwe9Am/6DiSfbGvKgLWS9Ly0nD\nc8zAskVYQh2j6ZEZNBei04Snbfg6Yt9aFZGO6xMRySfjir47ayJtkPHFeSs/\n5/ZT6VYfviVGnQwkdVOP1J8gv+2clWyGDB7v1UqZzgMnFRedKlG2LfKkLfyw\nhmhKxiEtQEJCCoe6cL1lQNBNZDid/2LqOep3EMmu6NFGPIL+H/5wpQ9osc70\n55J6prMLF5Q/RGotgAQZEihGOGSfMMGxmUHZoXEjKDOTb27Zlc+frXoAuWnn\navc3vWQvpw3EvkUL1gf2gykuYT3QTh2wMKYBfK+QjnTnq0fk+zXI4nT1AP0z\nQw8gkrKp6uGGWFhr2nmz3QsiIFw7VMm35P6KVBwYO9yfe7Wr7XkZXrqvoRAt\nvLgq\r\n=EMwc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPbvcFslecQ6A4a8tFCPu94vTcO6UEKkRWJTVil8VvowIgdjvFPSW0Iv5wlTCIehGRC+xNapzXhCaeGP7nJI1ZPbE="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1584274445.3_1584274465655_0.5095979366844496"},"_hasShrinkwrap":false},"0.1.4-alpha.1589393845.4":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1589393845.4","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-alpha.1589393845.8+b5ad44b","@scalecube/cluster-browser":"^0.0.3-alpha.1589393845.4+b5ad44b","@scalecube/routers":"^0.0.3-alpha.1589393845.4+b5ad44b","@scalecube/transport-browser":"^0.0.3-alpha.1589393845.4+b5ad44b","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1589393845.4+b5ad44b","@scalecube/utils":"^0.0.3-alpha.1589393845.4+b5ad44b","rxjs":"^6.4.0"},"gitHead":"b5ad44b618612ec2620e882e015ead27b57a7e9d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1589393845.4","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.19.0/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-Gheek8gmkODAxFcBq+QNjxXnNKlJIKDunvh09WBpE2Jw5/GQ0N7cIqpHQRXiXayYrUHSzpATk3mzsEwtD2SIPQ==","shasum":"bd5a53cffe5ac6af2518f62ef5e3ac516fb7ad7b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1589393845.4.tgz","fileCount":39,"unpackedSize":176333,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevDnOCRA9TVsSAnZWagAAd0UQAJGCPoc6T1BH2kz2INrZ\nCLbYeP5SHTuHZiikNvyXLWTw6o65lORulJz40EszV3uLwHe59enqoB/SOQtV\n8yZn7cZh8t/gXs7tKuVxj77hNrqy6agqM9QHePx9u6+em3Pb/IgsQh/0Knz3\nYBOQ9ISFf//R0zO5m1a94XCoxs5ZK8MrAFsssm9nLoGXUP4qSB/eoA29fzGS\nTC938WUxCvXjVjlQCKCGG9Z900hoeQ/7cpXfI0zVneH/COJqCz2B3g+YF/7O\nk9U8htxga7md00gObwJpwNKMz3SnylxdRam0fe/JrG3TCDiQYhLYnzlvEG6o\nSqbwh2KgAtnqY6aAhn89XPcURiaEfILqTueP/mhBlYvClU8nm7uZAxOmn10d\n383BblOoUFaGP41d2o/E/Fsxg/KfTRwnhO8AG/PZNjn3QqWyN95faiq7+NvC\noIfAnbCix0+oEr9IklCdSb8sWO/f4rwDHezMNjeLvJkm4u7t1IK/z6/Ct4N/\nBGDH0rHwPfdofT398OZ+W5h9vsXG2/LyO8MTU4QLD4ep+q6rP+6MrBZdhniS\ne06MiPz5ATEPB1K2Fx7krdiNYAibhXhx6CpN983mAA71JCQ2Pzhl6TY3cFko\nGKXnFqSk8nimmTXlYuj24xEkWSqW/pJB15g2DBH6jUNb687A8bB9hpTEcxHK\n0pvI\r\n=eNY2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHLh2nX1jXnwX1XcRrDNZACDyPwu5jqM3zELKcZuwbV1AiEAkfzUMGkGCXWTLzjE7CdUiDlnS6qeFASs08tRBGRQt6w="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1589393845.4_1589393870429_0.9109895833384438"},"_hasShrinkwrap":false},"0.1.4-next.20":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-next.20","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-next.7","@scalecube/cluster-browser":"^0.0.3-next.15","@scalecube/routers":"^0.0.3-next.16","@scalecube/transport-browser":"^0.0.3-next.15","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-next.16","@scalecube/utils":"^0.0.3-next.15","rxjs":"^6.4.0"},"gitHead":"799942fb4fafd3a61d3f9dec5afb62f1bb29cdef","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-next.20","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.19.0/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-U5VZr/yEjcmY1NSSpIEKU8GtAim0hdnpD1V5ck+K7uRsX+J7z4nw8snHVe8EuPik1nzkNT7sUINxlVIOagR33Q==","shasum":"bae46322c567a8374234fc2aa3197a5c649cffe0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-next.20.tgz","fileCount":39,"unpackedSize":176199,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevVENCRA9TVsSAnZWagAAFv0P/2WDQS3XyZ+1RsgAB9AC\nBnors4h5Idd4CSsMcl5f0hV9iyO6pldHEIbVIsVJ4LSLYOgeNgMPiNmbUVPW\n1N8PYRO1crQwaVPDo1IfVfmq8md/eij2IgDnS9sitIkv8HafmlKNi0L92tsg\nng0YauZfukBJsy1iDpBzYt7LmgpkngaftWipADebIZQIwx8FSap9a14mH8lD\nD0glSXegpY8s7aj+1HNGDA6+hpyU7oolVTte2H0bePlHwzAxigy+v5PzxYjs\n6Zk3hFxa4auSvaP5XjPnec+NwhnCA1dnu04DD/lBHznKfBw8jgFlapPbERGN\nq0Wx7EnqyZ0lPYi+fg7Qn5m4B5nmuCD/O72SIv8j2+T9HIr0MtpU6uRjNCvT\nZSkyaj+qclWUWqx7yWQ6XMRLJxMYvJ2LpJceGypi91fAjEr2qU2no54dZQqQ\n9OZ7lI97+DIYuNLO/bZgwrpiQJiWx7JiKvxVpdx5QqltYZ0wmPfdJJdHTnXM\nhiikzo4zWEgcRl0xJCMvLfWI2n1A57LD/BG2jO6zO6zDWMqtsq5dsJFyMu6P\nuymhMp5VTSBGHiPTPWjjvNN0pZMGTXui8IuKSp18/yAjtXK2tcrp+pNKL981\n5gtvRgwL6SojwiwbaDJQJaAl3A1ETR+6GzW9EimzxxUJb3hCvZ0zVFynNpkW\nyk9L\r\n=+nvm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEzVuaw5zujmustNzp6Zeq8Hfu03Guvtcgc/mysZwNsPAiB0BKQ9ciOiP1jykX514G06TcAusagAnipdLJ4C8RCBPw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-next.20_1589465356667_0.1651375139280733"},"_hasShrinkwrap":false},"0.1.4-alpha.1589712586.31":{"name":"@scalecube/scalecube-microservice","version":"0.1.4-alpha.1589712586.31","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.3-alpha.1589712586.35+bb37f59","@scalecube/cluster-browser":"^0.0.3-alpha.1589712586.31+bb37f59","@scalecube/routers":"^0.0.3-alpha.1589712586.31+bb37f59","@scalecube/transport-browser":"^0.0.3-alpha.1589712586.31+bb37f59","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.1.2-alpha.1589712586.31+bb37f59","@scalecube/utils":"^0.0.3-alpha.1589712586.31+bb37f59","rxjs":"^6.4.0"},"gitHead":"bb37f595c9c70f351bdcf031225e74514b7d03da","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.1.4-alpha.1589712586.31","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.19.0/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-7NitaN+e1UAFIDBENctYkn3pLFy2ZilLWxwtaFv0Tv9JwUkw7gqAQgETFs9iXgIow6/UR46bOhRuPb/OPGkRSg==","shasum":"9d916e8fbd7d632301de9a0be747d976cc10a9b6","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.1.4-alpha.1589712586.31.tgz","fileCount":39,"unpackedSize":176340,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewRbiCRA9TVsSAnZWagAAwQMP/RmqqDxZntYPe5BC8ma3\nCw0Lf5QEZt0sP9YknUdY+abuNVAg+C1NXFxt/V7rJfdvTokiZBCwix6cn5A7\nbcDEdyBTipu6/llqdoJPJfQt0fZ+7K9k9pyiy2dMRg3QPYWPOpfIbmVL+9z4\nZuxZ2X55JC7GndTDiIPgdHcDUL+w9Ap+PKdU4S04/oXSIlhen7I+f5glFh2H\nWeSe4TDHSSH9uQUWhpakVjVY/AU0t/BiJQRAiCw8bEocOvxuhmyiPXCWF8+y\ngu96hWSzdHoUcAHCT7UwufEuBRIUXOsKJDN/XlV3nzXYYe7bGafS/mW8iwFB\nDWNSr61w61CYVZ8BT3lgNFj+Pk5D7bzfrZofhjxJWt/FVJN8OA4L7wx0X7mM\nkHRANxLC+bFV2UBh34m2SqMShfruUD3lLAdrFmgcoHOELdNcM+yfzf8bG8Fc\nQBbl0ba6/9U8NgRsAsVuRDCG840kJcPliwupi4rPBspyvQ/jlpgrc2M/E+Ra\nlOY38poAfqQjbPsIDNA1TC3G3tVB9aUw5eELXXkPVJgj1i2SU/yzDaUDC2k0\nDQf1JIiXMLmcas4M6+mY/RfKdA5iSKrbAYimMsec2lVbjXBx6xi+vlpXRqdi\nX2HLCBYrWQWbAECgThJRDPIdiQcX7ZyTBqXmNU4RdWrntxOCywKcwAPfMFOo\nIida\r\n=H1B4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXvnnmujt28FrLb5jQ6EdjVr7tqLCj1YeFTDVcQ2783gIgYq0cC1L9LqkoYzcb11AWsH1X3rZtln2qHxmA3FfOtMI="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.1.4-alpha.1589712586.31_1589712609817_0.9745307558010383"},"_hasShrinkwrap":false},"0.0.1-develop.1590946426.0":{"name":"@scalecube/scalecube-microservice","version":"0.0.1-develop.1590946426.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1-develop.1590946426.0","@scalecube/cluster-browser":"^0.0.1-develop.1590946426.0","@scalecube/routers":"^0.0.1-develop.1590946426.0","@scalecube/transport-browser":"^0.0.1-develop.1590946426.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.1-develop.1590946426.0","@scalecube/utils":"^0.0.1-develop.1590946426.0","rxjs":"^6.4.0"},"gitHead":"eeb4efe4866f36ccdada69019010601d8a02f807","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.1-develop.1590946426.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.19.0/node@v12.16.3+x64 (linux)","dist":{"integrity":"sha512-Vf92BPwTK3rKq1St2jaypqxkgZMCoAGdRq7VCNv+saBKT/mMNt5zglrWSkD4G/7udTVRmG1KTrejodKLH82Llg==","shasum":"8a1321ac623eb9380b91e244e514e453b2895202","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.1-develop.1590946426.0.tgz","fileCount":39,"unpackedSize":176291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0+qOCRA9TVsSAnZWagAApmMP/1FYnz2kZUVu01mSyKyy\nxZ1ehTXGR3qyxq8zw3cRyOrZ8LBkEK2L/UP5hW+RH9lwjpC0/v+HUXMxe66f\nhUP9wYVSzt/ufM7DR31KdaUV/Venvskocbh+UidilZGnLfp2QVYcKJkFIrjP\nArgO0/FLt/2R97p0LqJpc3E9v2sh2AzsVd9e05P6ZPW5AJ3yPxhKwbWBJIve\nV8rO/iOr+lEO6H8+91useZg/bjAoOQo0KeZdlQaN1nAQGTI9TQTZNkbdv5Dh\nzuD0YOOk5K+uJHIajR8Hg5s4EccqRhug1FgFWjVwQ7cd60dAlBswkKR+FcXj\njMUxAPDeYoAF3tE2tYB2bC4gi5aajTfZpgAbmDRkGyrTLSBERDrWOadXZNwr\nFjnEsJzSzodzg0kgEo10HBM9lSZ6QlukWGrfPoEN36yxqTsmwv1+ob9i2apG\ndq86YdBUyi9e1Qmdsppwe2InVs5ImN3sQ0RbVtQBx+pdcsSI7sQJ5PnkHVKj\nj6wgrKN6+9WRsrkoupGskA4c+H6oKvDhxRpcoprqbJ2FFTc8dq6iMnKZIvFT\njhCBdeB2Md1aynYDww3n3gsmz+OFO/JL+bLJeG2DLnh1bPT9U3q5zq1kifc6\n8+C4Q0tFZKWA+QQyEUpL1kCOcR5cPZooq/WGFyGwHbGXb8R8rWmpww3jFMOg\n1fc9\r\n=sFQg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSmjyaJ/rF2dntyyFwnMHl+xsy6+zhnOQoYD1YgMKxrwIgBpvs2JVO8A/pCzXOWWbDN4ugV4QrjFXhor0w9nCmKHU="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.1-develop.1590946426.0_1590946446215_0.9966048042026658"},"_hasShrinkwrap":false},"0.0.1-develop.1591043991.0":{"name":"@scalecube/scalecube-microservice","version":"0.0.1-develop.1591043991.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1-develop.1591043991.0","@scalecube/cluster-browser":"^0.0.1-develop.1591043991.0","@scalecube/routers":"^0.0.1-develop.1591043991.0","@scalecube/transport-browser":"^0.0.1-develop.1591043991.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.1-develop.1591043991.0","@scalecube/utils":"^0.0.1-develop.1591043991.0","rxjs":"^6.4.0"},"gitHead":"e43e67667027909f6fd5d913090d25c11db07f1b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.1-develop.1591043991.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.19.0/node@v12.16.3+x64 (linux)","dist":{"integrity":"sha512-H2fAzkgtIz1esH06yzpxtHTAqvXwQmD9FDd0nESORcqsmo0UgcT2p7O3J9DsP7z6GA3HB4VulAkl5oS+QxBbXA==","shasum":"d0c45c4a83a5ab3e68fae84e5c6d7a75958f3844","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.1-develop.1591043991.0.tgz","fileCount":39,"unpackedSize":176291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1WexCRA9TVsSAnZWagAAd00P/A03GOl5EuAI4uWLYHGf\n2s9SgwfSfycRzDAtaNDavRCutT3YTVh/sD4JaiJJk0Qr7TwCy7EaeHedULY9\nHcO9wnwlOCT7gmKRPg42Rs+l48mmvQjW/DWG0XN6oOYHkj2PwGQIv6IsjUg/\nmt/jZCSm9mw4HB9TPvMZAVumuFECKWMLHZm4h3cwqxJWI34VlettOjfpzSsn\nBZ7W5YFGskjIz39BcsUOAeL5rGx1oxKXPmBQd+jhHVs4265kurXhRbc10dgM\nuxVqLtp6i29Uh7p76W6KmJ80XUF53mcLwABFcEAxzU0cO8q72CABBDJm6IHs\nvSGwtKjYr8/oyYEkb6fUXsbaW0z5k/Pe68UCleEevQudJfWSwJ708aw/TuQ9\n8FW1L0o+Ih1Lgpy23czjOU46050Jd5ExT1yNGPlNNpA4+JuKx1OUrhaH0xCI\nj92m7fmfBpJKvJVInvDrGiTtOM5aPMdEUVjV2jaEmEAj6YCut/HL9lbv4pHk\nd65QXjSUzAKqhgICVKpjZDl4pEQO3SM+kFlhf6BYlwtolIDauAS1X9yZHdQL\nfMTbq24V9l8suX87VHZJF/bpOm3aiwh/icSjINv+0BroxdvQGjS1G3tttpNT\njbdvHQUcfQADfLdqCrbmn5KuMMfaSgXtzCCIawzbpz7N2RGts1ehiaLrcUA7\nQsCK\r\n=Oa6T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9V1huFx1qesA2ZO9ZzajhhWFEK+CvhEY27nEB/uMbOgIgCTivqh32CPWGbnysDYxPJrDsgoRDkJTPoRxHVMHXPeM="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.1-develop.1591043991.0_1591044017447_0.6312730817635279"},"_hasShrinkwrap":false},"0.0.1-develop.1591044122.0":{"name":"@scalecube/scalecube-microservice","version":"0.0.1-develop.1591044122.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1-develop.1591044122.0","@scalecube/cluster-browser":"^0.0.1-develop.1591044122.0","@scalecube/routers":"^0.0.1-develop.1591044122.0","@scalecube/transport-browser":"^0.0.1-develop.1591044122.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.1-develop.1591044122.0","@scalecube/utils":"^0.0.1-develop.1591044122.0","rxjs":"^6.4.0"},"gitHead":"3191927d7d41354ec499262cd86d55d848ebde59","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.1-develop.1591044122.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.19.0/node@v12.16.3+x64 (linux)","dist":{"integrity":"sha512-PCksBjJS9l2AkPBpqOBLxNxrA0cDNakco6BZ4PKzcnk96ApbKRNdHxdsc9/jVetPyOrmCV5HA06e3FDg7IvPqA==","shasum":"86e19d3544a47d69ff0378fd69cde300332c4096","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.1-develop.1591044122.0.tgz","fileCount":39,"unpackedSize":176291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1WgxCRA9TVsSAnZWagAAewkP+gLdfWE8l8liIffKvlEt\nbbbKE+lH0UHh1gUTjbvkgr/lr51DaKjZQCwRMdl1IA/AzRSthCjTXoFZwrxg\ne25TxCF0iZFrvK+PUuOCp8jF18R3NGn8jkSwyBhgxYSPjpIz3PCGDpxxwDv1\nl9NuHyM7Q5UmzxNdfelt5ERn1EmZNCEBfTJbe7GjZRTX3BCw4I0cFcJ0eSXd\nNjYkJ8lwR6KGBGWdQrvpgN8902vvy7zEer5Q3KqCx2RQsvTooN37fqPKKIaM\nJnVlS56UkIldUcPYWdG3nF/SUT4kwfeRTmJqKZ4agTOS1ts5JGt8/Rg6N4q0\nAyJo3ktEAQILzODR0OLhBTXuIQ99ZM7lNDtTYXMfFXx1kaaTdLT7Ct9L96iH\nTyVvGEqsovfrUna/pi6ouEukHk8F9OzgLOcw0bpGOo0AZd2vLy+lA4R3CnmA\nA18CHL4Wb8qkSKRVvViHRvSpReO6IDC32op/LiCZZR2GlxTWUDSh74ekDmtR\nqUAELIqmSOJ5+/ESk4/9vYfk/JNVtt+DrkNWHGifv1Sm8UvmD/JNg4QZKXXC\nh/k1058AhT//+KirA7xnLIYMKZFlt+8FLzgSm2ZjbwtuMhsI4sGFULyE3lV5\nT+whNp9jszbJyeI6PdYlQ8fDworLWNeJAt0m6thDm9gheyZ9koCKae9/J3eW\nMsJk\r\n=5JCF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICrYv6jsz3pb7X/UDHOVzHAyWU50U3yijxaRa7KVvzAKAiEAn8ACMFBUjNYigD+o1CZaC9o2s7PiuCCiWExCBnBXlmo="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.1-develop.1591044122.0_1591044145250_0.3931231588865669"},"_hasShrinkwrap":false},"0.0.1-develop.1591044462.0":{"name":"@scalecube/scalecube-microservice","version":"0.0.1-develop.1591044462.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1-develop.1591044462.0","@scalecube/cluster-browser":"^0.0.1-develop.1591044462.0","@scalecube/routers":"^0.0.1-develop.1591044462.0","@scalecube/transport-browser":"^0.0.1-develop.1591044462.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.1-develop.1591044462.0","@scalecube/utils":"^0.0.1-develop.1591044462.0","rxjs":"^6.4.0"},"gitHead":"86b7726ffcc44bdb049d5d4762d55cc02ce25954","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.1-develop.1591044462.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.19.0/node@v12.16.3+x64 (linux)","dist":{"integrity":"sha512-/BRLChQ6JEShqb3u5jjqnAQgZwblkFSVdbxSikJVCt4zqQlH9HtHpTq0hGASyzJkFkG3b7RULJ7gH1CWbaR0WQ==","shasum":"bee03b9d365be4a1fdb17a20583abb028a697a3c","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.1-develop.1591044462.0.tgz","fileCount":39,"unpackedSize":176291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1WmCCRA9TVsSAnZWagAAm4wP/j2qWRJGwZYQK64xRfHE\nWvw+bJiAHRAwOgGuDERLo0DYR1kP9EMaLl6ahEglAe3e9tVfyw0yT1lghKry\nFwrB5ImU1tPt33CIwsH3Pps6vk/nvy2fYgYQ4XAYUngIOc/kny+YWXXwsGdi\nx3tz2mR/k/YPCKexrR2+NPYMYsb40yf/AOiFF1ULttJ56R6c51ImH8O0gEic\nP11bvQI79LRzNTOC4boevhxqWcdRc9MSKw7Q7a71U8bKioiTSgFvpTcey3XE\n4KW+QGEeATs0ueqCo8KgM3aVe6aU18NtWrbSqvp7FgVjsU5PE2S1crkpTMgc\n5ZdtUxqEKOgiLlf+ATDgh55lRIwpvlwo/KLYFx+ODgygY3pzrvA18paIC7rQ\nxTRtBp1bdVd4KHpcQG8PQ8JOOVmNNis5175EqK1AkrLiaXB5jJ2AKlBfUF/i\nFF320AORzhtSPZxtDO7MYUMceKOPbUB7eiVNDNcbn18yaRrTXAPkrOZf0XnN\nEqhDcUFZD7cTj06QwKbKoV5LIjr9g0st8j8ABGRbYgBrFwp/aStMdWsnlVHf\nCjltXlTT24/7Zp4oThMguFveti3ZZm+DHYTXcbfWm015KEUZy/tZoNOpxujl\nAnbuyX1rlmJ6ta+2p0Hx9f0JUL+9Ka1EPPeyVqNMLy1kJeULOF0G2y6yFldW\nR0nU\r\n=mkMa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxfM3sVWv2ceAOodJIqlEj/3+R4Bntlk+sBH8Cr+mumQIhAOUyV3F+vNzfhmZ1mScDEP+cA11xkyYjFoJtjVhwh9gw"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.1-develop.1591044462.0_1591044482430_0.42041792015118795"},"_hasShrinkwrap":false},"0.0.1-develop.1591047072.0":{"name":"@scalecube/scalecube-microservice","version":"0.0.1-develop.1591047072.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1-develop.1591047072.0","@scalecube/cluster-browser":"^0.0.1-develop.1591047072.0","@scalecube/routers":"^0.0.1-develop.1591047072.0","@scalecube/transport-browser":"^0.0.1-develop.1591047072.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.1-develop.1591047072.0","@scalecube/utils":"^0.0.1-develop.1591047072.0","rxjs":"^6.4.0"},"gitHead":"8f1f87488d36e1490ac62695ddda51bb183e68bd","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.1-develop.1591047072.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.19.0/node@v12.16.3+x64 (linux)","dist":{"integrity":"sha512-e/9dr4usqRxFaslLRcd7UNKa7E1rw8vbLO6XH1iyqqHdCFhwqGLpHwT+PrSGnFpd4r3iQzZspePeX6a4VgDzMg==","shasum":"f58f0adab9d13ec9b5d3df2b2b1ade05a2fc3747","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.1-develop.1591047072.0.tgz","fileCount":39,"unpackedSize":176291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1XO8CRA9TVsSAnZWagAA7JwQAJfeLHlOYvnQBQRS01x/\n1IVoFzBzANAu7Pb3IvgD/s7zE5D25DvbU43mxcuVWq+bjsfrIY+10MLzKJyE\nUiPbX8A4hKjLHWAdrH1tGC3Xt85bdgr8IEloGpDyqcEjtKVU0P8nmkaQtec9\nTujYeILcD+WsOV2qQaitBD9TGf5K1Uiisvze2Q6v3pyQ0JUkP6nm8ljAVgkg\nVr/WHXeFIZlCJ4G2Lfybcc3EEa5MNksyMLM2B+o4RKdHAdFJOPQwJy2fK7+c\n7xFinWBzZu1wBUjXAUEn1kwCU1a1o/Eq6xPWgiUhoJ3jB2TcymWi/CL13MEC\nduEW0zmFlQ7y9rrmIreb1PpJUu4zbzWAZbhxip7cun0hLrFH6cIkNvBs8Vqn\n/aR7OZmULCWxwajlwsipkMuEP1MqC12b9yaZKl0eq6ps39V3EtclQJFJZ/z9\nNeWvVkj6dhmwDvNWiZfUFFNDgnULceTLkInxczg03x/UbAU5LKyTz9HWHaHm\nne/N4munepjuoV2SEsaCCmDxNi3HnpfkwrL2NfkaxttAk3g42AR3egAZrSBJ\njetdRfoHHrARBvUYH6bE06trSezl3UO1drqjJVOGKIwnPCczUuw4dR8jXAoY\n5mtheZJLshQ01I/m1JUbgpCM44BQnRdz3oe6EDpTIj+4UdfjfqI5iG7bfcCw\ng+Y3\r\n=tLip\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICtVOuWVbsaUvzzN1GCq3+IeEcJiOOJyQX0CeOhQPvDIAiEAgwtMKLauPwAapf3uNC2c6Y39eAtV2f5sUCwhm4t38KQ="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.1-develop.1591047072.0_1591047100386_0.35450377017968315"},"_hasShrinkwrap":false},"0.0.1-develop.1591086663.0":{"name":"@scalecube/scalecube-microservice","version":"0.0.1-develop.1591086663.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1-develop.1591086663.0","@scalecube/cluster-browser":"^0.0.1-develop.1591086663.0","@scalecube/routers":"^0.0.1-develop.1591086663.0","@scalecube/transport-browser":"^0.0.1-develop.1591086663.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.1-develop.1591086663.0","@scalecube/utils":"^0.0.1-develop.1591086663.0","rxjs":"^6.4.0"},"gitHead":"ca438f2affffce73727e30c27dea924feefb088a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.1-develop.1591086663.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.19.0/node@v12.16.3+x64 (linux)","dist":{"integrity":"sha512-FDdFPlt1zoTrm108ybk3TDZZAI0tXjwZB3RWRmzYRJ0s/i+Y5FI+SFAbk3DVSCpnbPIovWFHQDYzgrrrhPwU9Q==","shasum":"3ca6d1581151fa3bb3cfed28e30ab8df6a1b9bf5","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.1-develop.1591086663.0.tgz","fileCount":39,"unpackedSize":176291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1g5eCRA9TVsSAnZWagAAag8QAJ4AraqirL6oNOFWLeKJ\nbj3CkL25DtSIuaLQQ7Br7Ay4qaPavfj4RbByBSRQGAlqVhzPYUELHtshECoZ\nnVRVZexu6UKA5wmIKetZPJOuJiql+vavQZvmKQsarYGSIQ8pLgMMyZa3+TgC\nZf534X0RcDEsp4LCIuvOAl0KgL4aEuNJ/bhjIIntnQSAQHHgYvLbSM74ZVw3\n5wA9j2cIQ1p1bbL3/Ma8XvAP5XDVKwveqaP6lqt8h8k7pfkWoW1w36lpEafi\nEVltmrfg4C/2U1Ii7e8FEwP/Z2wInCTIAgYAgcu2DYq+ys4QRm0i2M+dVJPE\n4w1gdjRBqRrdMoehnRzRqB+5FBLwBLQh+Z4oRlOV/Ii0ftIIPjfwc0P+FsCL\ne7QTwKqabH5t4aXSF26tQjjCxRvvhYpH8oRaYpNXROFHaQ64cyzJeijbQx+/\nAQthTI+JJENe+7eqFE1DkWmXfR424BalAtU6vcSi/qIqWIPUFL6jf3HO1x9B\nJWs7RQAiOY6t1XV4rNKTq7vgwtAYEHF4IkzdmCfYRYYLIGzF6CHdd4vMgqO/\nP40y0hwfl29SKhKCgpeOBlckNpX3HAnaX4uqU/iBcK9cWu8jHTZlom34yEEt\naVQK9Yeq1ZfRgs5ntCyfKrSP5nCLamxw/cTnq9+JK2PpZdelnK0D2UgwliwW\nIHyV\r\n=RatI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDd7AvfUOTQnd3qdlBi3WSaQNj9IBNmI77toAuiUXy9yQIhAIx7gQn9qMod/6NrEavvY2QQncOtER/XqKh1KesxfRCk"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.1-develop.1591086663.0_1591086685895_0.023738339990998947"},"_hasShrinkwrap":false},"0.0.1-develop.1591089263.0":{"name":"@scalecube/scalecube-microservice","version":"0.0.1-develop.1591089263.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1-develop.1591089263.0","@scalecube/cluster-browser":"^0.0.1-develop.1591089263.0","@scalecube/routers":"^0.0.1-develop.1591089263.0","@scalecube/transport-browser":"^0.0.1-develop.1591089263.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.1-develop.1591089263.0","@scalecube/utils":"^0.0.1-develop.1591089263.0","rxjs":"^6.4.0"},"gitHead":"6fa287f4d9b6c266037e7f8672c6a9d7609e9a8c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.1-develop.1591089263.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.19.0/node@v12.16.3+x64 (linux)","dist":{"integrity":"sha512-7g5IAS22Y9F8kZBjzEX8tAxB9Tgmf2pgsopoCnIkl9F1kkmhmZeRti5nnqMID8/ghccP9a06mQhRXWoOaCx6Tw==","shasum":"2ca2e0d3cff1f4092fc36bd37799bcc8f34da161","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.1-develop.1591089263.0.tgz","fileCount":39,"unpackedSize":176291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1hiSCRA9TVsSAnZWagAA29MQAIwbvZis671GQyVyf0L0\npLBlb1hpoPEBjCtXKSP8IKcRx4RaCU7pbsXBJAB5rt4xigbqMLMbsRAxgkrQ\n90cAWRzloaH+XQy7HVg2NZr4RoOdPeUJ2vHkyUg1izK5TxrXdvGXi7fT/aVX\nGoCB2CJYIuwBCgaFMqOlNDRBvOSaS6qKe4Gu7llqXvtPLILlwDxnBSz6/90U\n7c2kNullodEo7MJubgWF7YPiKPd87D056jkPmPhWELRKSLsP08lO6CBmqfAS\nmmAY1V7jDFyozrKPWuGVm8pZofYjA+QppoRrOdD0chGzPHonE46ET26eRoL9\n0Ed2iMmdD9J2pFfCiHsnA4YB30PADH5Rv5ZZMDzomavaHtflALNBO5tbno/2\n77JMdR+jvJc0T3VmflH2LJvoVB05HoaLMlUCzk5/Nq7uDC/NmYe4rPa2mPd8\nnQBi3Nouk6QuDishemhIwnc4YI3VBfPgmUqmYUJ1qufkcrbcZvBn1Qbk9nbH\nvaO/ROe81JnNlzJhIR2avg9mGyyeFCqOeBgljiOZ+II8GehaCT1wdr45QDkO\n9TN/4jexxNeN/NHCZ5ftofvF8jYeKpLZFPmid+iWVzh28tZdIEHKWnlJXQAB\n+7kW1IYB4XryB7ZTm5xo+X7MeNnL/O+evPVKmmtnCTP+mR6J0YRFpkKu/SWi\nlQHB\r\n=Ecnx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9xpKrbS5v8b0iLCnDy5krMtepSf0Ia6XLNjobfRXzZAIgDje6rkRjBwO7O+yVR3weqtzjW8nz7nYBHPxG9dcOoHk="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.1-develop.1591089263.0_1591089298414_0.05457869831972584"},"_hasShrinkwrap":false},"0.0.1-develop.1591089545.0":{"name":"@scalecube/scalecube-microservice","version":"0.0.1-develop.1591089545.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1-develop.1591089545.0","@scalecube/cluster-browser":"^0.0.1-develop.1591089545.0","@scalecube/routers":"^0.0.1-develop.1591089545.0","@scalecube/transport-browser":"^0.0.1-develop.1591089545.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.1-develop.1591089545.0","@scalecube/utils":"^0.0.1-develop.1591089545.0","rxjs":"^6.4.0"},"gitHead":"43f9f43623b77ca72444548c504eb23dcdceaf6e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.1-develop.1591089545.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.19.0/node@v12.16.3+x64 (linux)","dist":{"integrity":"sha512-364NwoCG74eGa2n/8G03lwCm9H4fX0S3+8Cc0as8IRkTUs7EXWWVbIl7BD13BdA82R6Qh7soSclv62GrvHMUkA==","shasum":"9ef17a8a23698f78f31bce60eb66b3cdd9022b06","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.1-develop.1591089545.0.tgz","fileCount":39,"unpackedSize":176291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1hm8CRA9TVsSAnZWagAAtkkP/2P9f3qq/dYORiCShweZ\ncvykaV5CexzXnLX4TMV697DkV6uyAbzR/SldqeB59AMICUNhMOtqnfoJvddl\nfkssKP+s76wxKFu0XCwq9Dm84eJK1aQjLIdof090DznEL9/rV3TnhA3NLMcD\n0paVsfkfYrMji0UrrlfakX/J1hZL722E2RtW+ymUAT0cUc/NTAd/iZYH7/Hy\nMA7B5GEY/VEiv8lv9ByZucIm0UhuVI/57sBYxu8ONMgsnAOS3W5Pu5m+3eJa\ni9gJuC7oS7htcdLQySEc2bg5Ik9yqHtGlIyyCi0O4VmDuj9Ky1pEByYFA4rp\nCVgepWh4OIY22yEKitiwPf3EfFBLoFKxpP/sdECS/GS1TeM97PDN8LvPG1VM\nZHeZUu4/U0DextqYGFnOWaG8QBXobYHKpH137I0T9E08OYjuRSQ1I2+2dXZi\n/oWEsdDe0pHBWx9UjltPqJi7AWpQrjDigDVD+wSLQ0jkOk+h1JftmNMY/0I6\nvQIVHoD2BXMlpu1jikBlbSP227cM28CebJY4RqV3Sm+uqddV7sP6bJPNg8jy\n2XNOekH9ZR0SuoIvKIOXa84mFC0h2dB6hxetDn9oMvf6YKjuF8SHUacQsuHA\nUrLjyKmiJSNWBOHjuq2M6QgDg8Jg2l83f1u43HdNb1a1K64MqT6ViTyA6LyW\nmMij\r\n=N4+0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFNkeKU5PQ0H/043+RBSvFwHRM5OrwXXbLdoVyUc3zGgIgTGfutk6a7FSRywXfuGLZY7aARMMvbS5lBoFrsSrZUcU="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.1-develop.1591089545.0_1591089595715_0.24402155518010704"},"_hasShrinkwrap":false},"0.0.1-develop.1591730687.0":{"name":"@scalecube/scalecube-microservice","version":"0.0.1-develop.1591730687.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1-develop.1591730687.0","@scalecube/cluster-browser":"^0.0.1-develop.1591730687.0","@scalecube/routers":"^0.0.1-develop.1591730687.0","@scalecube/transport-browser":"^0.0.1-develop.1591730687.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.1-develop.1591730687.0","@scalecube/utils":"^0.0.1-develop.1591730687.0","rxjs":"^6.4.0"},"gitHead":"2edde84a2d35a216396d0ce0cbe52bc1e8ce4e78","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.1-develop.1591730687.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.19.0/node@v12.16.3+x64 (linux)","dist":{"integrity":"sha512-g6NAz15eJCov3J/GBrz5qLoD2/dYTKzTt6tjO9nqwXlQ4e+XmJwbZdxgUq4mbMtRfERWbi8tL3ViQ5+ddxCYlQ==","shasum":"c6e7aa51052287cee5b47c42917f48fd6fc9bfef","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.1-develop.1591730687.0.tgz","fileCount":39,"unpackedSize":176291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3+IUCRA9TVsSAnZWagAA/ZQP/00nUNOemw77XRMt5OqW\n/JIjz0JRIIEoC5UQ4YuiUKIk1H8LQ1mbkfI/I/xmm0+EJzzp7YdNzhh/1U7n\nA7CMzX6NnyeL5fpvQ36koXY0Rs1H1c4YMVtPmjjfHLnBPvSbLWlYijInaRJa\nude6frOrDLyTNdNTQzk2JEnj+c44cYcM3Xx9ZOYZDKcG8glgghzAFEtGnZXr\naoHMgreM5HE6ovv1Wl9AlNxK5rPmc0QMJ7BcsKCaybICfk/3Kc78rdrXluNO\n0K6wWNJkF8iE1LnEqj1nb99HY8Tdkb3J/KVZPWS/4nDYdpKNAwmlDvbglsp6\n+Jkh3/WeZTx4DgayVl/qAzKzzH9AKPterU2gGDT6RrOEUN4TPGiGyhthQv+P\n6iLrYAsQUAyVKUlphmeK0qy43xNXs9UB2tYsxEny1OmJD1UaOcqoBTsSbS34\nJijpBuwLDIBwJtlslFu64agkYWxkIlJu/+tSE+dwyGN7we1BjU62NSOuRz9l\nJDrGfYVvutjsB691TNrSfBQrJfkoLvJvXOnUZPh760ZPYAks/KJnb15CtpQl\niGwljpRTz9I+FiyBkT4k5qSKNIsyJntLAJEbFOwH+GiGBdS7T+Uh4VKQE/le\nckbu7XdoQm7Hf7BeVF4G900+wT7nk/q40ovbbzz8DKNHRoqLuYYUQoT+nVmz\nKoq8\r\n=R5W7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5Jy/V1kfR8LfcOASRlTAU+76QFuHsdGTKAjW4WL7isgIgCwsqmvRXIdKX6qBIwCqs5nmorNo1IdHkt/v+bqMxYZE="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.1-develop.1591730687.0_1591730707508_0.25949498417526384"},"_hasShrinkwrap":false},"0.0.1-develop.1591732649.0":{"name":"@scalecube/scalecube-microservice","version":"0.0.1-develop.1591732649.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1-develop.1591732649.0","@scalecube/cluster-browser":"^0.0.1-develop.1591732649.0","@scalecube/routers":"^0.0.1-develop.1591732649.0","@scalecube/transport-browser":"^0.0.1-develop.1591732649.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.1-develop.1591732649.0","@scalecube/utils":"^0.0.1-develop.1591732649.0","rxjs":"^6.4.0"},"gitHead":"76582cd991b2df76d32537ca1e8e727c316ab388","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.1-develop.1591732649.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.19.0/node@v12.16.3+x64 (linux)","dist":{"integrity":"sha512-WJ2zNSjTpqcagDJ5l89zv3lXRVMYWyVqCo/jiJvZkrH4uq1asaKDF+A3eQt6uWcsvAuk1CxwY2IHguS0a3do3w==","shasum":"8ee89f86739d3c5c7ab65bfeb46789042dc01470","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.1-develop.1591732649.0.tgz","fileCount":39,"unpackedSize":176291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3+nKCRA9TVsSAnZWagAA1qsP/ijP8NYAv2b4yE6Vy5Kw\n349Dp8osswtYZa72i98WzHLZkM8v7Q8PS4YWRRAzNsS7ybRxSHXL3BGwaJ6e\n46QISgzJTxTrATrSFa/e/GSGBOjt8QHKrMiHn6c1PDhnIvttkcDibCo+CDpx\nGw4X4dQ5tuIHmlxJCbHD2ayhfDnCvTxeyVOCaUT3A6j9SBCFfY85D73hq372\nQeyhVjmSO+h3a3bdiKgozz5Qeqt9tNaDBgmZZlgvd1ZeGmFHe8oG8RChdGi5\n9yC3woakz7Hk057bHjCMKmxPOMKTvuCWP+bUnqep6GVwbInNi6XFf1zGyr4n\nFmKrPeFcPNPpnT31oRheISPaqlWhAepK6NoGPsLtD/Twp3lDFfZZ4jnpY4ZL\nRAt5tWQYJb+CAudU+8NNy/449e2bsiJuVDCqgbP8ZrtPrS52RAYi/3d95yjS\nPDYO3OaiHINzxdynRWm6wqSRblOK7mLQOuIEUDcKGJKWC5FLwvK9xV9kfrGU\nLoqA6tNDTPHl0LsSPECPnP4bHTJ3gMyQl05Hdjrq5H1cnYHdot+blaT1UWjX\npk21pdUKF8KOQHlRK4KWikC9TiFJtCdn4Idm0Ewl6pCgV2OtMaSwHSJpzzpv\nUJEvZboZp0+r13qtvLmnww5pJz4Syq+vjXJvWgtFGVIrgAtc3masI4+m5DN5\nOTRI\r\n=YOY8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyKIIFOanZ6QRezuTG9TfxpmuIfXnec578gZxeDXlubAIge1UdizqGkWWhmbCG5ioXAJ9BW+DJON/mYPMVPhbgaks="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.1-develop.1591732649.0_1591732681920_0.32819704672474326"},"_hasShrinkwrap":false},"0.0.1-develop.1591732756.0":{"name":"@scalecube/scalecube-microservice","version":"0.0.1-develop.1591732756.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.1-develop.1591732756.0","@scalecube/cluster-browser":"^0.0.1-develop.1591732756.0","@scalecube/routers":"^0.0.1-develop.1591732756.0","@scalecube/transport-browser":"^0.0.1-develop.1591732756.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.1-develop.1591732756.0","@scalecube/utils":"^0.0.1-develop.1591732756.0","rxjs":"^6.4.0"},"gitHead":"71af2bbeb1c28ed2fc0010ba2b525e30f4d85373","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.1-develop.1591732756.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.19.0/node@v12.16.3+x64 (linux)","dist":{"integrity":"sha512-a9dbT9xImyNMJ+b2qim1iLekZp1aJGbI9Kez9PG5dOWWYbneJbkS4aN7kdX6rwgg20kNx2UPbiSeoJQUdUZu8w==","shasum":"3309e43e662c34da2b8fde59053c5e6c752b14ed","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.1-develop.1591732756.0.tgz","fileCount":39,"unpackedSize":176291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3+osCRA9TVsSAnZWagAATskP/1qexf0XdhpeD76Yl/p3\nKk3P93fOcUjnD5JfBbvN0d/+DnvB78F+YrMoYmFQztm5HgaKknNlGnneHzTA\nfFpx9U1vkrwFso2hhvV0Q7FPTreEEDFzx0K9HgMfhayThw1JEozUfbFOCE51\n8rTti60ifjby92rLKxTM6AM7/eImlzleRBJKt5Zc3cY4JRh0f5ayxQQ1yza2\nt+EUL9seIj9MPwByO0TVYRg2EmzE5lNOiUA9fd2CEY72raJFeuETIHf465/D\nT+6XYWrpdFgurCpa83xztczNhs/ealPnz8ucgAjcAqHumlMdD5gTemvc3IYR\n3DqaLBMYaRSGlHz/rDeOqGKZJA3GW+rwINWxPLfyMnJd9KaW1oZiXV6yCTto\nqKogzd+/kjkgIDpQB6JusFBvi9wRNgrp40pbYgdD2A6/opXmdeKoZZE59WbY\n9omb1+lXn5rTrbPeSr17D8kYaCDIRNahK/AeW6xExk94jUUwWpIWMuk1kH6D\nWVtx5pqjwfGkoYnya2jIg7Xt+fqR//iRbeSKQRjv3Jj4kADvE5r/kmm851tR\nVMkaEN9wtMC4SK8juFJgYDcLaTDi1kO8EHSJvSoNpeRwVrwu+voHnFMzMsHx\n4NQ6ryQIH5iWiNfaicJYs01oEU7V/82B6WV/vkzpWUO3dCBLvuG5guAMTBke\nS+tK\r\n=NYFD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnB/5Bbb99ErctMt64/xgpFdMJ0cS2Ve4SNHyElQ16vgIhALR7PhqR1uqJ4ZrGGvJgmaMWZwI+QT6DtM0QZPsE66Ff"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.1-develop.1591732756.0_1591732780466_0.5984964734171756"},"_hasShrinkwrap":false},"0.2.0":{"name":"@scalecube/scalecube-microservice","version":"0.2.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.2.0","@scalecube/cluster-browser":"^0.2.0","@scalecube/routers":"^0.2.0","@scalecube/transport-browser":"^0.2.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.2.0","@scalecube/utils":"^0.2.0","rxjs":"^6.4.0"},"gitHead":"863fbe96787045f68851fa84bca31bcfa51f436e","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.19.0/node@v12.16.3+x64 (linux)","dist":{"integrity":"sha512-ra8LeYYCuIpjUQPlIeZ/sLo7lXMpykIKB20YY/Chn6/H55IuhMGmXYXP0DdLV48C4/SFVg9DEK54Fdc8FuaoWw==","shasum":"3515d2ff751e259561fa2e672e3d9fbef3c52298","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.0.tgz","fileCount":3,"unpackedSize":16271,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3+s+CRA9TVsSAnZWagAAAucP/1GfPX/F8lHDsVTPm8b3\nSJ5i43hNoyO274dX1cagLBK6YaYv7xdUdYyQrXXCfEYglXwZBUb1CBWczE1T\now1J6dQHZho9Z2GBL/tTWo1gZlF71DOV7MUfpkjT6Z2TQ/yYddsnanrkImZ1\nBA51PCKHyMuS+wQMquSNLQDJ4EomqeCpuikjhPkx9lGB47Cn91cIq5R1iTZK\nVTMhhkO7pJG9lH6ug4AAXcCwMYOcCMeiKrn6w5eExjsB1I8IDy5oRsx98Uod\ncGXENfFHGnSHhxrOohMagLVmCBWLeX1JkU3A26/jv+ZxGMPABmJ76aV21wHO\nuVJ+1WJYX5B0Tiq9eibfo9zohpjR76nmBMB12Fcy8pLFISi3exbnGGBiNqjR\nx6R3zyJ9UW2+xLNcP3ZyMiIayKB2TESjklnFE774oUQ9KqGZf8dqfXwDUWDK\nZUzgu7CYQlyPKxwRBEq0fT56uSp1XylE2vebS8lnppRruxvQoyICKsY4cGix\n7HXlRvKzEEtiz8NGGsbg4HO9MtSYNMXzN6iiffJRmTo8kDQ6mZEss7Z4QTPE\nJ0Ojw8UbHal3cUrJ2HdLpKj2euZPzEZCnq3S6emXwRK4cA/eZ2U+MNKWSIp4\nUcOgRikNwd5d/o6jTvnk6dSlNFoZUWGuV078JWnZ4pXEZCqXA09q6kJLYCYk\nvfkd\r\n=DXln\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbiRNe33D3V4tUqy5TMoHDJbP0fRHyGCGgsmkY3WB+rwIgcp//Fez5mmzWL6f0GdT4BXfdD6QbsYDaZHU1Kmha2cc="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.0_1591733054128_0.9578449728301177"},"_hasShrinkwrap":false},"0.0.14-alpha.1592914245.190":{"name":"@scalecube/scalecube-microservice","version":"0.0.14-alpha.1592914245.190","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.14-alpha.1592914245.190+a7c3a86","@scalecube/cluster-browser":"^0.0.14-alpha.1592914245.190+a7c3a86","@scalecube/routers":"^0.0.14-alpha.1592914245.190+a7c3a86","@scalecube/transport-browser":"^0.0.14-alpha.1592914245.190+a7c3a86","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.14-alpha.1592914245.190+a7c3a86","@scalecube/utils":"^0.0.14-alpha.1592914245.190+a7c3a86","rxjs":"^6.4.0"},"gitHead":"a7c3a86eed9a75be3b452065c694b54e7fafb8d6","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.14-alpha.1592914245.190","_nodeVersion":"12.18.0","_npmVersion":"lerna/3.19.0/node@v12.18.0+x64 (linux)","dist":{"integrity":"sha512-GGFLEvAnSFx17afeN6rs5nAfiz2eixgpKCjBjY5uDC00gaLi77cJi8sjeDuOp+KOznA0TKYemlVASEYfMJ/78g==","shasum":"a122094549843b7865e4a7621bc03886d391e570","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.14-alpha.1592914245.190.tgz","fileCount":39,"unpackedSize":176354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8fFdCRA9TVsSAnZWagAAG0AP/0mcSpTMWbooQK03wZOm\nD5U2JoyGzYmh+duLY8OeqZgN2JTCTmS6noVBwCWRu8nvaiC69KWKAb74BFPV\nMsvy9Vjo3o5Q6+02c6zFUKPcAtMNJcQ74sUsTCfjsVcDUI0PG2qPIBvlMHSd\n9U6c4KDFyCrI93Rubd5YjY9OER9DyQsHc0ZyAp7yv1aX/4YRgOlOjVzARwUP\n2p4QQQEbrK4yO7UJC78ZZBTk8tW+45UNxckOKLiXuUUhWIvrh+eo6hAoyC7Z\nsYPrKxosua4YCqZ0TO1VYc3bQiIC2f2AfEsvPJ19RkD7YGAOr9Uzw07ORDKK\nR3R8xXwKH3QcCA0XirQAp/sH7DBQvH7xebjJIopVkizQ+Iy0xiKGYXfq6IUN\nhPBhYDa0uN/wwH3KMEo/r0MR+97qousZOPfdDrQ/a+YXnYhQh50Ayvf2ahSy\nB5bTBa7iTI+CEB4JswxR9EuUmFMBRlL9DRN6zZMsL1DpOBubMeL8NyzAL+Xj\neAMbETnzNHbigWPG/v79k1jwdY2oXl5u/UxbDGHa+4tHQ36PrM8yIdZPoj1c\nF1EblwbALUgIpUh6NGudUQXorrz1ZIDyLkbliSec4avXXStOYUrrwbh4t92e\nuUsNqOu04MMx6KWJykuVWQyoespJpPQtdKhPwTviF9YaDWqjpaV1VCxt8kyF\nqMxk\r\n=mlie\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBxF8D98uC4Xdcr/SMdBVXmH9dJQCM7WkKMwhT8uoKRDAiEAoV/jPO7xhg1eJBJ2vzP+lMgk6WX8GkKkzlyj6N8DazY="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.14-alpha.1592914245.190_1592914269033_0.7334013748421504"},"_hasShrinkwrap":false},"0.0.14-alpha.1592915938.190":{"name":"@scalecube/scalecube-microservice","version":"0.0.14-alpha.1592915938.190","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.14-alpha.1592915938.190+d7ec9bd","@scalecube/cluster-browser":"^0.0.14-alpha.1592915938.190+d7ec9bd","@scalecube/routers":"^0.0.14-alpha.1592915938.190+d7ec9bd","@scalecube/transport-browser":"^0.0.14-alpha.1592915938.190+d7ec9bd","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.14-alpha.1592915938.190+d7ec9bd","@scalecube/utils":"^0.0.14-alpha.1592915938.190+d7ec9bd","rxjs":"^6.4.0"},"gitHead":"d7ec9bd6fdecc6b86f9e5dae0d544ba134471efa","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.14-alpha.1592915938.190","_nodeVersion":"12.18.0","_npmVersion":"lerna/3.19.0/node@v12.18.0+x64 (linux)","dist":{"integrity":"sha512-GjdMTDYo9tjJbBtB+i4RXUZfzh7i8SSRFi0X/hbW0HOe0nXd68A71yVNpag+jH2Tbha0grZdpWlP66RBSw9GOg==","shasum":"a0174f3fa73b7ff145fd8467cd4f804e8d2902af","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.14-alpha.1592915938.190.tgz","fileCount":39,"unpackedSize":176354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8ff4CRA9TVsSAnZWagAAmSkQAIdNFtVQxOWK+ZKy3hJt\n3A5NdbT002DTGoJ1XClaYRmyXKJ2jXiDyZwVgaiSk9FKMe3fMvvEFWV3gZtR\nNeTpSOwreU4FPOOdTFWHGANxX/lWqNDIl47DkBUoJuK0J8IAko9VARfoJ716\n5sGnpAw5qgQfhpTOBEtb9JU0Qshjs/PjjUZwABqaxIHVEmsHrFyusRRsJNw7\n46wmP3hSX60xr6ToKkp6DwBcH/I019OMJkoJCKN8Z/gyw/MIymve4ZKg3mO3\nZXGzoXm3+8oWChTRYNO7vGyDefzxOyAo9gCflPeCTrM4BEVpLrIgotO+vBfu\n5IbePQyrI/bjgDdW/Qbl0Ghh05eK34/IwAq4vhb8TvrGqipiX7UXIa70gVA4\nHu1aTO9qFo8/yTuLgztKEcgWlTNizj6xEpXLkaQ5DQ++IDmCLpKcPbyCX/fL\nKzCBmpUxCkGQWIaNCOAT4XqHX/3Q39toUFl59XJZfnAW81gaqBnVy/oCjymZ\nFx/K96QWFjCx73czM3Acasu8pLEwBWXHeV4PVRmhk99YrOdv0qCq/YZnxKF6\nMDG5yb5OUrpvxPixlhf9j1x/Bxy9Xb2uk/QvZTmB4MTQfW/WMmFjp8zpMcLq\nP95QPD+VeLhCqnAd/cZthAD8on9EaTon2MMjwgKHSwZiydS1XIqM3SENLNQI\nrQvN\r\n=ezGr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBv3JBDUEJvCW+58B5IRCJ5fl/4UtYOI2PARocX4BGeNAiAf3CnY+aE7jmuZzRsq9u7bXXErHgcIvQUgZ0y520kH7g=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.14-alpha.1592915938.190_1592915960609_0.9489021337295176"},"_hasShrinkwrap":false},"0.0.14-alpha.1592918572.190":{"name":"@scalecube/scalecube-microservice","version":"0.0.14-alpha.1592918572.190","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.14-alpha.1592918572.190+b990a7b","@scalecube/cluster-browser":"^0.0.14-alpha.1592918572.190+b990a7b","@scalecube/routers":"^0.0.14-alpha.1592918572.190+b990a7b","@scalecube/transport-browser":"^0.0.14-alpha.1592918572.190+b990a7b","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.14-alpha.1592918572.190+b990a7b","@scalecube/utils":"^0.0.14-alpha.1592918572.190+b990a7b","rxjs":"^6.4.0"},"gitHead":"b990a7bfe5101af99467100ff007e7e485f3349d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.14-alpha.1592918572.190","_nodeVersion":"12.18.0","_npmVersion":"lerna/3.19.0/node@v12.18.0+x64 (linux)","dist":{"integrity":"sha512-Q1pqoYpql+0iKB/PFZzYF8wHft75pPf5wf55HpZRTqWJjoGQKjcTXRrAMPPgP/b9Xh1xq/V0EVFkun4nQBtCxA==","shasum":"7f50b14c93f73fe99e5253297403a0a945dd2dba","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.14-alpha.1592918572.190.tgz","fileCount":39,"unpackedSize":176354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8gJDCRA9TVsSAnZWagAAOgYP/3IZSTHbZ0d8xmnr02ok\nHNhAJKB3hcthUF+m3ciIPvU2BvrfNvIyL2R8mfMdA01EbkwmOWbVmkWqK1Ex\n0hk3a3dBi12aZNiCwJIhDLoNQoDr5erSJNypsTJzXkhSg2ERs9oHE5d7Efy4\nkmu5Vkef11ny4HDM+fvXYijLRJVwiP+82agouEaTtPLuzrlzKQhGqs4bg0Bq\n/dHwhKolbCKAJpLc3KaMJwDXjd2E+Kj7yagVAPVWA9rwS/pOoOH/9LvjGsOY\nzsoXFl4JqFNZiNCIcR5crvuhU7vmi79H3Jowi60ovW+DEXBOpAAv8SfAQ2D9\nO5f3gY12cvF2lTnrMQiSqdZeYeqBBx4vmwc6Md/GXcHYdTmpiSbAI/S9MvIC\nl2szajbdWsGhcbLa/ExCaSDv2hkTB+mCmzT85nU85A28KNtUA/xD9IQTJZIu\nP+yxfmvShGpsG+UI64nl7drNZAgfG3f5RZEvltM1QTYY50dD9etej2aovwgB\nN6i1dOUIbRMwloFG0M8qFLzw/rykPgdciBAxK0I9uxcynRy4lfm2+aZPLg7x\nPN4YWMD37ptGtt4FR0xTozk7Vd1F1zpUyZFIdpVStmRz3sqqGHFtiM3nLIHp\nLycneGz1EH12GHPxMQ6fP/hOqkk4WJiNFYNkvYy7vb1MIBaQjyZYpYLfKCI/\nhs2+\r\n=wnlF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHEd2JIqcHAlXF58LdwgBcmCOTOA+WfHn4xWDGWDNR/kAiB4e8tHC/qhNJSBR7STQ5gVNte2Ezomu5Ap+JQ2B/Hwxg=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.14-alpha.1592918572.190_1592918595144_0.29523742616157134"},"_hasShrinkwrap":false},"0.0.14-alpha.1592920633.190":{"name":"@scalecube/scalecube-microservice","version":"0.0.14-alpha.1592920633.190","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.14-alpha.1592920633.190+9c3bb0c","@scalecube/cluster-browser":"^0.0.14-alpha.1592920633.190+9c3bb0c","@scalecube/routers":"^0.0.14-alpha.1592920633.190+9c3bb0c","@scalecube/transport-browser":"^0.0.14-alpha.1592920633.190+9c3bb0c","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.14-alpha.1592920633.190+9c3bb0c","@scalecube/utils":"^0.0.14-alpha.1592920633.190+9c3bb0c","rxjs":"^6.4.0"},"gitHead":"9c3bb0cc1fb2421f085a5ed84122bad9a066f3fa","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.14-alpha.1592920633.190","_nodeVersion":"12.18.0","_npmVersion":"lerna/3.19.0/node@v12.18.0+x64 (linux)","dist":{"integrity":"sha512-Df7LK0Ah/RuwjeqMZstRtDr+Rlo9skkQP68Ap8+ECH4pxA5SyLEZU7Wb+ckfBa7A/tEDM55IuL0ZIo7Nk3KUTA==","shasum":"0695dd778daec0045f79e3c0c3373061ee02f891","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.14-alpha.1592920633.190.tgz","fileCount":39,"unpackedSize":176354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8gpVCRA9TVsSAnZWagAAzucP/21qQuAP0MMC9oRY/qkT\n+SpeSs8U1uWt+C+CMa4j9pMUP2fnKlHUA4vrp3x6w0zuqrhUaQJRunDLD5CY\nNQ6OSVGg6FG6uOUVTb9uxPjHrfiCqYu156YJPBPUmChmwmoySvSuFQpQK9xe\nv886a2AoqGlAtd379dyoJNYev5ui3CHyiX2fmAj5BdR2u5KZv/FcPwP4A2p+\n3wSZ3KszmWzxoBSJPr+KnbsPjSMG/YWtC/6bd2OBw03TWdE/lzOHUFHBSyWE\nQnoQ+rN3TthxCRw5Ods9Uv2tGhs5+XsNnjSftVwFEX5gMP453y1GiBTHwzuV\n9jKEONbHUWeZvcrk2fkzJz5CBTUOCQFBabEelSpxNpHvyagERGYvtORbtvgB\ngD9n1Arsxc01IN7vFO4NAzi/3PG+A4CWYt6MDQfPHq3sXDViEJv0UtxJE0zj\nTj0IiBiP3Jxt1Rp/5X72R0UzWpRaChA2bxk7BD2/8Pb/NF+eb60ErHn18bPn\nSIOmNgX7ZK5X76wA66J20y8iivOUjyqTgoVlB7d9HHp5aWyh4MZjEjEoVqqX\nEwqZJb6xHOaFWSeFh1HLMgWe7D3oyIwG+B/Iphx/oNqpqV/Vmqo52gmZVpL+\nZKcPzkp7wYPkOx6RyACywZr8Lwiane4dqRJDesYbjEo0/JPQJnACp6wnilXX\n7Dw4\r\n=7GMs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBWYbfggHq9UiTIkEjByp3ZrwzedSnv/BMi/XDn8USWlAiEA2cQBc6fxKtul0ZEaLG9pAgiUbEs+RnaOl0BmLAu8bWU="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.14-alpha.1592920633.190_1592920660887_0.7400376563978659"},"_hasShrinkwrap":false},"0.0.14-alpha.1592922567.190":{"name":"@scalecube/scalecube-microservice","version":"0.0.14-alpha.1592922567.190","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.14-alpha.1592922567.190+d63dca7","@scalecube/cluster-browser":"^0.0.14-alpha.1592922567.190+d63dca7","@scalecube/routers":"^0.0.14-alpha.1592922567.190+d63dca7","@scalecube/transport-browser":"^0.0.14-alpha.1592922567.190+d63dca7","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.14-alpha.1592922567.190+d63dca7","@scalecube/utils":"^0.0.14-alpha.1592922567.190+d63dca7","rxjs":"^6.4.0"},"gitHead":"d63dca766ce4bbbedb7800772ac9cfb0fd3933ce","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.14-alpha.1592922567.190","_nodeVersion":"12.18.0","_npmVersion":"lerna/3.19.0/node@v12.18.0+x64 (linux)","dist":{"integrity":"sha512-U9JD0Ie6Jkh0pKu+P9V/RcO6eHNa0ZooYYay/9PMy21iqhhkYulau1sTBzR82SxfzonIJNt0BnDsVXlx6ZM0OQ==","shasum":"d59de795bf0be734d747d53de8c29f7e79b7ce7a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.14-alpha.1592922567.190.tgz","fileCount":39,"unpackedSize":176354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8hHiCRA9TVsSAnZWagAAiZMP/1TrFNG8puG1VYw/9eGo\n4htBK1b3kuS5L/sAVrzvtrTz6cssCLfNR47drtsb4//YwhnpX5dJanhBQPCp\np3eLOfAL21GrCVwp/8KJZ1AY1XqmW9LoPNvHi8y4ZQ6XmRm7ZlyCjBDTamNL\nbbFyON7PJLJb94+sNiFvQLuq2OZEzNARI1Fs8hbVhhbv1RIaeHZ+qpI/iO9g\nA3Wkxs/O0oxoKBDfQXAjliyZmm3GtBRmagCKKsZEeicgUxryepTwXV4LyCg9\nwgiKdXRIIwRZiuXc8K8KfwK2XWzUhVimOnmr8bvsztI+vjR1xw7NyXeVlIrv\nXq6zgPtI1pxOfdhvgGpNS6mgmFfD4Po2pteJMC4XWwO6qcFtbzO/D2b7tucN\n0nWfYbOuaakMZ0648+Q75mC0hza0sAwVHBvGOTcPPVzmk1s8AzVsyCzcolPH\np5lvExF5gqSi8V23dHExp0uxPzVbaqy8WceZFAgJu2yrdgdWrKsMhQglOuOi\nheYbrzkCZ8oWAWkcTcMaWEYS6NbxYqn64a8GHnVc11U4tTr/CgntKYCwdbGm\nXfkIKXE7ACDC01xjAvTanM+8Yf6+a4z7KQwBw+N7/D3o6O7KUCte48gqDfpN\nnUczrLXSPVioBMHQomlQBN3+UsmIzD0SWowfhsW9eMiCDBRix+OolDgyuNdM\nNdRY\r\n=XbQr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqoXNe1eK46Zv9pBdBWKjfJB1dakKVvKz7Lj+HWriiVAIhAIR0fZ2c3LdyqHv/TRV6JAHwBaeZsyfRvQ6qFGDaQxlz"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.14-alpha.1592922567.190_1592922594470_0.6039191030125648"},"_hasShrinkwrap":false},"0.0.14-alpha.1592923933.190":{"name":"@scalecube/scalecube-microservice","version":"0.0.14-alpha.1592923933.190","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.14-alpha.1592923933.190+2a1a5ca","@scalecube/cluster-browser":"^0.0.14-alpha.1592923933.190+2a1a5ca","@scalecube/routers":"^0.0.14-alpha.1592923933.190+2a1a5ca","@scalecube/transport-browser":"^0.0.14-alpha.1592923933.190+2a1a5ca","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.14-alpha.1592923933.190+2a1a5ca","@scalecube/utils":"^0.0.14-alpha.1592923933.190+2a1a5ca","rxjs":"^6.4.0"},"gitHead":"2a1a5ca5cd3c6e131a136475a2c544f27f518541","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.14-alpha.1592923933.190","_nodeVersion":"12.18.0","_npmVersion":"lerna/3.19.0/node@v12.18.0+x64 (linux)","dist":{"integrity":"sha512-M1b5CeRP5yUCevs2NODufd24kSj+O1Mjo5oZTft7LarcikwqxJvRJjjfSvklEmecszUpU/G2LoRWwJDDQt5ahg==","shasum":"8f4a5156f195ee19173a474c51dac829661f70c9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.14-alpha.1592923933.190.tgz","fileCount":39,"unpackedSize":176354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8hc5CRA9TVsSAnZWagAAY+cP/iGwe1AAFPc0xp4pY1YB\nv84bkcvClNTpbxgABPZp4tTtqmeohuKuvzCZEkzKXIzwgr2xaaMYFoWhKUNE\nXtPuVU99n/R/2AOJEU+S4HVABEF3mjdQJOajad1x2t4W8BkK/4rclonq2WNc\nh7LutFF1ou8+t328PLpKJsIEyR3WVygQFjA5VcYz+iX14vT1kTThE9cidCkq\n1HDAmS6kBUkj7lAktDJU6LUV+EZ9P17sp+XnwX/Xomby0nGJ9KYr0vipH86n\nbu+XejeNWVG47bAFt5Lu9F6xiJN8G7JzI8Q5oHXVUX5zucj3usoElr/k5THa\nBW+I09ZX8R78RN9kjY9ynOobUlFXwJQ8/uPbjgqEpvdQ+nxP/ix9zOX0Vqfg\n3sNv2lXMH97usU9LjjSVw9jb/bzEKudRYzHmrtX8lp+q6+k6TmJtYdjvdZHM\nHwmo/GYKTYWiOW7Ag+kzpfr0w4Pj3ucuASV/5YXeFNryFQA+gyEZtj/w10ON\nUOe/NxVUFNd5vnRvIgzpLZqe1AxvgizC4QaXwTlD/uwze7dbTch5f6E07LCi\nAV4AItCwv5BDyTGuWC5niBFVYiBzAlTPqYXSgswsXRVyBsDa6gKRM9HrygFl\nMwoEhFBSVbo8VPHJ+qrOEGGK/Ad4CriFTQO7imnTzf1p84uJKqB56i98WE3i\nRJNj\r\n=ifbq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFj3nOwWnTsoSIMtjUef/ElLAfaIQH+OasLpyrdudj/iAiEAh7WrsGF8XzD1XjvvSYahCRm1HkjYHzxjCu5u48qmA1k="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.14-alpha.1592923933.190_1592923961243_0.7158818694233828"},"_hasShrinkwrap":false},"0.0.14-alpha.1592926976.190":{"name":"@scalecube/scalecube-microservice","version":"0.0.14-alpha.1592926976.190","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.14-alpha.1592926976.190+032e955","@scalecube/cluster-browser":"^0.0.14-alpha.1592926976.190+032e955","@scalecube/routers":"^0.0.14-alpha.1592926976.190+032e955","@scalecube/transport-browser":"^0.0.14-alpha.1592926976.190+032e955","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.14-alpha.1592926976.190+032e955","@scalecube/utils":"^0.0.14-alpha.1592926976.190+032e955","rxjs":"^6.4.0"},"gitHead":"032e955f1f3caf0247cbddece6cbab43c67f05fe","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.14-alpha.1592926976.190","_nodeVersion":"12.18.0","_npmVersion":"lerna/3.19.0/node@v12.18.0+x64 (linux)","dist":{"integrity":"sha512-QcHuX76KoFFkGvFyM4Mm1g3vi/Ymh9K3pLevWXKBC3djKo1O3zZYfLXrm9M/PuumWsml3VsFcBw+58PCz3Ou6Q==","shasum":"1e6b93dde53321cd98974fd453538a93262249d0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.14-alpha.1592926976.190.tgz","fileCount":39,"unpackedSize":176354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8iMWCRA9TVsSAnZWagAAKWkP/Awi2bse8P3xdhm4sgSv\nt5VopqI39jOs51QMDHi3/xaceoPfy5ehrlbTXZNBWnkGOcysDeaqz/Ahe3cZ\noq8dqtWvPQdS5Iu/pZKuGDOuZ5a0Cc95mRKoGbE/vM4j3J+j21LdQg+18g0M\nhWPd+jlEQqkPhERxf4ykaSL4ughDrOihYoRyS9MR//tWDYJdA4aOkQyj+n0e\nYnJ8Fq8rkub98aeUvCaqCnEm5RJkcUpYPpoHGMkWYuFiucu74rKBM26wkvS8\ngXY2D56T+roKR+Yn1xUYXvCa5/a0x7EBtOUUzwems5koIm3Ny0uincSU5A9R\nGJAqL8YEVQT7C5AyRTlaEWxwkf0/JixIeLCu4jZiRBPISDw9gmU+92STwt88\nLaEjIOKRqMpJ+ulApmFn69MRfu1IQQlAPhyopLMd2LoJ3iKKgJ2T5fT8OmBk\npCKzlxku/nh/2eKwJzibzNjYzicsyeE0/u87q4dc/eHdBZX2YNoAegSNPFaj\neQVJnZ97gUfDkiztO4mwAtkLyf++wTUNLC+xQ8saM9xV92frqTFJ7ZE9oPz1\nJpB0tuTyxq6sZ/h8S5MtRlM9YmhbOq+oPlyopYYR5s4fOdbRAxCfG4DEslq6\n7XX8z7Ns/7nE46jrEjFwkeA6ViGH02pQmGZ8inQOMyyb2QhNLWKbONi6X+hB\nH8eO\r\n=Z4nZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7ZLtNisMubkpj51EWlkgBTsWpZNHiVCbY1u/X9OeW+gIhANw+qp+tOwHmX4wRXBA2cCLLTmkSsM75foeZBtvtcDbu"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.14-alpha.1592926976.190_1592926998001_0.6828172660217482"},"_hasShrinkwrap":false},"0.0.14-alpha.1592993507.190":{"name":"@scalecube/scalecube-microservice","version":"0.0.14-alpha.1592993507.190","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.14-alpha.1592993507.190+3ccb0ca","@scalecube/cluster-browser":"^0.0.14-alpha.1592993507.190+3ccb0ca","@scalecube/routers":"^0.0.14-alpha.1592993507.190+3ccb0ca","@scalecube/transport-browser":"^0.0.14-alpha.1592993507.190+3ccb0ca","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.14-alpha.1592993507.190+3ccb0ca","@scalecube/utils":"^0.0.14-alpha.1592993507.190+3ccb0ca","rxjs":"^6.4.0"},"gitHead":"3ccb0cafe5faaa3f254b1aeb8202803814c6896a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.14-alpha.1592993507.190","_nodeVersion":"12.18.0","_npmVersion":"lerna/3.19.0/node@v12.18.0+x64 (linux)","dist":{"integrity":"sha512-wfxNhl3LVkIr8t44AZTX7v9mIysMQczGKJqwyq45TCrIb3lKhJoOTjRSpG/sl7xYZMfOPjtb5UpPBDm8X/htug==","shasum":"34e08a5ba4ad4de3b802cb28c7cbfaf577627b0b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.14-alpha.1592993507.190.tgz","fileCount":39,"unpackedSize":176354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8yb6CRA9TVsSAnZWagAAQMUP/iYlLK1ydf+yf0mlK6D9\n+FdxAtYC95z1boCdASVTiFRn/WF9wnpg2QplgC1qCuIn6oKiFDNnGAsBBjIr\nn2GFmKfyZGDv3zStjAvf8eTayzVQtDDzRSUhuAz8fZAzGS2wLjuKvyPUyggy\nJhlV5717h8wgaFYQZ8H+pAEPJSk8U6t4io09fvrWcCTb1I1AVyq9IN5SAJlB\nmbCpAXxBtV0U4artoQ+Y57sEPRpsSsJc012tbqFuwe7SvybQa/iSSz67He5J\nNstJDbKiHhB0yifpmNzjjy4X8cVofyXEqRoC48mZR+RtQUQn00YEeCucPN45\nwXk00kqCgNUWjD1woLXCEKO2tn0UjccJw+VsE0qhsYxfYzzlls3RtuRxbN5R\nX18gMr/heCoER1N+4r+c6Fj9SsGZ+aweEj0XpSJdMo75eX8hC1L/aCKELMdh\n8qFcGjkY5sf7Y+XbVBW4kFULCDFLDCf4cu/GcH/prpnWsGFBSCBFWuotw3tE\nKotlBFFA6gZg02YZTqqGgyljHt4MyO0+gGBIaubmNyw7u6ZfmnX5FMtz/53h\nmdgzr66dxPyI3bhxaEPYmSk2C9YWqgVprVSJ/CgVHg8s2r+T3hc+vyiYnGef\nWjZ63zLrlh8SA9Gjf+i7uyVOtusfGrx4P63nH5bHDGApKtyIfS0o4dLYCW5B\nYCdH\r\n=ON51\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZ5+RGnNrwxG4TPQPhrCGwhdOgZZcnCt6iQC3NbTScgwIgK0b/ZLIJxD9iz4SgNf4cVC7af0rtVau6swz5n1sM1W4="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.14-alpha.1592993507.190_1592993529986_0.45452913348077373"},"_hasShrinkwrap":false},"0.2.2-snapshot.feature-release-fix.1593006306.0":{"name":"@scalecube/scalecube-microservice","version":"0.2.2-snapshot.feature-release-fix.1593006306.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.2.2-snapshot.feature-release-fix.1593006306.0+e0ee743","@scalecube/cluster-browser":"^0.2.2-snapshot.feature-release-fix.1593006306.0+e0ee743","@scalecube/routers":"^0.2.2-snapshot.feature-release-fix.1593006306.0+e0ee743","@scalecube/transport-browser":"^0.2.2-snapshot.feature-release-fix.1593006306.0+e0ee743","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.2.2-snapshot.feature-release-fix.1593006306.0+e0ee743","@scalecube/utils":"^0.2.2-snapshot.feature-release-fix.1593006306.0+e0ee743","rxjs":"^6.4.0"},"gitHead":"e0ee743ece4c7dac4e227f639ed7247ab8140fe0","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.2-snapshot.feature-release-fix.1593006306.0","_nodeVersion":"12.18.0","_npmVersion":"lerna/3.19.0/node@v12.18.0+x64 (linux)","dist":{"integrity":"sha512-5B6WrZbPxM7ve/bC6TFVmBpLsWShm5Gt683giZQEzoVCgujJKEy0dBjB3MO7TWn8aCCI7LZdTBJ5bNY7Zf9I7w==","shasum":"705c903699f386d2467e72e979fe3559296ec3a8","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.2-snapshot.feature-release-fix.1593006306.0.tgz","fileCount":39,"unpackedSize":176494,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe81j2CRA9TVsSAnZWagAAA5sP/3xVAdEcHsqlBiUylnJB\nj7k7LrRKKg9oi570LOJx8Z7KAvXV4dA5cghVYU1rt28xDYRrETuTd6XxUMms\nPgvJYSrYG9LDWx3vo2hxKAyIjM5hK76omhcxg3Q5MQQ9iBcpsB86XvxBT6TU\nkqRy+sjvshDkfdD15SYuiTyzJQVb57me6YOR9lqaAMawZ1fvbb9uFLNABJ9z\nGGHeP22K3Sg3P8q93dTOABKN+V7KSYZ0dEJ4VUPufvO6RVOUSQvrmNrTXlzH\n2ewZdJCz0KnuLGiEHVKtWVXriuB9Tlvg0gG/dA1gGU5UHB5M/yTF2FxHXEtm\n/mcti42bPFhq7qwX0IMElckziIudr049p0NpD4upNCZx4GDN1agjS96l0Als\nmA7fAmQ2WxpIugPUheXODigVRV1HYoG1O5GlDKHZRvnIB2+YHBfutwq1zkvT\n+TlgWRBHgk5qn1BeBLcUm4y1QlDXuQNC142v8s13UyG8guuCK5FjxTZCKEhs\nJ+WU7hKDI1FhV4yuBcxRDXcM4Xhi2C86FoSM2/yRDikZe2/ouEMtru0hgccF\njkukNu3KAYblKXfVTdKi4Kt21EpYpfOhJ0TRy9A8XlWtU8VOgcA7GhKgaIWX\njOkTp5EiMT/n6kg8ScElI1wZJJCJLd/LWocUsz43KCAFN46s9iifJDzppwDu\nSlkN\r\n=MiOn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDQ/J6/+QSTC/rOr+ZqbPfYIa5DBspfxSN+cQ0cXIRNxAiEA7ubFERBAV/fHVESo0YT7uwFH5AsA6kPae6hHMrdBDgE="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.2-snapshot.feature-release-fix.1593006306.0_1593006325612_0.22065656992317573"},"_hasShrinkwrap":false},"0.0.14-develop.1593012504.193":{"name":"@scalecube/scalecube-microservice","version":"0.0.14-develop.1593012504.193","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.0.14-develop.1593012504.193+b48e069","@scalecube/cluster-browser":"^0.0.14-develop.1593012504.193+b48e069","@scalecube/routers":"^0.0.14-develop.1593012504.193+b48e069","@scalecube/transport-browser":"^0.0.14-develop.1593012504.193+b48e069","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.0.14-develop.1593012504.193+b48e069","@scalecube/utils":"^0.0.14-develop.1593012504.193+b48e069","rxjs":"^6.4.0"},"gitHead":"b48e069bd113e63f217ab906e2cf2177c034827e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.0.14-develop.1593012504.193","_nodeVersion":"12.18.0","_npmVersion":"lerna/3.19.0/node@v12.18.0+x64 (linux)","dist":{"integrity":"sha512-rYY1k9AL2QnR5IA40VTGModdGNYzr37uMasSHnQmL/egx4ufIjYQXhEvVXMJiIuJs/W4htjOnV1eidwIIQ9M1w==","shasum":"2476a62add00dd364f21eb11bef153be8d9478fc","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.0.14-develop.1593012504.193.tgz","fileCount":39,"unpackedSize":176368,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe83EvCRA9TVsSAnZWagAASBEQAIpEntl4hohxEE6Gz1hB\nafLQFtsH/Gi4fZh4v/kFNoVmgFi8x7YF8fcWDexEXe0FK/n5YS4qhNgCyhhF\n5twZejeoChr4ZwuTUl+TCRbQkMgXuT0vsyIjz33NIFbND/iM37n1dzOj9tvg\nKjGB9RsQ8wQx3F+xmzq8YUROTY9tIqGO5l6LWhgUIpz08gMLQ48P4PGO6JL1\nb/+PZNW+5EffshKqqk68VPkTenRr/Iqs3EQtGH9NxSU9p1hYvqNBKM1kgyIj\nLeskqUvxiaKO7dDlRLekJgWuhSCwUqMXnoi6XLP7MMdSROEp8Qd2hUtrfhCe\nlRNtG29gaKHiB4LB7oyfPu9UDVA2IjNEbW3WDy0Z2sWOBq4baRv1mkZL49uP\nW9rwv5ogQrtfSRUemY4qKSslQIY76P2HOcdX1ebIpzHzviUyxSHuCTQChwNn\nfkRV9WqIosCd4gHz//wmlv6utfK889S1KzPC9eQRGGSNwM9OCmxZvokiXOeV\nk19eugekH3XK2+sEYLvHYyqsTiD0SUTxDo4ex2mXUgbPO+mY5s/B+wBiZb5u\nEolB8T+TK4jbdoVexvWnaruhrDmxl9GkvGxSJwH6nVK5f7abB2YePPKcJqUr\n8QhnTXoDysZv0PKkqrVN3JvWpvi4Ta8ympMBPpMXrvLDLeQhE7Dkfsf+5ecr\nOcI+\r\n=qeeT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEguQ0tbRk+q8CkSxLcVho9jkQtOZkpmvAnf94suXquRAiEAw+15NsUDfTCxTF7VMBtrAUY9ONRKmioQK+I+tSe1WeM="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.0.14-develop.1593012504.193_1593012526784_0.09009806687172328"},"_hasShrinkwrap":false},"0.2.2-test.0":{"name":"@scalecube/scalecube-microservice","version":"0.2.2-test.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.2.2-test.0","@scalecube/cluster-browser":"^0.2.2-test.0","@scalecube/routers":"^0.2.2-test.0","@scalecube/transport-browser":"^0.2.2-test.0","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.2.2-test.0","@scalecube/utils":"^0.2.2-test.0","rxjs":"^6.4.0"},"gitHead":"77205050f65e00e9de5304b9c10ad1839f543b36","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.2-test.0","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.19.0/node@v10.16.3+x64 (linux)","_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"dist":{"integrity":"sha512-+V4ayVdMSLFDb8e/Er+E0fA1wpNIOEFPDBRXBslCWvK4M5AiFt9UfyWRlWeEXHZnDKb8byQ6n25Idr49rlL5hg==","shasum":"5980e18ad6b279a626e55dfcb5646ccda647929b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.2-test.0.tgz","fileCount":39,"unpackedSize":172787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe83f3CRA9TVsSAnZWagAAsggP/2Q+ga6uKTHXvWtUfNjU\nl5ysg22Y/czaCZuLYXp9QLZskeO0sPkgn8+yKsQcb8Nxcl44GsxmRjWonsw0\nkAOD6TyQe5eP5zfYnuCKe17Shtlqq2G+5h+ynSfVCRZY/Yfm3M1eRkpOyCjo\nkEZTERTYDM4QET2V9L76x9dkrn38jfg7mYNYmaNX5Motf9PI5yfqHAVCTGO2\nFMl0tR7sErjuthJw5e4ZaEjy7oG8fbSe5NTtKgpNMWiIH4Isw/nypUWIZdjz\nPclPdSaaDtqos0psMZZdagr3k8HBs0NsUL6mkHNW6HsukUGwXvtqepvoa9B6\nxWMIB5qAywClWD+Ne+/LYOKNqs2+gIJcZ9RAkqv8lYb+HOL1Z9Nk1PdyOQIn\nwFpLOjAQ5dUjc7j3vq/NpEJ9Cr50hxjUb0ugImOe855bBaqMOk4fVNb8f/7Y\nLNNmy8y3sLslzMrpFTVq7RHPZmD/vhGzLA+LriAJLuHnvjbE3VCsvw3ZC7yA\nSR6gdXAqRiKzZi8Zx4pCqYps40YFOsl19KPYZ3qXRhNeAjvPgE/9xeYglwC4\n93Xl+3LsUN0y7Q8vNQ81u76osOOWvKMj7aXAVV5MG1m9sNx4QZQNBStr/ds9\n7KE+8BSKjMtq0SpfLdeet0sssk0jWgW5qFAlbPCnpqRVDEuKZdO9i1i+lEPI\n6+ga\r\n=ZElm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC88vdBGiGLASPP2mMstQGkEyxiYilPa3fnGP2gyNq5bgIhALzeZFYd1JVNBVlntQZVzmE/TYLpgAfBKvBXxocxjK8N"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.2-test.0_1593014262495_0.3497079406539041"},"_hasShrinkwrap":false},"0.2.2-snapshot.feature-keep-alive-config-for-r-socket-gateway.1593079184.0":{"name":"@scalecube/scalecube-microservice","version":"0.2.2-snapshot.feature-keep-alive-config-for-r-socket-gateway.1593079184.0","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.2.2-snapshot.feature-keep-alive-config-for-r-socket-gateway.1593079184.0+7af08e1","@scalecube/cluster-browser":"^0.2.2-snapshot.feature-keep-alive-config-for-r-socket-gateway.1593079184.0+7af08e1","@scalecube/routers":"^0.2.2-snapshot.feature-keep-alive-config-for-r-socket-gateway.1593079184.0+7af08e1","@scalecube/transport-browser":"^0.2.2-snapshot.feature-keep-alive-config-for-r-socket-gateway.1593079184.0+7af08e1","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.2.2-snapshot.feature-keep-alive-config-for-r-socket-gateway.1593079184.0+7af08e1","@scalecube/utils":"^0.2.2-snapshot.feature-keep-alive-config-for-r-socket-gateway.1593079184.0+7af08e1","rxjs":"^6.4.0"},"gitHead":"7af08e12324bafdf84f50dcffbe449358d6ca164","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.2-snapshot.feature-keep-alive-config-for-r-socket-gateway.1593079184.0","_nodeVersion":"12.18.1","_npmVersion":"lerna/3.19.0/node@v12.18.1+x64 (linux)","dist":{"integrity":"sha512-i8Ln+daAAPmMiFPVnmU48AkDqhJwnwqNIfEh2CXR3Q2osVv86RDvy6VMReJZHgjfT+GZmx4FUXT+UQEe6/vxSw==","shasum":"a6883cce2aba87f6c0c34fe334b93331bba7ef11","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.2-snapshot.feature-keep-alive-config-for-r-socket-gateway.1593079184.0.tgz","fileCount":39,"unpackedSize":176683,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9HWmCRA9TVsSAnZWagAAScgP/2oVdMLw16zzkeiQEBcR\nLXc9YcVOioxAGji4gns60cCZ7pQLAyCuVYk0aY+zsczpVb0G3krgTvYjWa/b\neo/xRe1+zIu3smM/Om2VPoJYd6QMqHaBz3/31EgKiJ5GjjcP5VEdwAsRn5vB\nyuU/fty2jDrwMpv6XZGyWWwbSM5sOfSiw8FY8MkC73bsWTN9T49GyrHwkrKv\nNnw8jFgr0NzMrrN5C9Af7Xy8Tu1dgz4SbR9GUHXBurmEc/2m9gxIs3WNcFNO\n9gGGxiHiKUhhsbyvOcXaIuaaGg5ku9gcI2gwRR5Nj7ussjWtuC8DqZZU4oew\nKZUk1n1JWaKrrosxwKPXBlQQUrjERxdn7pmUDbDBxhGvVMdYwY3+J+D64qjm\nKNHpHR0k83mbTf7LqF8ROuv8tWIKqd+Z7L2gVWRlOcqNfLI07Z31FNfL81vI\nJ37hTThofYXsHYyjdEzjZlMyxNoQDRLjUHbV3NJyZAHjqpkZS65JcSfgbFT1\nDfqFsXoXAgM05LczWWNCKm+VtjsHC7zHhK8Vrelgf2S50OiuCns4hSqCkhmJ\njkKi6MuNPhmSZwSnrgaHvWJT897P63/VC23D3YwfuI34AG6hf9aa2fTzWCcy\nDW0pW7IganZdY6cfJC0N555YOsa0/PdnfX8med9jMn4A5EIQEfq7Zh9qphrT\n5cOn\r\n=BTy7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuFiB6JxbrJq5S6L4sUuZ65IwU02mrhdYoPL+CJ3kTkwIhALrZPFPkY8/X0ao+5hym6ck4TZkhzMGQow5X5MCWpFDc"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.2-snapshot.feature-keep-alive-config-for-r-socket-gateway.1593079184.0_1593079206015_0.1348069106588201"},"_hasShrinkwrap":false},"0.2.1-develop.1593091225":{"name":"@scalecube/scalecube-microservice","version":"0.2.1-develop.1593091225","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.2.1-develop.1593091225","@scalecube/cluster-browser":"^0.2.1-develop.1593091225","@scalecube/routers":"^0.2.1-develop.1593091225","@scalecube/transport-browser":"^0.2.1-develop.1593091225","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.2.1-develop.1593091225","@scalecube/utils":"^0.2.1-develop.1593091225","rxjs":"^6.4.0"},"gitHead":"74d3197c5963744d425e5e7ade6a308b63e9d1b2","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.1-develop.1593091225","_nodeVersion":"12.18.1","_npmVersion":"lerna/3.19.0/node@v12.18.1+x64 (linux)","dist":{"integrity":"sha512-UoKLbLvxzLRUtQ22oAzUyOUoOguh2MpdCCItLnGAcDK8Gnn8TJqeDVSNpSObaqTo4mhRTrmTZaFHubhW+dUHgA==","shasum":"8f91711c3833b51988a31ea4bacbfddb4206e9a9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.1-develop.1593091225.tgz","fileCount":39,"unpackedSize":176277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9KS2CRA9TVsSAnZWagAALI0P/1b+fVAito87ERUV/bZD\nWVlESohpSy4AydQ2+Y/4WHtVu1NTK30zlYcH/LLgMvAflB/lDwozpXwtBozM\n5n67ci1Fj8IyBR5oybHsSnKMgHd8Io7SXPTEzmxDlQndqCxh8qca424P4Dma\ngCxxlOhPa9PeNfgY6Y6QS9QHcqGQKUTLgqJ5krKerUSJyHqQQ0U4hQDI9duX\n0FhBK8eKf3904HLhJM+0EcG6HzQ5cehCIFC5PvU++LNjNf9pg3ThsigepJUR\n+WbEt2TOICYp2eO8/RAyhavpmkh5eeSQwmjmdObknSo+rhRh+jAs6OeRQfpW\nlNDTYDBMiXBQ7OzfjBXlY3+sInkboZdYOTv3EDbgtgTv4AXyIxCa+q4tRMRy\n8B2KdDsJVu8O0Fgq5zALdgmt5QO+xW2qWZduzYcwS0Miy55sK31mZu9rgCnJ\nk/pilvsafvEnsCO8S6SIMdSrFZuxcfz4AZIl3YkL3VYg2yi8ZJ6wUopVp8K8\n9LJjX3hYfiWb6ky9vM+F82kSRYfzcDKzmmSM+NJQ/vCFZ+bwSFtEfRaAkVXc\nFFgafbx/gXH7J5FrW5HPHD34OBCPOzRJjvLILyvLMpD8Lw4x0JyD9Qr8DzbA\n4bBnd+u1nBzxaSBsWI93H9odDYjURWBiszqkmHLpjWogXN2NcLocX8taIvEj\nuHtv\r\n=5pUn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEuhsm2eRlLMn4cHIYHWglynCbMVsLqqW2L3kwV4fmwyAiApO5qvX68/6SNtjnsKo5nTk2g0RlK62pfIGWOpGzcxuA=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.1-develop.1593091225_1593091253730_0.4991854041954453"},"_hasShrinkwrap":false},"0.2.8-develop.1593098019":{"name":"@scalecube/scalecube-microservice","version":"0.2.8-develop.1593098019","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.2.8-develop.1593098019","@scalecube/cluster-browser":"^0.2.8-develop.1593098019","@scalecube/routers":"^0.2.8-develop.1593098019","@scalecube/transport-browser":"^0.2.8-develop.1593098019","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.2.8-develop.1593098019","@scalecube/utils":"^0.2.8-develop.1593098019","rxjs":"^6.4.0"},"gitHead":"242b2696983847ad0f9b896af4b02c9e826bcc15","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.8-develop.1593098019","_nodeVersion":"12.18.1","_npmVersion":"lerna/3.19.0/node@v12.18.1+x64 (linux)","dist":{"integrity":"sha512-X4LtN3e0lNi/pyY6JcVmsXCctKZrMUJOGVsieEgMKvpqdCO+Uummv6fyMwbX/NBggE6+k+PmSi/d7VZeIYLXUw==","shasum":"c9e44f7b79bdad82716eba98f6de141126554f26","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.8-develop.1593098019.tgz","fileCount":39,"unpackedSize":176277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9L8+CRA9TVsSAnZWagAA/D4P/3PWxtHmW0BbSsGwSqv1\nx2f06WCVFtKck/AilCwAywPMRFfcxocqhXYlFDYN3mmbMklJRYVeLbNHpnNL\nJ3yqPnQzgIiWvIuIP0T4Y6HXTW+eO0mIm2XAYr+tlQ6iz67M4br7Jg7pKcfD\ni1tM4REIMLVLyVlhuURX09wEltwFlmnJiHNcCzNhiGUK0Vw+x52aYP8oHOtY\ntqucN/S1f/mB9S4CYZzYVMn2AG6JpMH8Au7u0DHTnOnpJSWO4E0dPj9RYsN7\nmo8ZZRSQmx0bsGwVyHH9+OQSxlM2jQkLcaMvniGJXJbEo2rY4NV82eORx6MS\nHqayap13sdQ8QzoAYZlAYEK6RkvqBs4CwnqtJ8Z6i+mJrRx4wL7x7SvSlSfK\ngTs6EkIXIeGQEMgfBACl3eAHTR+9sgt4eF7aj/mxIkMXLCsS5Jz3Rs1Xmzv/\ng/dxbAAkwIGXo62XgpBd+25XmARpU+28BiT01+E0xcc9+4Vf8Z7PoiAI4+GU\npc1Cv6gHfC7AePbd34UzHBwix9bKQeUgxFrRsyi4pdmJaHIKqQEBjFZoJ8VI\nvG/jpve1+0GWxaMnrCjAenCdcHORMpFEtu1dVOSZh8t8MWWOw2XuCNQHDAGX\nJVSHhsifAJr6Djd5P4M7/J1VB3odFJ6mFtbUCBuujkZN1znLEXmjUFJEuidk\noC+g\r\n=UIbj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAxLZoly9PizA7RHCDC+9ekIrOlOCj3mIS/ImCeGxNxGAiA27o/R24CoVXveUnLJB9wQhBfJcxITyUvrW34I4xb63g=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.8-develop.1593098019_1593098045516_0.6731850731691409"},"_hasShrinkwrap":false},"0.2.8":{"name":"@scalecube/scalecube-microservice","version":"0.2.8","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.2.8","@scalecube/cluster-browser":"^0.2.8","@scalecube/routers":"^0.2.8","@scalecube/transport-browser":"^0.2.8","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.2.8","@scalecube/utils":"^0.2.8","rxjs":"^6.4.0"},"gitHead":"b31727b4e3710fab5d6e99e7a4d4a39e44cd8da0","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.8","_nodeVersion":"12.18.1","_npmVersion":"lerna/3.19.0/node@v12.18.1+x64 (linux)","dist":{"integrity":"sha512-glA6YVq+4tlrcVOKPq5orEA1SPgd6K15/gAdN20NTmnjNHD9HGjYOiFpWtWP4ZRZ3nOjh1/oSVsnJDdlnIrdZA==","shasum":"311173bd4acaceccbecc5b5e3d60a03bcb2a2242","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.8.tgz","fileCount":39,"unpackedSize":176144,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9L9kCRA9TVsSAnZWagAARCoP/2XmyQb6Fsl0vWJCBsCE\np+RftAvbcbY0Q2zrSjPDFTv0JLgBqXZMI32X/8hJOv2E8vOEX3CRVixPGovR\nFPfvAsYcih3a0XgaSKLr7hJwz8g81y0LLyitprfqu57dvODmVQF6Cv6jB2+J\n3fgHPyCoqFIHZx5hxHzeoyDP8WGXh0migUwg4HYb7Zif8pk3ngKPCWVJzuaV\n7e/R43Yt0JEMDLULvonzr9bKf+Qa/sN8Ie14bECfaRIp4FGuY1LxnTl+iSok\nb/rAxlFDyPjAhnMuUytaksH9DyfliziPNl2E/MILm8iBPVAjdNqNHgMOPzxJ\nkRQry0ibgCpj6sSSJxGur4L3nHsYSdnYjOCV7qmAgQmBl9gckqzuBgsBeorU\nhp4sfejWJ1cgdF+tGUJyiykE6E3aqlNGeBhbPTicQZHCUaSyFW/ELmWrCoJ7\nqd4yQQz/+tMT8f4ICqT4a1RFzRJQz8Dv3l0pKI5+K8vWoyNV+wa3fZtL90Q/\nTUZzUXvF5vEQDDU+uX4a1nyCC6YYp/pbhWaa1M06uxTc9kjJurLO0fznn2Pu\nSLvoPrtwR7CsW6C2u2wt1Zh6oh1VLstLmTo61zCD6sucO5YGsqPtSlQ1LMLX\nm4AO6pwmYScjUk9nferl+ioTiwVOkf4HehnUb6maWIS6flZPMc5hleKzSpTl\nHZmO\r\n=jWSy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHVpAVkyC9EggSnm/DR4XA1mG8wGIuVLwyH36FR4HfPoAiB4hJWw3HxVmeZPdwcNN429Sb+g2pG4cwFzHwdbtRhSQw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.8_1593098083504_0.7456704217349452"},"_hasShrinkwrap":false},"0.2.9":{"name":"@scalecube/scalecube-microservice","version":"0.2.9","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.2.9","@scalecube/cluster-browser":"^0.2.9","@scalecube/routers":"^0.2.9","@scalecube/transport-browser":"^0.2.9","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.2.9","@scalecube/utils":"^0.2.9","rxjs":"^6.4.0"},"gitHead":"9f709610872e7dba48270bb4aef7a1cbaa21f482","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.9","_nodeVersion":"12.18.1","_npmVersion":"lerna/3.19.0/node@v12.18.1+x64 (linux)","dist":{"integrity":"sha512-D2JVMgAfA/3PKMo6/z/Hk9S9h6CIwcmDk0tsY/mctxf3hSrM7YOj+2t0y07dgwVVaxsRH/nnzrx2rGsnHstRXw==","shasum":"72c277f795e6bcf36d265a410cc81356fdb111a3","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.9.tgz","fileCount":39,"unpackedSize":176144,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9MUGCRA9TVsSAnZWagAApCAQAJOkqnmLPX0vhqOrStzE\nU2HMD90liTaSvBn8Y8WmrhqAioi17nYiuudSVrrBZnInt/B1K68Vp68w9WC/\ngepKg50+cQfk8umAAnKob7CqhI6EShYhsFnP94EVP8Kye0gPci+32xML+yMU\ng2yarmw7Vk5iddZk37EBiYsDhcOGLGkfrFX1si+6bkr7OyQjamRPt0KIJcFB\n8/3qHXzividhGQJDv/CKZoHcYX/hH6IwK6N7s2Y3jBkkWAm+jtgO2hiG7Xqa\nebj53TRTDbDlBGckzrvdY2D9Ga+LKlb1qIW2ZX1Sr+68lDdB48a9iST7Zy/n\nwNpPebKvwOckiSyXHZaDYtoO1MfHuOxlTRwEEPOY1xMxnOvKX6KDY9Ala05j\nXit5PVITLAqahdENhmefKhQH1aNxUSh6yo7GR82PWfyu+8p8YrKDdZ08vR1m\nF2iFYNdNdaCxsfZPLh8gmywiqEaoHFdQU28O7tQq15mr8GUFaJTucIBkh+Nv\nIKnbG0UAZO5xGMotMIN+51UNJALW/OwvTKvXKzLFMZjzZ190WV73ronTSuPF\n7B0VOWYSAce+KkmQ4xtEIrsmUW7xLMXaTazGcJo6nCLD410eLhBhthBQZt5d\n37uJzUvdzD/9TPgf9UinNMxJVKgbV2EkUCefJrURCUiFnSdfnYo3JS/10EoN\nxwd0\r\n=D3DI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGRsXYBLTu80N5Oq+bdHdL+jVPeVQ1wRcUw4GR8TdLmEAiEAlKwD6RowIFps+Req4jgmC7SMWwhiVgPdgXhdCP3Jvv4="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.9_1593099525800_0.8388086240791295"},"_hasShrinkwrap":false},"0.2.9-develop.1593099575":{"name":"@scalecube/scalecube-microservice","version":"0.2.9-develop.1593099575","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.2.9-develop.1593099575","@scalecube/cluster-browser":"^0.2.9-develop.1593099575","@scalecube/routers":"^0.2.9-develop.1593099575","@scalecube/transport-browser":"^0.2.9-develop.1593099575","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.2.9-develop.1593099575","@scalecube/utils":"^0.2.9-develop.1593099575","rxjs":"^6.4.0"},"gitHead":"32c81e539c5f0360a03ed0222b506acf4e8126c5","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.9-develop.1593099575","_nodeVersion":"12.18.1","_npmVersion":"lerna/3.19.0/node@v12.18.1+x64 (linux)","dist":{"integrity":"sha512-odGYjdNQ9lN/ElTfqcN9bJtSN5VoisG/A0DiA514g3cXbUqNDDE3D7qwh5fhdSpAwpZdYBahqfbFOm/DboTjsA==","shasum":"ebdcddf0502b5e95a49bd3adeeca038c047578ba","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.9-develop.1593099575.tgz","fileCount":39,"unpackedSize":176277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9MVTCRA9TVsSAnZWagAA5JoP/0l8wXel7l3pwjBGF1dg\nEdxPFgC65N+34axc6Pk0/LWFOStjaEY+JHf1VVc/ixN58AVmRPNpxmbz2ov7\n7O8e+4XW9KRRynNmvOu4IB6llj5ugHoDbvn1n7qCmDvXlWgAw6RajSyd6yrD\n/RFC+Vhz/fjusYOTmypEkJl2O8ZktOjyQ542+LLJ5xLOfps2zRiQk4ijEVQJ\nKIDW3aB2P9v6j+U6huocDwqaach6lCpucpaWDORmefGk8JrorY5sSwE/30Yj\nMZ+Dq1HrfqjS38y8LRZTrz+GsNR3430aNFjgIiOy1jCu95njCEQvgR13lGcu\n8j+HFAu8vK5jNDrE4n9eAKHtMs5Bi7a9IkSlaaZdH/5JLTcQZssILM0OZqrM\n5+upl1dQ6DdMw/U2+0iPIQ0mlNKE7/gnLywQ5nsbYCPOfLiPwo/mFrBFBDP0\nMLyBjGy+NmtvdKAfKxWNtZWFK60kFwcyLabLL8d1C1Oy7yvvf9eE84ovGplo\n6tXiBDoYYgJOUEJKwoILr5LWfed8h1fSuL5EPMLXdJJwDx7RVVEnXcVhO1IA\nJ8KY9bPkQhEnE8DPdDaFTJJr7+R9sHGspXq7ZFkYk8fVfhBOAkqRLfM0BWlV\nk6UFkZ3dSKkIKj7rlBf75wEaAcxDM0MsS2PheU38Th0rXwv2TzJ4teFRXYC+\nmyr9\r\n=yDNg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHtNB4xAKkhshbR5oh07NjC5L83LebBRwxuJvMrRZJYiAiBZyB3eQo8slm5HP/2BEeR7Iwlpl4xDQypQwRdYtE1MEw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.9-develop.1593099575_1593099602407_0.9450375025198594"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594809701":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594809701","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594809701","@scalecube/cluster-browser":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594809701","@scalecube/routers":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594809701","@scalecube/transport-browser":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594809701","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594809701","@scalecube/utils":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594809701","rxjs":"^6.4.0"},"gitHead":"12b22c949786c97de3770b5c4d3e03ac4e0e972b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594809701","_nodeVersion":"12.18.1","_npmVersion":"lerna/3.22.1/node@v12.18.1+x64 (linux)","dist":{"integrity":"sha512-AidH5MD/y3Mwk6zwE0OGcAlFT89YEVLZSzxMJUDMauUPwAPlQzDjrC1ulm/zTgSJnxeH5QKj8alJ0XLz8O3hrg==","shasum":"51bc725fef2afb22f0304e819ce1b14c82c69d18","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594809701.tgz","fileCount":39,"unpackedSize":178159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDt18CRA9TVsSAnZWagAA1gsP/iLKQTORhdDBwwe4Q6sd\n1etn6lTPZFM7XxthNymdhwXUEp5zqZMpLDxdwMdPUyELXUeSQJ7MBcxUy/hC\nVSw8jjEIVlk3DspE9kEJ9bBZVmUqOLvmlTMiU44xQxmTzFIk9TYOSFTHm1oh\nlL/P36FOr90/9Cc6oNGtArjOGfZMiZo+I+lnKxY7Kc6LD9XXp02uWbSj1mzz\nnPv2y5qSxhcMeOCWTQFVQvKwAyZ7cZYmJxDOO7c3x1ttuUaCd8UoI1D6CYcN\no6Pxiu7r8pECULeBqTeJZuGUAeK2RQW8nw9kipOQn8zAvGx1b5NlW/lbPuPa\n11TcoARLg0EmoRwuUCSBhRKAwvLHpMTY+k6Gii16Ra2uMHJWMJOlCKBC09I4\nOWDzJWWfr49xJ59IkuwFD6KJPDYWBwbUpyT1aSy302cxmtr1s6ZLpHpl0rHX\npHhf98jcPR7GS9kCCJI/yyht369VfIVHnvrM3s0yQDmz3TO4CarZ2v+hWF7/\n7WPFnv4dwke8Za34sjNscvK6s6bqh7nqgtz6WWkClu7GLg3OQTwE6WY+5jSL\nbAiItGo4vrQU/SETQ9BtZlAqWF6kUPzO94YLwOX6YGvRd/r7EDfL4Th9u+OP\njveaya8QcG7RXT/MCUQYzyCMCwRnU/02Ybb1G3xqX4tIGRUHS3H3NEQEba/8\nH29e\r\n=bBaV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDLmV4hZC8flprXB302R1y/sjD6raizERS0mwO0fNG9eAiAaZxLkSflt+WHozzQ4L0KCK23PiYjpEDJ4LfBzqx4WJQ=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594809701_1594809724134_0.4025599395563495"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594819331":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594819331","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594819331","@scalecube/cluster-browser":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594819331","@scalecube/routers":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594819331","@scalecube/transport-browser":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594819331","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594819331","@scalecube/utils":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594819331","rxjs":"^6.4.0"},"gitHead":"d5b2957b3e0eff996e435db0370e47f81d7908eb","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594819331","_nodeVersion":"12.18.2","_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","dist":{"integrity":"sha512-l7TBFymmmQTbeC9fO/PmbWrlSdr+9VOy2coGU+xkVnJTEpDXo+2SF+rQhvLdR6ivjCGQmYAvdQAM6MxifT7CsA==","shasum":"c79287e5e2b0b3a096bac2a9c783b8ed8ed7a904","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594819331.tgz","fileCount":39,"unpackedSize":178159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDwMXCRA9TVsSAnZWagAA54wP/Ai3ARcbfki1NWARE/Fx\npB/y/81/1+joAcsIj7s0oOA44nfk5GlOLrPOFfVZDmvdZuT8fn1oF/IO3VuB\n5F4fDGr36Zvh+TB1AFYfQ2fZcCWQFoWK5UhxbAwL3UUTzDS44U1WqrMgJ2jA\nMran9T1yXR1jerAtNnwmA9OQiJ5sHpCIWEdpY/RfDrR59ZcmbWubaejWA2mx\nkYdiCMC85TVGwgCCfZw3901Ok+frN1GZSzyug0IrCfU1Qi1p+hXhwSTPP+MJ\n4iMIwvbAf/oXIYGYUCVz2wJbYjzSaSsCMjn0ODkzsJWpEVRuaXib9ehwOivp\nCtuq7edzL90fKH0HQYWOkf+i+oaDRQ6PKBo1axawFtTAfS4C/VJYbK4wqd8g\niVWPhDlTKfRlRB9QhlkfNyuziErqIptayUZ1t4onIclJ8JCSWapdBQy1e9ov\nUaM9D+GkjIxUZvO2w+qiOI7cpulJGiXzD3SEejlqPqJPfAwKy9e5WQGLB9yD\nntXiIN3k6ItW/sXbk+p2YZ7HW+HYl1qD85yEcH57rovYL5938bOzOP8l6mdP\nTCN9qcXJPd9Tylj9PeSnfH5SY1z9SxICbhiWjQBO2eZjhScpIxhEpH2zoHtz\nJy6PX1/D01TX6vNUMFgXBF1q4hZOw6UpCTG433tZl0gQjzrjxIHy/NYYAdd0\nY5VO\r\n=9Wad\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGMcLPnZ6kElM76b91ZOjHzTdk65Uv0yoS/5xCCdIo9RAiAgQMq7hQG/wGcBHykcJtyKqHYjBCd7E5/ThBJJjMp9Vg=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1594819331_1594819350886_0.5549117532565091"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1596043949":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1596043949","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1596043949","@scalecube/routers":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1596043949","@scalecube/transport-browser":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1596043949","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1596043949","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1596043949","@scalecube/utils":"^0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1596043949","rxjs":"^6.4.0"},"gitHead":"02d2e49f02c790f8a71d5df2e08cb8e7eff29be8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1596043949","_nodeVersion":"12.18.2","_npmVersion":"lerna/3.19.0/node@v12.18.2+x64 (linux)","dist":{"integrity":"sha512-ijsanNhr+M41bA/4aOHhFfRCOeFKPIkCBHIWXWX0z7DyXxPvXRU0u3Dxr1TjmOnOFkFhJemf9VKFcGY6BJzh6A==","shasum":"8437dc8892dc267ff151a68874b84d6fd2274803","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1596043949.tgz","fileCount":39,"unpackedSize":176515,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIbLICRA9TVsSAnZWagAA3P0P/3Tleh9aWni5ejS0Mc+s\nY+gADJW/dalxuyd1Si0xw7xfMYLqeDqOfnx+31+UDFr7ubimP06YpPKwXBxi\noBB9phBdy9XbF8FjuW0pe2nhZJupBjAzx6b6ylHrFDh5V33n9Da+1u3fEod1\nL+5AT3MsY9YB/v5pS8SJfvfyt7D/GchEo0kQ95AMJKayNld8FjTUdpPCsSFc\n5kWyOUzFC4qbkkl34Y7hrd5A3irpAkNaLyNAsI+qw7eYwM8Uj77eo13GNlUc\n5dByst8GdylPaSj3CQsaS83FMt47Hf3KhILNeJ/L3iJTfLS1UBqytQglP9SH\nrhQWXL4WrncjKXQQha6s1GWoNqTkP5rZLbDpWnSWwyw99f/e21fHOkRzPZjK\nGhCYP53tP/eiRq0QoIENWY6q5jeQBXVxAureQmlnDt/oPpCWHZ/Va4172T+C\ncNrD4JXkajVQ/oTDWNORIScOTRcMCvGECfIBqNhTCuA4RZXEJMSLtsJUzhzi\nay9dAN1boe+/kYsUzRTf+0xEN//BNG712KXOX5S/3tSSkJKLEcJsBiQP2nce\nY38Wi6aDL8q3uW6oEwHXB1iHnN128QLGoV0jL/P04lU/I/a/obOJGSCJNn1d\n+pGKnv2CwMB4nxllPjTSiGDpp8WsaJ/GvsZ2gM6LEbpiFTSyBQzAsCZ462jJ\nG13B\r\n=2+Kx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGFvOTr1Vs/B1ueYs+mDqv/kmaYJumihQ4R5MECjTmVwIhAPVEjOZ2ICHVqo6E/OJg0hx1jD1jx2ZRQjPMY21b+AjV"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-bugfix-api-missing-rxjs.1596043949_1596043976404_0.3195929171968914"},"_hasShrinkwrap":false},"0.2.10-develop.1596044522":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1596044522","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1596044522","@scalecube/routers":"^0.2.10-develop.1596044522","@scalecube/transport-browser":"^0.2.10-develop.1596044522","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1596044522","@scalecube/scalecube-discovery":"^0.2.10-develop.1596044522","@scalecube/utils":"^0.2.10-develop.1596044522","rxjs":"^6.4.0"},"gitHead":"8860b329cb20743494baf1347f887a56f5d82fcb","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1596044522","_nodeVersion":"12.18.2","_npmVersion":"lerna/3.19.0/node@v12.18.2+x64 (linux)","dist":{"integrity":"sha512-qeOPij59P/TU15nVDiiSVPt8/DCTb9txEgqqO5gmSkdyjNLM/N65X9oIXeASsiZ5VmpSu8cVbLe9PSSfaBuqNQ==","shasum":"ee350c1b7ff8f769ffe2cb43ea173f48eaccfdbf","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1596044522.tgz","fileCount":39,"unpackedSize":176284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIbUKCRA9TVsSAnZWagAAxXIP/3CdvPgU5ktqMrseV1sw\nV7xNGWUC7GWsxRxyq53t5qeW+JdNaqvZ89XpH6GmaD3YX5hmZYqoM87iCe9d\nfun8fVDzqvXH+Zzpzw4HJ3NMqgINGK7MzlfnpZ3lCP4SFD2Wum/QAqrdV4X3\n1ot6+Fzsm+pSExo9NbRrip6tjqg7ofBZcqJQBwo+Z46Wh0K7kCm8SC0XiJHn\nIxywr/H8dbQTMuL752TM6EZIdkqTZp15WCyFAXat00tOlmHAtgTHq/MmeiI7\nRQHgpczLozqyWS8wITu+SmCj5oJ89GZMD88LkeFL4gBuhmC5VygNqnQ16uX9\nDoZxnLG03paDxLDFVrRsFen+tMWJybbnZV26NPbgp1TTLl/0R7HR2knhteWB\nifSO+tBwWPH+qs0bYXGh8S4oBcDiWmbVR3G0rSyYH+wN/3PqzAA8pHtPdkvn\nuBiz39gqA5l6KCXV8DnfBhBcFccmHLca5HG+aqlf+aEIoJ5FOsaVxrqfLxAF\nSs/mXPueW7cez6PuYG3qXXxx2VYpE2uOes3JmY4/WaCMka8dX52+UUmSCjDq\nCQ1hpuhgplI0akQY+dl8AlWdDYq5RmGNz6IX352caDcXpmPXj33j4CK0Y7vt\nPMwSDA0pX9xpBxb6Fd+oHXUXNGMnmfLtZQm3ehc+xQ481i08hYhbpesCyEWV\n9EZ2\r\n=Ed6p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDY9icOaeiWe5dIMC/VveYfQ7czbZ0eaqzsUjjnXnKU6AiEA33rDz314enYUjq+6NPqaptRUFCuLhb8GIFAFRcsVp4Q="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1596044522_1596044553666_0.638231524478394"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-addressable.1596051005":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-addressable.1596051005","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-addressable.1596051005","@scalecube/routers":"^0.2.10-snapshot.feature-addressable.1596051005","@scalecube/transport-browser":"^0.2.10-snapshot.feature-addressable.1596051005","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-addressable.1596051005","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-addressable.1596051005","@scalecube/utils":"^0.2.10-snapshot.feature-addressable.1596051005","rxjs":"^6.4.0"},"gitHead":"99045aa37640f5d36b0216d4fa6265d9c986b5b4","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-addressable.1596051005","_nodeVersion":"12.18.2","_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","dist":{"integrity":"sha512-TEW/B2sVmq/9C9dpxnDv4wvkBmAyLxaPhrt/i/3KdbDJ3foa2mDH+lyDtG55IkomJTxVgfgDrlidNEMogZ4rvA==","shasum":"2f6a82bd750671122b78d34b285bbd5895e6b43a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-addressable.1596051005.tgz","fileCount":39,"unpackedSize":176545,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIc5UCRA9TVsSAnZWagAAwz8P/1boMBL9y/Be422JLs/i\nMA1l+gK0qhhcgFNvt/fPH6+k5teHCtrsgLoLPlBDZMLLGC9zz0Zp8G7SWh4o\n3Tvp60117ao+mjsmGof6GEHAexZfYAA8pdcaI1l1BwwsBOrLBnc8EHdyTOih\nyv6y1eJmfEME+NFV4blqyEn5AfcjgZsis7WazHQIDM1jQGWWR9ytvm5LUFrx\nSk5gY81SPJG8aEzKs14J6FD1weDuu09ErjrCeLy58kDAKD9U0VXwWyu4aVmT\nkuBfqG5hlFUgj4z+Z0GuFDi0vHnV5g0DDELGj6Trgri1EPUR67Qm8StCw1Ai\nBWx0xW3XjSqaP1lq/lvsXl7qchhvvJ8W9B4E1s6UA7gUXa0TgkTzLbNjM15p\nFxchaPUZaTwtwX9cOpFOvKSl9MtlL9u7zoXc+veTf+A9+xwZTMCz7HFndqda\nRb7/OVEaLu+aqKiG16CVPN/aQI1x5rY+QXnDsQYj0rxIgrv3CPb8qexXhSWv\nzQdxpabvjhottGmKJtantq1Ej2/jW3kxeM0+xPEwZ4jU5+zxkp6xfAMu05A/\n0OnMaaHWdpIG2Gfw7SppBzSHPyQYkMAmmQKClwOP7Ej2d+2nEyFZhnz3XETD\n8MUUilSp8ynvcs8G0dQD9L3Plb/PH1wedmTXouap4VdeKjv+no6l4iLMds7K\ng/9t\r\n=cOJt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGEBHtZijAm6veJfaPPaL2NVb/iFecSfbrs6LdL2cK/gAiA3teir1JkvXTrAiTZO58DbRhm9JVu2wipzvUn4h/wCIw=="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-addressable.1596051005_1596051028034_0.4678545810469821"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-cluster-refactor.1598302712":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-cluster-refactor.1598302712","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-cluster-refactor.1598302712","@scalecube/routers":"^0.2.10-snapshot.feature-cluster-refactor.1598302712","@scalecube/transport-browser":"^0.2.10-snapshot.feature-cluster-refactor.1598302712","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-cluster-refactor.1598302712","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-cluster-refactor.1598302712","@scalecube/utils":"^0.2.10-snapshot.feature-cluster-refactor.1598302712","rxjs":"^6.4.0"},"gitHead":"590283ebb5b38b23c26347b105eb05febc93ae35","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-cluster-refactor.1598302712","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (linux)","dist":{"integrity":"sha512-UDntloHDhnkpfCwsxcE8Jal3ETpEyg2iZQr9rsreAIqkEr8RHX/3puuPfnObknpYp6GyZDTuaJy3S9PXKElZlg==","shasum":"ce73944df60395dda8b19d7f9b3047f81a79b515","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-cluster-refactor.1598302712.tgz","fileCount":39,"unpackedSize":176580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRCoTCRA9TVsSAnZWagAA+7QP/RpqguXicVRGOB0R2ytY\nVNcF4IJC/WwMbUOThdcFP8SPJIRCBVejEwfZpC+ajWKY5Z2xHRqzCZTbu8Gi\n6C2yYoJ+B3ONQKwjJWTpHLEIy+w+Cni/5xN4p7bdj2gtcJpszUhwHgmBM+1Z\nhH1QQERNXSfueDQ6iapRsrtYiDJA9YtID6VEUjioDCzs65MVzX78T65jSRmn\n/pSpXdUKrwJXX4exuiIAQ7/79UtOf0Lt4wTOFO5oJCy7mNXfTg/ZUA96HUBZ\nCUnJQ5s0TJLxPiyo231Y7JCXbRMSEd0T3hUcBxAAjswvCMh7qNipo4dW8MV9\nGweZKjNBMmAM8lYEfkuMKauPXSkIL+pzwyYUlij46eQHHXiiB9NRnWm8Oyu5\nbtiyQEoEy36vOy4ZKqrjvZFNNEN5HGET5ILEuk0evkAf8LxmYzcWgd5HoxJG\nxSoP+u97jPogB8/RmSVaJnx7ScIxdLpe4RIesMyCwFX2GKzUFVP5GzMluePP\nS23owp4QDMunD4I6Oyfm8PijUuVA3PjtJlwE/SnWM+RmxMoPgxHjMIB3ewh+\nke1QK1VOgPAFlRUnf2YfbbwgL1cactsW8LanHfqKs8zi1eeG3Oe3/24OyKg3\nzjmPsOMTNbiMrm/UCVwlxgDS+QRk7R1hTy6pcJ2yhYY7cerJTkbEygzJ5U34\n+g/u\r\n=X8Wb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2C0nBUlSye7H9nc6jomGgTUBBatL6dKvImZACaDYxOwIhAJlBb2Z+OfCHKXh331dUQytAMHiKOsygS0Nz1hLxDcTc"}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-cluster-refactor.1598302712_1598302738635_0.8440877770535109"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-browser-transport-rewrite.1598566502":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-browser-transport-rewrite.1598566502","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598566502","@scalecube/routers":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598566502","@scalecube/transport-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598566502","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598566502","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598566502","@scalecube/utils":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598566502","rxjs":"^6.4.0"},"gitHead":"fd71ee694a13e07deabcbf4ec6971eb48aa44cae","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-browser-transport-rewrite.1598566502","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (linux)","dist":{"integrity":"sha512-P2zT1vRRISeltwZ8xCNSbwQPrhqm7UZ9zeCEaoZDD647I3Z6mc7KDKHs9uzKXsQNCSNTCtZ8YDQViggW9Vb13g==","shasum":"4c60e5d4a6324d13296e414234ed5fa8f21a864e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-browser-transport-rewrite.1598566502.tgz","fileCount":39,"unpackedSize":176643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSDB/CRA9TVsSAnZWagAA5REP/j5fo0zgkXTIWtBYKsSQ\nzpWZcWF/lYJykd9ntaXC3HK163RLYBqumHZ2fLie33786xIQQYGWRooLPCAV\nQtzE0PnHn1tOUyg8/+x0Oi6YhkvA0S8F5HJYeuL4G4iGkX5a4CUGcOFfjewn\nB2ZBCV3pJLhVeT08UaLrdEV2PlrkON+nig4egdXiJ5Ja6Y21nMjzhbnKiblN\n+erFxChzWtA7swMNz6BFKm3m0/uB8X2BdovvvCn1vCRPbYJHK50TRMs/2D6w\nuqWf/nKQx/nEWoSiiobIClyEbB4ZY7gBJjycbRxu7gUl2c+1s02a5b0J8zBf\nEe+BPY0eEeG79QWqdkPdI1JlPN7CI4kLODm96cBcS6tDo+pjSNFVe5Ctq0sZ\n0FYgit0JKE4vnIM67VPos+JwfsnRwfxEDCy2iNLDlnX+H1v34zmVNmKHOskm\nUFhBEY5hWNIPiRXbv7bVGIEucVy8EGviwzI3l4hJv74cMxZ5PPqkylfshZ8S\nTVgYkJBXSDGj6koqqGkKrIxgNwl53adVDAJOzCVeckEQM9qtLPt5h/qJZol2\nmRjgBoKsjxe6Vn7AC0EzfOqisEM3uLmeDgUKnDeHwHn6/zjO/XQ8ZbX3q0bw\nJ59P4M0NRGzULvv9/NZi/57JUx3BChZcYVCCA22cUbnq4kVOQ8Fsups81/Rz\nPfPP\r\n=E9Tl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEwxxaYyM1Fks9joUgkT77yt5AWB1cq0OFJENnzJKisTAiEAve5jTsc3n2EA5IY1lbeWScUQZIJoJ20uUdy14vJdsto="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-browser-transport-rewrite.1598566502_1598566527355_0.8303349048555264"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-browser-transport-rewrite.1598569755":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-browser-transport-rewrite.1598569755","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598569755","@scalecube/routers":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598569755","@scalecube/transport-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598569755","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598569755","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598569755","@scalecube/utils":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598569755","rxjs":"^6.4.0"},"gitHead":"1b583845991957bbcf82dedef4cbfb9e9be9bc67","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-browser-transport-rewrite.1598569755","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (linux)","dist":{"integrity":"sha512-ffHCjT2hX+x5ahVrhHJnAslKpWnCAAhrhyXiCjQHX77qYgKEz4Azm4kjtO/3LD8SkqV85I/plK30Dd6MLNV3Cg==","shasum":"2d7f57d72038d6c8aa5ace29f05c643127a63a51","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-browser-transport-rewrite.1598569755.tgz","fileCount":39,"unpackedSize":176643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSD0zCRA9TVsSAnZWagAA3vUQAJNKB0s7FNk0not1o5xU\nr3cAWccSeQzf3hiaOfoI8SNkj7X78LTPa8XLQ36/TAy44XpsTMKQGvcXsJOZ\nggKbVZ3p8ArM/kvx46EGEHoErRM6nCEo9bxvRRd5vl9uSRuPsdQjCFBqlSwO\n/Y3sV1O/9SRu8I/SOM8CdjeCL0wieVBFvV7DgavMcguLdg6vL+rq+4FSZ0Q5\nnSXFcLbr+vyRtTePqQLNOkAZWy6rlatfBbh06B8EhjqJeeLnubEujtLJgloi\nlNeVpG3y4t4LHvR60+FJIKR4NK8/e6vKcCOEmaDxne/VXoftIicq6CxXY2Yq\nAsX2956zfmw49UPJ4vmP7NMwlLBSBMG8G3aAHdzD4JynbXBsGjwExMP+by02\nrlVkZG7lAnBKJU44OTv59Sv6CxJ6IhI09+cxtnAfnI7vN1RVoJQxteW9sga0\nVzM6fOx+tKUXrnNH8T1eWUjy4P+Wk6cb/ACcLa4kdY/YeOXOnkt6+XUdwJD5\nYKnqjVZick89txs6n8xW8PsvDbDeEozwvOlHHU1vJBvshY7I9ZdHaKMEA5xx\nlvjN5bYo6UY+gXG5EeiOp0qwstgSqRxLskFa5qleTTWyXAHXQd5pzYe7eEkY\nlYOM6dqXemJkWMLUkpF4Nhqsb3n/a2fl5E+oxWeSaHDk4XgMBXtYz2/+UyBz\nmLjH\r\n=SoTo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOHl61e1xTRx+bAZTQ8xoc2VC1P9vIYX1ta3Mh8lp1jgIgfKl1NPPyhAOVYTs8GTR8N93C2Smuxf2+/QIBQjLy1Ss="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-browser-transport-rewrite.1598569755_1598569778640_0.4427762214104498"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-browser-transport-rewrite.1598574027":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-browser-transport-rewrite.1598574027","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598574027","@scalecube/routers":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598574027","@scalecube/transport-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598574027","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598574027","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598574027","@scalecube/utils":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598574027","rxjs":"^6.4.0"},"gitHead":"73a5ebfa696fd3b73603deb3a157f1280f8b7ad8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-browser-transport-rewrite.1598574027","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (linux)","dist":{"integrity":"sha512-jiVVbIZmJ2tmb0rqFa/jxuxa/ckuk6QAwUd5gu5EHTVg6Gm02ifiacGmozc0QlhCq+zbAA91khIOEwEluklrOg==","shasum":"1c8ea96d74bd4c3e1869766f9895b3c64325295c","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-browser-transport-rewrite.1598574027.tgz","fileCount":39,"unpackedSize":176643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSE3kCRA9TVsSAnZWagAAy2IQAJpEXuPT0voAEx7+uBAx\nHzmmXfzcktlaFI6RkzdpycCmax5RGMTRi4mgZj5NOM5APGftFDQcYyIIwgrK\nsZsWcjMO/lc/3dRVwWmqnug8g5zUZMKb+aKv1ISyVPZe1GPMvGhcyBhJef0d\nYX+M8CD52wSWEr74QuBN81d9jdOEoHcWCP0E7z7UiTk1PDiSDckz4avLGVH+\nTSa2YR4qQKqheWiwRlHjbZuKpiq6TFtj46GcwptqE4uGAkT1YS8KaxtJDhW+\n+YkcGD0Lg4RBkZ25clQlA7VRs/FbQuzz20XAQgGDMYGDvAQd4GanATR7Hsy0\n6guATiZ3ufz3fHeoc4KoTOifSAXM/vPEvcfOGc13kcruEpUZAYNKEFQA/995\nFJvV82ceRBohu/WstAL8aFJ7yHaGwUASwTfLH7rBxKpbGqzcXBnaBFN84Kni\nFeP9K7nTmPORe4mcYvcwhQkmafI46kPPfWYWrQaNoBVmzzT+ceMmwOGnV7dL\n23oiB7Z1z2BDZtm1cxeYE+xHBFGcu40F+mu7aGlO0VTK/+kYKnKO1PKweDbp\nabIHUBXuF6ZQtmQDM/0dPvkLcgxwrrfSUmD5eX8G0aPfgR/f+V4J5VeT89MC\n1TkygLjb+V/p2qitaDKCyNiqiI+5u4/pe4V+M35HrUc91KpBH/VUGV74xvas\nl3Xp\r\n=8Tiq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE2UIEmeXlluT11jIrYl1UyY5PWycuHnqpDaAx0BMfaOAiEAp3lEvfWw6/tf5uXH9YMViW0Vg2TQPPq4Sico9fd8l+8="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-browser-transport-rewrite.1598574027_1598574052244_0.9179777813036065"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-browser-transport-rewrite.1598575005":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-browser-transport-rewrite.1598575005","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598575005","@scalecube/routers":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598575005","@scalecube/transport-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598575005","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598575005","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598575005","@scalecube/utils":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598575005","rxjs":"^6.4.0"},"gitHead":"b01d96635b369e7fb8f9cd0761328f7d1e5ff47c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-browser-transport-rewrite.1598575005","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (linux)","dist":{"integrity":"sha512-hZWMhL+y3Bs35R0Q3BFACMHwjboS4Ts7VrQmWgioxa9mN6tM4al+P/P340UxZKCOlOhtGK0ouxwfNl19vdRI2A==","shasum":"4a12f24bbd6bd2023ffe0211b86f9982b34bd4fb","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-browser-transport-rewrite.1598575005.tgz","fileCount":39,"unpackedSize":176643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSFG8CRA9TVsSAnZWagAAVrYP/06pZqq9sS60uFbrb3Aq\n/Q/s0TL7XH64jFxMg4Sk+SqDXccWTRPeojqvgtCc5qsWh9mWOfz9ZfFsk3cW\neykV4guNIMEgiGY2XciQTGBPsfoKDrnzp6k1PGZP/OlL7yGPmfbNBrHAc/J+\nkTuSgXH+VdT1YeLCRdrPIfY2UDv7bPT9Fh0BwFHcphTqqMAlHx+qqDemQ/xF\n0RViNAXKNegdqHrk6uxo+ivH8dgyDSwj7rEnTLIRoxdFtlu7L4BgD5k4uiy5\nXg1RLc8J9zkKShF8O9DerOMhEAJwAquEl9CNDtokWbW3TRIECQpKYqQdRFnX\nX3qcJBWuhMgQkzLw9W7/XM0HwxzPCNaLuzhrd5IL4l/+k1NCFoGlRI8cLZNp\nO7ztQmDSjsvqP0YUInRfD4nuiesUxcHU8Ex1md877jJ0DoXkhlUHTVMdl42W\nJmo+nx935iRi33RPOGZqmnIdAermQrcsAktGh/S0A3g7LOgmBimvJxf+oOg6\nF3c12PDqaxJeM50xaHJPoMVyCpH5KaCZaDriqPOMyXrmBJrBCeLiLtYMn9mj\nr/Ekhmak4JyN3hFqCuN6SOKkeJodkHoJ6FJySJldEihZPfNyfiFz2ZoDe9rQ\nSG/lZz2ObYlIhss58YCqwdgSNAafCzI8P+umVODeR7j+VaXGjlaIoR1zJ6yH\nGJma\r\n=jizl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAxdqYysfoKgSwyoxexrkbSR914ibv9U5n2ML1jZyVPQAiEA6d0dJxXAibKDhF6C+WlOwx9yMNM2pgfNVvoiYKbFlds="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-browser-transport-rewrite.1598575005_1598575036150_0.5232143827357856"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-browser-transport-rewrite.1598576038":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-browser-transport-rewrite.1598576038","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598576038","@scalecube/routers":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598576038","@scalecube/transport-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598576038","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598576038","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598576038","@scalecube/utils":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598576038","rxjs":"^6.4.0"},"gitHead":"50b81f85a65248ed67a8cfe3ea8597c913d79807","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-browser-transport-rewrite.1598576038","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (linux)","dist":{"integrity":"sha512-nVZ7lpZGgEQKPQiLGQlalcHfYy9oCN68prMufMXy8CFI1Ryj9/Pc2rzybKlbkTGtYWhehtrv+Ksxb2JWDbMCpA==","shasum":"eecbdc86f9f4594032fb66fa689fd6d55026a244","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-browser-transport-rewrite.1598576038.tgz","fileCount":39,"unpackedSize":176643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSFXGCRA9TVsSAnZWagAAdIUP/05s4Rjp3e59JtijONuO\nxN9BVYN9LuOMvlnb9Zmt+ftJ2nH5QOTqRF+4SFIOBpwpdnk04/aT7u6yh3If\n+H4NV4lB0hmD+fBcb260rJWlkJIj8HIFiymvVHQEPWax+ZKMDf/DExb5DrH7\n0ns+CjWqehBCNerJdH0W2SNMNvpnLBbW/R213sVaO4R+Mm8okyPyFblusCfB\nQ+ZTSN1LXs+ceNHjE61XfQefrwyr1Dw+PIJEi/ASEKEMN9TBnAhHOlDTi3KY\no2MZbYI5sF/92zp63YgVHZKS8M65W6QzWSQJTCYFcPSv7+aKEDwFXxqpyNST\nI8PxZtqIVbu4LT5KJQ5ezjj7RS3qkq9m7hgY8NN+Nz72aCRIW8dWKray1SYE\nYNMVQobui4geaQSiqii4DAdtxTpQE/4ID1gSyYprDP6mk24sVMmZ4bEhZHnK\ndaglad6ddjutu5g3u0YRppVq2NL/ZBBB+ixYbtpEFulApjtYDKPP/Sit6456\njbp3xHxw92C0exz0rBaqtICFMVL5U0On5I0Md02MCLVkpChoJE+mXGJvlb4H\nTP3FAs868MTzTngGO+TDYpSXIU71z8iue3+36ZgJtwaT2shtSUR0F8dLf5ME\nuYwmuZi8l7HuV+zMAdDmM3YA+toElTNaLpHzeCbR/tOHtG5xnAsDU56hh+nn\netR5\r\n=EMKz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICTjtdSpu9sreF3m1oARSPuUJfRwZwiqC0s0OjxOe+vlAiEAr2SjPXac976VJQ9AgflzgV6GBQractSYr2vUsmPYKzk="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-browser-transport-rewrite.1598576038_1598576069741_0.11310222361051103"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-browser-transport-rewrite.1598604330":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-browser-transport-rewrite.1598604330","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598604330","@scalecube/routers":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598604330","@scalecube/transport-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598604330","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598604330","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598604330","@scalecube/utils":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598604330","rxjs":"^6.4.0"},"gitHead":"5b18618e9f77b1e1767ca482e6b3e8ee06eb61de","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-browser-transport-rewrite.1598604330","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (linux)","dist":{"integrity":"sha512-vYwRN5wxva816eDRnRXqWh4INXkO8p6AkJwEM2jxMylkR7Kew2u65GjMAXSDxq0OKpr/jZQUmF4KjzCCWcHGdg==","shasum":"7470b4a8896d914adf8a03d9fc67864f19435c31","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-browser-transport-rewrite.1598604330.tgz","fileCount":39,"unpackedSize":176643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSMRECRA9TVsSAnZWagAAz9MQAJt1Y0SC8ve+gyyHqhro\nmM9LkEFTjK4gnGiSAB0gDZeGATIS0y72oa1b0jClhKHNN3RcNAKIE+l3aZ/0\n8fyB74nUGOq5JessbN1TL9u15avigjSTBfpOFxuL1nJJt0cWgW5oLXrwS8qh\n+J6KSelluMhKw/3YUn0bG9x1a0NkcHB/ZzIMmQRTUh9F5T5yERZIYPfyE1LH\nZNjUgKSvTQSa4WR5QnI94LlQq3OAwJxLdJdGmmzwVDteF11IDSQIijhdRu5n\n/U48AAYttXTSNAfKhHXUsCoXCXe6BJd7FrX3j4iMsPaE1NVDEg4HpXwWCGLE\nt0UotUM7EoagR+/dAhgauTFBxZ+MtwKqz9Z1WqPCrmuAaEXhpum/qx+z7cX1\nMfvbJk5/K+a0E1g+S5ut1tFIUwwwjqOaQdV5qIRCCAzpyHWhNi2N/BVlcLBk\nLUliBHckDjqtDN31/ffXcT5ZmwXAXOpCr8IfEVux3KStuqOxoT1rETYzAWPq\nng4RQ7f4mbl89gVkjfxF3C4h75Z1QiA6bSny+/Suk7OKg/I4zRotczfdKCRB\nO/Kz3PaV/9T37NEIVkRItMxhDq3fKJH40UaQ4NRYXMxZ4evCdLwdeMVoktNy\nKuI80nI2FT9CuHFxmSydueJUbzYLOjoQnV0Qi4DJB1V586XetyPjVUi42NeD\nMFSo\r\n=4Piy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCouMXit1pbXCxKKILLd4OQClsan7mr8KKkxCL4ZEt0ygIgXF0tmKuYFTOnuNp837zBsmBXg0s9OXr4ZxxESdxA4ew="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-browser-transport-rewrite.1598604330_1598604356022_0.6434110053566977"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-browser-transport-rewrite.1598658437":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-browser-transport-rewrite.1598658437","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598658437","@scalecube/routers":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598658437","@scalecube/transport-browser":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598658437","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598658437","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598658437","@scalecube/utils":"^0.2.10-snapshot.feature-browser-transport-rewrite.1598658437","rxjs":"^6.4.0"},"gitHead":"e8bf809c4b15bc330e7fd0d43775413a51bd4b48","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-browser-transport-rewrite.1598658437","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (linux)","dist":{"integrity":"sha512-RKTW3zeOrTfEkfunioacZrB1sLFEPC0Axy0+hWz7xIxYZVrBXqq9mLqirQ9F6NfKWLzGY7ZjiF+yJJz4vKDbgw==","shasum":"e8e769c5bcb5065241f2a6eef6815fa08ca74934","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-browser-transport-rewrite.1598658437.tgz","fileCount":39,"unpackedSize":176643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSZeiCRA9TVsSAnZWagAAXlUP/ik9H/kxC4I0hO58AZoh\nsXQFhcu9egVxr9piJN6+WIrhTnOvBEG8Rz/8/JPMMvrporsjBlcMkW+Q+4wq\n2n5bQzspQrySF6VgxFI3n3edANocmsBGNAXpya7/UuX5XMy+SOElv3YUj0ZY\nmjKscECn2M224kboa1aQ236ajeFaQVGIaKezOxQN2TnUk72xxD2J0uUU95ZE\nDzHWn7xJX6r7ijTyXy+pL4PS2mmgyZhjWj5S8E+VjHId0yYLgRueCka/+mw4\n0RqMqiSm7iK+TaIlVvruZcYU5/TWYRtHKAVjfsve4lTUYkaSzgP8zIupTSb+\nC1JnVsQ06twIa6A1+3gEcy0MiZGgq4opFlbNL8s3ModWtmBd4GlbEkFuhHX/\nFtkoflbQsHBxs/KmOCdKsZd/pwKL3eU9jKiSQ65vZ7enrzMDlftOGvwRoDkx\ncGDEjEdBt2JHyJALK6n0LhY4tdVYyjHGlNXWqvecBtot5pZRMX30W1HNDKFG\nus91OlD2lUa/9QTFiTLlWRBPu0PNPe5Zh1L1EhWMwMZv5+T962FTpb7uhoTV\nUXqH9bmEQm7Pl/vNEF4PiHui/G+SnffrCc7kGOGNO8FnziLQSYmI6Sk+z7z5\nn/HEvRJX/CrmFjHt7aWQy36hFzyPSxBYmRbjG6Ytoco3D5xNHPS0hSWVOUuM\nEsyl\r\n=/3M7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFqbO1PXHBYflmrPLv6OTyKnlGCQmL2G3089Fyz/Vg/9AiEA44oiDtYeET4/7SA6djckcgMs7wpQUfB4CB65SvqXfa8="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-browser-transport-rewrite.1598658437_1598658466002_0.48761538553387385"},"_hasShrinkwrap":false},"0.2.10-develop.1598736437":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1598736437","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1598736437","@scalecube/routers":"^0.2.10-develop.1598736437","@scalecube/transport-browser":"^0.2.10-develop.1598736437","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1598736437","@scalecube/scalecube-discovery":"^0.2.10-develop.1598736437","@scalecube/utils":"^0.2.10-develop.1598736437","rxjs":"^6.4.0"},"gitHead":"1c39932be182652ef7c16487488b3c72bbcd3269","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1598736437","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (linux)","dist":{"integrity":"sha512-GdQEb4FbFQoMHx1IP5/ojxPXt92FcrIUWVEiDR0cf/B+xDXR5gWLj1MtvAHP2hcpGVPT3INgnmyD0OPaCFjk+Q==","shasum":"b80ddbcd10f07e3b0a574044b1593868af2ce4dc","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1598736437.tgz","fileCount":39,"unpackedSize":176398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSshVCRA9TVsSAnZWagAAekkP/iTGVzyHQBTbjg1m2Die\nLogiZcGgS9h8Pqnbi5y7gQllG50AjQu3PGSGGClwwUsIx3rPYSDYBXOETS1S\nZm0asMD6JlJZA5M8bxQeG6OVg2DIlQ44VmunpXlCVsK1KkYQuNwaScQI8n5J\nWVOzdqdIkRLzOGyBvAq27cu1A16drAfZrFaETfzi7I6jEOfSL/nptnK/RuMr\nK5nIEhb26CN6HJP3KYKWilsLzFhY/Xo+N0YGQAGk6004ZvEBy1/jV1IsHH3k\nZdLPN743OX+YvTjq4h9MY+PrYLNrSdYEBO0F5LV/kpqg54CGv//WfP2Bxp7A\n7A7KUmQ33EokPm5D7E3QED6FW4taBJSwU2h7SZyoI0SsObTH2mQaixZ62oOZ\nwOdYEhMetdRSkZT8qX/7YuW7K/WZwZ6ZrNLNLP/A+90SqmvZF07irABT0cEW\nfsJpKixVTqBeWzxNPdT1zqb5GOiYhnx6xPX2UP31C1qI/I2acj6JwTUQ/yH5\nCSt7fOOFPxRGsRCgmBCul9z8dMDbf6afzgZVyur/n7I/dAJ4KaVfOpbJm9XB\nk+pdZtV0NHDd4jOXnwRzWcd0ZHzdANU4XFS4F1J0+crTL5ppr2dw3Mdt13Lu\n6wsttpDLlKijSyabyU+EW7PSb7HEHbPP2YifsAOrndcWo/HfwuOtj3Az+WVI\nH9Yn\r\n=1tTn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtbM0Ll4IhXv8R2cgggE+ZGKR1Zk46kdmcMEmYUw3/VAIgFLKOt8iJShh6bCqjjeWMADaSRe9GidjycF2qflcxmTw="}]},"maintainers":[{"email":"idan@ilt.co.il","name":"idanilt"},{"email":"ido@om2.com","name":"idokatz"},{"email":"ronen.hamias@gmail.com","name":"ronen.nachmias"},{"email":"scalecubeci@gmail.com","name":"scalecube-ci"},{"email":"io.scalecube.ci@gmail.com","name":"scalecube-js-user-developer"},{"email":"serhii.kolomiiets@jivygroup.com","name":"skolomiiets"},{"email":"viktor.pyshnenko@jivygroup.com","name":"viktor.pyshnenko"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1598736437_1598736468914_0.8709806178961521"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-bugfix-createGatewayProxy-unsubscribe-streams.1601511838":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-bugfix-createGatewayProxy-unsubscribe-streams.1601511838","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-bugfix-createGatewayProxy-unsubscribe-streams.1601511838","@scalecube/routers":"^0.2.10-snapshot.feature-bugfix-createGatewayProxy-unsubscribe-streams.1601511838","@scalecube/transport-browser":"^0.2.10-snapshot.feature-bugfix-createGatewayProxy-unsubscribe-streams.1601511838","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-bugfix-createGatewayProxy-unsubscribe-streams.1601511838","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-bugfix-createGatewayProxy-unsubscribe-streams.1601511838","@scalecube/utils":"^0.2.10-snapshot.feature-bugfix-createGatewayProxy-unsubscribe-streams.1601511838","rxjs":"^6.4.0"},"gitHead":"1750715800d01cd61336c95439473ccdcdaa465a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-bugfix-createGatewayProxy-unsubscribe-streams.1601511838","_nodeVersion":"12.18.4","_npmVersion":"lerna/3.22.1/node@v12.18.4+x64 (linux)","dist":{"integrity":"sha512-X6s119XSmEuTOLPy6prPokaQodAEG5d47mQp2dAglPONjDKWIbX9CkpicekXoQaije3Md1RzJIP1wd8/VvRFMw==","shasum":"41335578c0e76b0fae9c50d3a6dd6d14989f8b71","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-bugfix-createGatewayProxy-unsubscribe-streams.1601511838.tgz","fileCount":39,"unpackedSize":177733,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdSG5CRA9TVsSAnZWagAAqpAP+wd52JJdrxWytRL4Rhz6\nvce3TlV7qJ7j7mDUl7XnQ6z2pHcBL+H/mqvPeciyzgvRk7FQITCGq3BKt/zR\nG+a4SoegU06dDkuw30MDOLFynPtoin2FIyS9IUW2NY/aOzLwCv9iLHFP4jSH\n4cAQLZDHTHo6Ba5UWjj1HJdJAyc3GL8XkIv5EtEHFEITdcZIKGs9OBPtV2pS\nKvmxTZdd6MIvD8wmgW7XgQ8c5A2bLpirwpZnglMm8lAd/0PBRDt+e6+AMaq8\n/odJ/Q5uCP+BegDr5WqdfkcYn22nKp/MlQgfvI8v9eHrNN0BxjVNYPuU+Sb4\nBnmwgHXEMUPX+WMqM+gSDK+lB4GJ/upQlWSV9e8ZI4R97IYr2OdRSFOWHvuu\nvvsNBAXIMaIU/O/QjXAywWcPQ57917ZuA3mjMMvcuyU3ScCQ66ilECJD01KN\nkDbHE+BVuSvKBxSlT2fH81AgwvQoVCo5kVJrvsjwqA5bb7DoGHsfX3Pn1POZ\n2OLhvrlsrVG7yag8Topgcol4l5pM2xo2oyV0dnbUmnzl4UM2PBC09WveNLLf\nN56NVw2FeyjPVHLazajx1GyZ4gOtKae+lGiamO81i1hftKoAxT8miVFk/e4+\ncsnZElXyNuT0/SlltwxXx9j6YKr+tRDaDxxcwyiyCRgNyl/UfGsW7Vh1jmDe\noRoI\r\n=L0u9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJAjKTtj55InBCw+FS/NJR1x8G8vJZvDWLtAuQBEykIwIhANfeHmROJXMK1vwD/4fdTbfnD3Ces5ePGPfxfTFjNTeT"}]},"maintainers":[{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-bugfix-createGatewayProxy-unsubscribe-streams.1601511838_1601511864487_0.1679836659432523"},"_hasShrinkwrap":false},"0.2.10-develop.1601629156":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1601629156","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1601629156","@scalecube/routers":"^0.2.10-develop.1601629156","@scalecube/transport-browser":"^0.2.10-develop.1601629156","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1601629156","@scalecube/scalecube-discovery":"^0.2.10-develop.1601629156","@scalecube/utils":"^0.2.10-develop.1601629156","rxjs":"^6.4.0"},"gitHead":"29e1d9c0aa9aaaf2205c64b8016aaa48e6feb242","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1601629156","_nodeVersion":"12.18.4","_npmVersion":"lerna/3.22.1/node@v12.18.4+x64 (linux)","dist":{"integrity":"sha512-3aclcZFVzlQfnyRrb5S6FK5YYdV7FIE/Okg3zBouf8gv6Ooc61DPzrT8ja7vsoZE7YpiElDHE/w3gxXhWpw/5w==","shasum":"8a5122bfd79d4a95ade488dd48598086da9cdc82","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1601629156.tgz","fileCount":39,"unpackedSize":177348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfduwCCRA9TVsSAnZWagAAcl8P/jiPfuUGLRNQkYN5darp\nMyfIa7v8ak8SYZrphGCg569uBtmgA6yZmanlWsp0C5pJePcoT/C7fSqKNPac\nGansFvpiaMelvlgMcRdqBSpAwo5QrWqNQ3nZfNuyI1jIN/ggc0slaq+pb2vV\nXm26Imtkc+U2gp4THZQ2czbZ0HnKahSkw4VCgRZKkyN+kXbrXMmPyXDqwjoe\ntl29iq2ZaH9EXZHzkOpj22rc7BDdQsSF1HjrsJjzojJcY2DZsZG5+8OuSotx\n2W24qn6txaVqnKI0GseLMHIHlJB6apLouICIDz81Y3U5Jx0TePMzUz+WOuqo\nfJGo7raVOT2yW1TYWTyWMudIhAniiQymfWwm4kXcNgWh4DOY8t1iDqGi4NoU\nufMkxlx2t3EEmao3ZddxS+1O88DlDJ3fXuaz79mYUxVdtp9YIuIxByRNRyxB\nIG+QagMcl9aZ1Djj1zCYejGuj1fOiqEiD09OSMydCGjZBlU5K8UqszUEk4WT\nuCvsrwFMF9xLF6SFvGrbD+SzmsDWHfT2gkMr5nHUK5FYOaN9UH4+lorRZ132\nYYJQ7VNpZHU/TyBYFfDAe8XG4JMshc6it8+ZFoTgv1LOYN8vKMOxGYE3sOdM\nLm4w/t9BQ7gpLraSmIx9e/9z4RUhCnSmgBmnURruptOScKEurA1twAJxwYuU\nHmrz\r\n=efGR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICcCJ51urkkYtWlEEqVt/JE6RSMh+vKZ0q55GQ78PDyhAiEAuVgyRMRmFwjbFSNbinmGBQnr9PZkHwBHbQnL8/vFp5U="}]},"maintainers":[{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1601629156_1601629186014_0.7686731661362896"},"_hasShrinkwrap":false},"0.2.10-develop.1605529986":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1605529986","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1605529986","@scalecube/routers":"^0.2.10-develop.1605529986","@scalecube/transport-browser":"^0.2.10-develop.1605529986","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1605529986","@scalecube/scalecube-discovery":"^0.2.10-develop.1605529986","@scalecube/utils":"^0.2.10-develop.1605529986","rxjs":"^6.4.0"},"gitHead":"2dd506cf2ad40333e7c93ecbf4223da4cc3188eb","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1605529986","_nodeVersion":"14.15.0","_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (linux)","dist":{"integrity":"sha512-MUhZc+9lBKC8WtvFj7aJwi8xBbG5BVmjqGaC6kRhRDCKwe1JLs4+olOfbo26Rc/2nac07vgAXd7dybCfaExRDA==","shasum":"94c9eda3985fd4decbe4ae34c2f52e922470a292","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1605529986.tgz","fileCount":39,"unpackedSize":177348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsnGjCRA9TVsSAnZWagAAj4cQAIc9eqFD2ESoSyfHfIQZ\n/rWK6z6eF/BHEgWeWTVkeGZXgHyPutdPdqw0BViW6SOO7aw7Qn1S7ipH0lVd\nqMxjpvlbr8wVSybF5CQSbCZ+ZASsxznKB2t1H6QLGIDjw5IskmNKiYDz7nB9\nW0ik1d2L6envXv+WbtgSrIIDkHTk1/x2YxgzOFOUU3dHgzLKj5DL3rBQtz68\n2e2MkkJDB8s2eHlCPgEwHDKrrq84xsUfHe6wnCelQbWR9pgFASEcfx6aXTO5\nkNIZnxLccZjl3E/lyYPogq2bb5f3Nj2wgKPhohdAQStp2q5tFSM8+J3TsUvO\nw250UCOQDT544UE+gM+Ro6PILq51sKJv10ZohIf0RaQJzz7ZRBqlOurhkWMh\nDPLc568Ck33a/m2MfROf6lkayEXLVCotuWWQRDuRPGTOorOYlE0nebyFegQa\nnOgRlmq77dD7jVIgmvn9+y5sZYBElL+yvJiFoPEJuEN0r9lzImfeunhF9pZV\nIg4HsBC4DxN17JzVfHTwFnaBdAk0OB8YvmezapYgT+GIYB9ZCiF1ifyLNDgl\n2jyBk9+pMJVR6WomXx4nDAiNyDUFt3kuj3dFiYJev72TNK4taywfMhoNollZ\nw5KVLFHZP/cLW6SyIpPGHkWz1clQZvNaIkzP+y3V4+OAeBDBZt8jtvDz/D/g\n7C7a\r\n=A55M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuBM/0HZrdzlVWO0XmVEDQusDsNqs+JGSzsBgOn6QInwIhAJgh7szm8Rwi3xKYKxE/HX0Qs93CMntibc0FSY1+6f1f"}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1605529986_1605530018595_0.3547511826142673"},"_hasShrinkwrap":false},"0.2.10-develop.1605540170":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1605540170","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1605540170","@scalecube/routers":"^0.2.10-develop.1605540170","@scalecube/transport-browser":"^0.2.10-develop.1605540170","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1605540170","@scalecube/scalecube-discovery":"^0.2.10-develop.1605540170","@scalecube/utils":"^0.2.10-develop.1605540170","rxjs":"^6.4.0"},"gitHead":"42f6e2ce61299313dbd6fe500c13c54607187899","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1605540170","_nodeVersion":"14.15.0","_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (linux)","dist":{"integrity":"sha512-+6HQm+kWwImswXljaY1yGz3GrfeuUsL+coMnlTU4FXlA/uM7SfiFJUxf7gvMO6CFoH6v0qw0j2pEKFOgMDnBjg==","shasum":"13e7f55bf47d2e292d2468c67374b9ba3705d2f5","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1605540170.tgz","fileCount":39,"unpackedSize":177348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsplyCRA9TVsSAnZWagAAH9IP/j6QeZC9dtPndNrWelN6\ng/3RQG5yXRAEy7O20NZgvlwllV7j5LCI0XjDxy+BfqBHCadRqZqiWVJBHfjZ\nk6/Y5yDCiJh3SOIIc89P7UIUja8Eh8MK7zhXZvR8c4zV3y0CQk27pFjFyh8A\n40SG59HAdoq5rv1gX2sxstdotmSR+xoYh1TTAh8h7ugf5S9b9rQeFhV7OOf8\nivrS8fLag2MzaW/zExJ/d50cBu6Gr0d9PU/y5FSuvbB80FLRaLE6MjbZlqFM\nfb6Fol/HY2Fr5ixOunsJOjx86EeVMh2eOdoEpORrX3gRtVET/t5JeX29KZIY\nqRXAmUYsQAhsIdpWVIhIbDwptz5+jIJza9uuOYnX6JeQHjpUgEUOpGNFzhVj\nFzYs7P9QDDaGYLfpx59ZNSGLc+uMIXnLfff0BCU9YYm2O5k0hcp9tbggRuVM\nQdZK3SQZLbv7JZ/KhFpEUbBxw/NuasKC/YNPrZaSE+/dvVjQMNc3LJBfeJ2h\nU+w0scv5ccytX4vZkqMcsv5veMEHIKbPatgQUvTTk+PN75JOb9Cp8dOHLzKl\nZBOIhg+JdN0Va7TL7EwWDV96lhIDcugHEBdB7ULa3Cpf3NiN1B/7Bf3qeHOf\nfX2KM8TbcJEv/COnIk1WHP5DoAJ6GrYQY9gC0HjIKhV3FurQxauhlsrQ754N\nFRpU\r\n=u7wh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDM+Eb2Gonrk8iN0Z6jlF66s2FxHDbD4A1fm6DNFiPIWwIgYQ90TGQUafsnQoMP48OJbhJ35rOar7gyiAATDdgHOvA="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1605540170_1605540209850_0.3234515576092354"},"_hasShrinkwrap":false},"0.2.10-develop.1605540865":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1605540865","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1605540865","@scalecube/routers":"^0.2.10-develop.1605540865","@scalecube/transport-browser":"^0.2.10-develop.1605540865","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1605540865","@scalecube/scalecube-discovery":"^0.2.10-develop.1605540865","@scalecube/utils":"^0.2.10-develop.1605540865","rxjs":"^6.4.0"},"gitHead":"580b8f5afa83e1c860b84e6e5dcd580bc3e802cd","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1605540865","_nodeVersion":"14.15.0","_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (linux)","dist":{"integrity":"sha512-Jei7XIFoBV2RTDp4ZsPdamDoREB0obB4pWELcy+5U+10QzdZUCaTddX+9J8VlWCF62m5Nd9AHen5/09vDswPAw==","shasum":"4189a2bb08c14ef72ca2948aacde02b93011a3cc","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1605540865.tgz","fileCount":39,"unpackedSize":177355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfspwhCRA9TVsSAnZWagAAFJkP/ixB7JZ+ZZ0RH5F5r2VP\nkQZnw7Hp9kSzedJRqWMfbhc43WvEVdJyTq/rRWVdQPJzZ0oRkUbxZgW+GC+Z\nsTqVfvkf+KwGRVMUZsjhCbXpyqZ7/Cqe8QDIktvwzu4T8pUwD8kKjebTKaTi\n/vXGvHn46I2sos2VmZ5Kx4I5MRtXMt7ssUCMfp11oGXXhK5VLD1XCrc7j1Ca\nuM8lf/4w28wiL3BXjdYQ4OUxfWAPBV+TpIFctA2VxWHqdQrk34Hf29X4DOQ8\nwj2DpbK7wIz3rYWJC2k1Gki8EjU3ICV1PoF8VGMiK+ESPXhgHz9Jg34HhrR2\n0SoJnVRQVpPZfyGSKR9ejHH6DhezDcUj+hpvninhbxE/a9rn4hdDsPKhZy4l\n2b0bYpLRe87N20spjk29fOsCAeVsUBvZFxhG0CssQ+21rpG1r46gDyundHK/\nRh2m9WGpgN1ajZameTgEvByjmpKLoh+sXv+GI+pYZWMDCwFt1F39YyB5diCm\nHiennspfcImEsnA/JXfbz57f7ZWvwa2wNNGy6HU5wwUK8PtfI8ePAiBDW43E\nHK4FfcLgFZ/khkb+IHNQhgZjzmKkgNuB54BiYdM049sRehU4I5ohiP1mot5t\niJpN6iNcfMEPQRlkq67+W9j0TbQxIHjLYTZt9jnVgc282UDR7ggU9W2FdsEP\nuU8b\r\n=KtsN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBoIjObkMbzzvcFjk1QjrvcpY019kr3lL2bUn+Sj+g56AiALFPARwC9ftfLv4LvbqH4kqwjejEVC9D8OEWT8AwZ7Cg=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1605540865_1605540897112_0.5620329789775109"},"_hasShrinkwrap":false},"0.2.10-develop.1608856850":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1608856850","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1608856850","@scalecube/routers":"^0.2.10-develop.1608856850","@scalecube/transport-browser":"^0.2.10-develop.1608856850","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1608856850","@scalecube/scalecube-discovery":"^0.2.10-develop.1608856850","@scalecube/utils":"^0.2.10-develop.1608856850","rxjs":"^6.4.0"},"gitHead":"7fd2694de3a224c4dbf05cd285d92a867d92cb5b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1608856850","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (linux)","dist":{"integrity":"sha512-BbW/YvfUK9IGDUEdW/I/sSlTnGssHGzOkwoEWGr7qu2zR6TpCJLFOEFtImh6+Y12jy/MbF4aFhCmNd8gXI72mw==","shasum":"7caa9c3d3ac8e6f47b7b9c194a785e8e96a2f275","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1608856850.tgz","fileCount":39,"unpackedSize":177355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf5TU1CRA9TVsSAnZWagAAqlEP/0+2tL8Sj594I0r2GMrW\nTp3tGKm6Yn9lLMtYNl0HQ/yvaS7WXbACeXLvYGOgJfhD7iiniYAgXQ12zgaL\nJMYCfujFGoiaBc8Pbb+BF/WAcnmCE9Ocd7ELfBVK0OBWqCh+w/6fkHEBgHu4\nEWezCSk8BxNC4ni6qDvd50VXVsvEcI3lMceDkahtRZMJ/Epv8zq7/jk/PV7I\nkmzpOSjAXCdQszYvoPW1JD5VWwCOBGx3ldc2/voN7EBLKppfY7nuYm31bbfg\ng+5iNjkBvZ3Bwql/w9wBUhleuVbNWgrlT5mRE17f/2wGJAZXaKu8aK1aDOv9\n0qDjyXAgw4NEajH/fWPlGJ2tNIZYAWk5U6eMY49AenNTIqA4X58yDbzEW74l\nDCTwsDHBFgKAyozTnrkU1pQSkMYrDFaPBRjk8bS3dZt3kpvHW6vnDxIE7cm8\nPnwP+egpuxWmveFN6WCJUB3S8sxdUqehmTUZKqP5HNxzDwqE6MgXOq0HSou8\nh9j++ttp9Y8f1yRRF3rPwsyOC6hIIGPn8Ma288MyhgZB7P1fNbPgQSvLabrC\nW3q83S+/SI1N5jAE7w/W/QlJifH0EsdA8JgmlE9LF18tj7u6nOImZq+BIF9g\n7G49zgl3cG2Ui/Duv/svNympYjx5Y+4hrpCvE3JxIZiBETRjmKAQ6mf0w888\n19MR\r\n=gyWC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE6kov2q5qBpdKOj2fjLoPaNkfyRU6hB/74YYeKTp38sAiEAk8K4F+PHUlEW8UNnZes3pZPq9SLH93XG7Jz9R1fbj5w="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1608856850_1608856884636_0.3177972570699241"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-remote-registry-size-limit.1612487477":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-remote-registry-size-limit.1612487477","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-remote-registry-size-limit.1612487477","@scalecube/routers":"^0.2.10-snapshot.feature-remote-registry-size-limit.1612487477","@scalecube/transport-browser":"^0.2.10-snapshot.feature-remote-registry-size-limit.1612487477","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-remote-registry-size-limit.1612487477","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-remote-registry-size-limit.1612487477","@scalecube/utils":"^0.2.10-snapshot.feature-remote-registry-size-limit.1612487477","rxjs":"^6.4.0"},"gitHead":"80cc9ae87d5e507c88a0a7b776db753d75ecdf39","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-remote-registry-size-limit.1612487477","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","dist":{"integrity":"sha512-d7M0m2u4mDk3wwYxfAV6rkcFPnVNUHvZZ9VAs6skHpxkutC48q12Iw+r/aN+lFZnCatnoKlvgvRw6AIwI9rMGA==","shasum":"5c337ba2c5ae9a599d2cd8c68bec110fb5c56b75","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-remote-registry-size-limit.1612487477.tgz","fileCount":41,"unpackedSize":183981,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHJtSCRA9TVsSAnZWagAAqAcQAKJWb86OvdnTlEiwCl/K\nxcU0pBVPU+YWjX52k8Gbf9VKOVW6trDD9Jrb69C5+J820F88++ctOELucd5J\nPr4HD2VzOXffFlbw89rDGPeAmuMfsnS22tuy88QF4NeKR10t+lKphuJj+XwE\nh2QxCd5/41NXbTVv5Le3xFrjkq756JlK+8D67lmU0LMOJGkRF009Gfm8Puzn\nlHKafgnzOLctH1PH7F75SmLU3LOslXtIMpw4RuUaHL6DcshJJdWyjAbQrIWo\n1aNKb+v+smrfLc3UUPbOhBirBWEe8qyu8bDnfP0Ad9/VXQcpCnaVoNDK4jvM\nJv5Us9OM30s3kQNjUN6C16dj8qg+1gJWGmbVvyhHjvIw1jRU2yS53beC8X/W\norkH0Na0ZD8azh2OuVr9k6hguakl3bskofhqeTTEqB7gm2JcqlZCOz0pFVbX\nEmTGKK45QpP0H0d5Pthp+pz/rFCm9l3Z6KLQsHS4oHpgsAzVKOA/CLP/+CZc\nsTzn00AnebJ6waSh2ICFLG12Ba9BUg2wS8KIw+qy+zCYqcTaUYMErRir39b5\nwTSET/FlU9I23ZInKhDHXxkAj8WsGlwDE1g2ElHog0oXqaRbkv4ikcrIrb0y\nSk0rdxh2zNUQdng5M7dzDqfelkQzLv1lNRONBsqjaiF6BQM/jrhrY8UAnKAN\nxJy8\r\n=X3l5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFnVMNX5hW8A1AIW1fmnXZv+vbr1ded5pVK47KUdIUTgIhAO6T4MOKfHaFlTR1avU9PweDwIj4HfXKP3nvw3/LK/4q"}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-remote-registry-size-limit.1612487477_1612487506369_0.6168624242300227"},"_hasShrinkwrap":false},"0.2.10-develop.1612488598":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1612488598","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1612488598","@scalecube/routers":"^0.2.10-develop.1612488598","@scalecube/transport-browser":"^0.2.10-develop.1612488598","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1612488598","@scalecube/scalecube-discovery":"^0.2.10-develop.1612488598","@scalecube/utils":"^0.2.10-develop.1612488598","rxjs":"^6.4.0"},"gitHead":"1cca4c8f9a3894564be6dda1ec456e485dd291e4","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](http://scalecube.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](http://scalecube.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1612488598","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","dist":{"integrity":"sha512-6psmRLFkqQ24YJsgqkQ/g2GOvzadHU9h2uQfnr4FhP0kWFOgWuEuKJZVbScP0SA7+TKVV3iCLjheDDE+/Umv9A==","shasum":"4400da19feabc126091a1616e509ce797106625d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1612488598.tgz","fileCount":41,"unpackedSize":183729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHJ+4CRA9TVsSAnZWagAA5E8QAJD60z6tseUhN8K3h6NA\n4jB9nCMTz5df3gCjAplnTiMVVL8wSi9d1crsQP/sPO+bZ1KD/8sptP4M1i1o\nrD5BukVOVLKPNdUGxK76FjIQ4dUmKbdfORkhaHwdJgoOo7Kt5gWyqztoBevN\nESxYjcu0wsKt7pjO90E06s0YHyiOH8DUerux/8/BqRbmxcnvL8VRFtZWtGbv\nFWFK/8kjIHc6UbUumpjEmIxjQ692vsNNrvuOxHQUYLZZlq5Gz3bRriqb/uHQ\n/Fo60fcc36JMFkrZW3170Fm28j7BQo0FX1VwVe4PafUfVfyPU2WVwP3I+r2J\n+XnaTdc9cxkxrXAGD0kyC/gCIn3MKeyGyO7jPbWvHm+8cGgTER3xRknRqZyj\n1sSraQY+ecDvQ4jEzrpKsM1cmKagOxR8zFgpdwxtkfc1fmR9/dnz8zuzEYJw\nDUUZtnqPLAHjg+Pw0UBb7ndZ+6YXX0hh4W50emQhGk6CLXsSXyawqfOlch7p\nCRbHAlgdtTf3hEVvGQoaSgwzth1SYLTaH0nAMC5EGa8o74x9S0GZy4CgHSie\nHHBi0eB1kvVxoR9MsSlPQSacCrGLBnHJ6iYZw6unzC8/hX3Fls9w5OP8g9ro\nZ/cz5KKyFM86jSK+8Zg+tgS2GymcDbrBzkn+zxI8aowyKZZH8aITcbpddkO9\nSUx1\r\n=Q+3i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICH9h7s/Ky4njLwckQ4Kds/TMuc6kbx2qWklojkJVmtyAiAlx46Xnl23SpOfrM5leVZ8c2+aJRUcNuD2xOz1ch/qiQ=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1612488598_1612488632107_0.024788110100795846"},"_hasShrinkwrap":false},"0.2.10-develop.1613225522":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1613225522","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1613225522","@scalecube/routers":"^0.2.10-develop.1613225522","@scalecube/transport-browser":"^0.2.10-develop.1613225522","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1613225522","@scalecube/scalecube-discovery":"^0.2.10-develop.1613225522","@scalecube/utils":"^0.2.10-develop.1613225522","rxjs":"^6.4.0"},"gitHead":"c5dceebc8c360bc0b18c288955b14b73770500d9","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1613225522","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","dist":{"integrity":"sha512-4EZbhPXkAWKh4klbapMkVwgz2MnK5V0yMZ2Ul4oFZ/P3I30dc96K3tRynvzzfMEi5N3iqAF00ASOkER7+y9ubA==","shasum":"40fe19e86a47a2276447fb41384bad104fe22953","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1613225522.tgz","fileCount":41,"unpackedSize":183745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJ95RCRA9TVsSAnZWagAA408P/1nXy6bjfngutmFOaLPy\nbLYXtp4/RyEq0tSc9Qmtu46ez3UMTim1dCGRlEcBcLipBlw3ROpFBszPgkGc\nBVVrs0Y8tP224Gj3XYhPLLxleSpIRoCPOKGQ+ljoGH1n68yXzN80bUuLOwFa\nPbRwByptbbbC9eYNCBEHLUpHjx88bK+/ZKOG8Nhs62udF1jGTe8Vy5REKXfL\nkMa3IM0CdQg5OORyL5ImoV2Mu0O6YCV1dOtSptPfXL5MU0Nqn25s6KaYpxzM\nWwsHSNQVG0BejHV512NAj6oRVp/F6l75DfjsGhwpTEjWWhEo1NLojnnddbQb\n3qthge5M6vyB5w4HAEH/FW6ihu55msL+qxUIyrKFhVbeZ0HnkbV1Xpm8PlCe\ntRJXbKHjXdZgP6LWWlAm/HSqVSryeIFih1K3KMqKwvVr99yIM8WR4luO7y92\nMEbN3M9Tw0yLjE+aoXs4lYxcpgLvY7tqxrmMGSSZIgy7GaUk3DnfCrt/iHQo\neDV5a+SnYoD++QpOFhV4avmJMv01BUVTczdk0ol5WgQMwbcWAv0xj6yQUHVp\nplQji/quNbp8mA44f7hcCOUUzbU+73GyVWiVdYCG6evQnJpEKfwBU87+KDxR\n5HTvM0G+/Gy1/zMktN9kYgDbdhI34Z7TOfZBuhei308NCSNwpf2isfhPc7E5\n2CLY\r\n=qM6O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAqMdtUjz87wWjIOKloykTl1j9OEQ30cqJUjGdNn82i5AiB1tiP6MsTPHQT+I4t1LMAJzkKYFCOqiVhX5NX65+D2Tw=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1613225522_1613225552730_0.017669297618403412"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-bug-fix-get-address-util.1613229626":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-bug-fix-get-address-util.1613229626","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-bug-fix-get-address-util.1613229626","@scalecube/routers":"^0.2.10-snapshot.feature-bug-fix-get-address-util.1613229626","@scalecube/transport-browser":"^0.2.10-snapshot.feature-bug-fix-get-address-util.1613229626","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-bug-fix-get-address-util.1613229626","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-bug-fix-get-address-util.1613229626","@scalecube/utils":"^0.2.10-snapshot.feature-bug-fix-get-address-util.1613229626","rxjs":"^6.4.0"},"gitHead":"0849f1ce97d01d0ea2769c1050d0c51b9f6b49d5","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-bug-fix-get-address-util.1613229626","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","dist":{"integrity":"sha512-/D7iUYKytidpjxxXnUAR/cgzdLsv8A6XenyYGSRxQmKFxV2DOIIVdRAoVMJ0vwG4m9h+918Fxx8UvLUk5CjDoA==","shasum":"83a05a05167a5812e55d1ec5b27547d0e2f6edec","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-bug-fix-get-address-util.1613229626.tgz","fileCount":41,"unpackedSize":183935,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJ+5YCRA9TVsSAnZWagAAczkP/3BxnUVSm8kIY6ymKFUV\n4EKtFWa691zQNUa4XTAFtbysqqcUFTzU49rDwFUteE/lYqqVCfu9xsaRUuwR\nnekwho4BEPM6ousk8ZWpy5IERB0ZBo9pnXRjhlEVVWCah5VFbzeh1akF4QuN\nXmtNtNjR0115y0j1dEIJwK3xEkzUvlI9WAnDcO2+TBxCj7UJjmN3rTaAcr/q\nG+dLhKGaWI/5699eiBDGxieuP3Qf2NfVaoeJUu4e2mpalNAVNLHLA8jf9iTo\nt7KoMYRFxfDDV9ZMqKnf8ZjIYx1/ihQs9WmmMRdKRxrRO8SjKRghUV8BXFeA\n40y48Mc5QCgqHEtb77FdtQVyvVMGLFXLshXSAEyUr9BDTd7ISdSnvlYwnTxE\nqxfP2qpsmoF9OUu02epxbPHAKE3LKertjfKZMVLjK+UiF9Vtw1pac032Oddz\nQUh/2ab8CBo5lD/N9OrfR1u5Dd683tvokEnPKKBn+7v5gJtBQxwsG7cdv5lR\nAfiaD/1J1i4NI9Rrts0C64MlHRz1AyeTeseOUl+WcwCS3Mskn0MtYVKGBLBO\no/wg1EWQKdC39vPf8eXh5w398XKwb5CFwcEAuP4epl4NRhp9cJuqKph6Jewl\nrpPcKfpS7BWx4eKd7m/w3h4EwqXPNO6oQdmJN/sWOV9M27MVS3kP/8bDn42w\nFg3y\r\n=o8wI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDDuB0+DD7+i1A21pr+VttneiwumG0yQX40eoCljW9+UAiEAwkPDSB0759q0/geAfryvGat/FlwkjNqX1F5mLfn9Zuc="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-bug-fix-get-address-util.1613229626_1613229655536_0.6904289757938074"},"_hasShrinkwrap":false},"0.2.10-develop.1613231531":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1613231531","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1613231531","@scalecube/routers":"^0.2.10-develop.1613231531","@scalecube/transport-browser":"^0.2.10-develop.1613231531","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1613231531","@scalecube/scalecube-discovery":"^0.2.10-develop.1613231531","@scalecube/utils":"^0.2.10-develop.1613231531","rxjs":"^6.4.0"},"gitHead":"0e80fd65473bb4ae3d16aed0986d283063716f00","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1613231531","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (linux)","dist":{"integrity":"sha512-Tce/AXEPUyK5Esn3T5I67slTnSg+jpXYx3yOe/vYm5Ne6jU2us5zH2o2MnNhlmdF1lbYqj6CComCi4cL9Wv06w==","shasum":"1f3c57b885f7de18df5d5edff78c5152274e9261","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1613231531.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJ/XQCRA9TVsSAnZWagAAtQAQAJ7YWXT7lNx4m8aJp7rS\nU3OFXp7nkqrlt0jrV9N16ZKcxY7Hah5ECOwCPYsJsmqXCo+MyoEwDyJwicEh\nElyTjw3izL/oLS7qxuGfWkLy+afVebp9j5756z6C7aavWwqYR8ofT0jd/yha\n5+TTFKUohNvZIO5mrk8X8x6fRFGRlrx5AUpYsQnQrq3IgF7xeWXAy+TRGn2D\n9DQYQ9PVM+mvOihvE7f0hrnFOzMFsy5Eyatqg0kfQmDOjgO7Oj0fShs6cUNl\nea/LtWcBsVTryN2ttBLrUdNclg8QLiAgtEU3y9c7mVCURjyWwy9/lNv9kHSo\nAFNIAwt2BDqca5k/QXmouF3dO4WF37E0Bkztx+/jqOFBvELHayzwl9bJfsjx\n/7lIiSDLJ3g0FdAnts/UftBsB5AfMbFpX6Gfk/Mo5iRUb/vy1PBiK0ksZBx9\nq02L7NYd+qeMKOms0qQ+qQDKFcZqkGzjp/yPm1kmjcxn3fnTzLe7ZnmbSSbw\n07X5LLLw4aLo50DU2jB0WiUXJ+9wEYL7zjf09cnC3LhvuwgylAGV/rL++k5c\nZl/R+KDObzCiUbJBu7invfsIZY2nWtrJ+Kdv6bggC3QAI0p42IMK04PKQIwL\n70nGqeqjuw5kCjCR/2OOzLt/rJ5kC1BzBPhOWvcmVB0xxv4n8H0OoEozf8OX\nTaHF\r\n=SjcZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBW7Shn77gvhQYYhuiAa4hyAg9K0qjXXqYlaGyyt//+OAiEA6CflDAb5z9qCE+dYF31kxv5QOFGJTjepVIbes+XRYbo="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1613231531_1613231567968_0.19373079354892409"},"_hasShrinkwrap":false},"0.2.10-develop.1615658637":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1615658637","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1615658637","@scalecube/routers":"^0.2.10-develop.1615658637","@scalecube/transport-browser":"^0.2.10-develop.1615658637","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1615658637","@scalecube/scalecube-discovery":"^0.2.10-develop.1615658637","@scalecube/utils":"^0.2.10-develop.1615658637","rxjs":"^6.4.0"},"gitHead":"5f92f99696057fddf94aa74616c2e4d063b31b76","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1615658637","_nodeVersion":"14.16.0","_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","dist":{"integrity":"sha512-w11axhRJNa0K/uf4UYvnMpQswPuiFxoYbiX0/A5PcWlQfKp8I8H6H3ywJ5vWp+kbwJJldd1jaKD7Cg1UOXvk5w==","shasum":"867a85df683053e93ef8e3fcc474c9bdfe362773","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1615658637.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTP6yCRA9TVsSAnZWagAAUv0P/inKCkjY2SwgqAnYzRHF\n5+0vvBg+EduMhFN+1MKk3mVJqWHtFK6SN57GItZoj9Jyks3CsR51QOOCIk8I\nE4YGOSDWvU28Qa+fdHQ1roIqTGM+XMGlyyOs5hDxS8+TCqm+J6MLzVcdZl+H\n70KvQffisnbV7PoZGm8NH5OQMZRTBfsV+PMAm4ZLzOSzS4aG9UD6tgssOPr2\nzPUgCNbQ81RW3o8WEpE34+bfaWB1CfvbCq1UN2zcAH09gd/L5qnNKIZd+fQ0\nhmMQg6QtkAqh8FPbrj5rFnpie63Ev25qgs4Nb3pb0nVYtldcd7+U3Ed/jZIc\n/JvHdtJX1tjr771ErroRdmycsQfwB3PjWAN7EsV6jIrhWZxwasoydAvSjFdW\nLxGIskjHYGY0sbSt1eGOGN8eOmr75iCQQ9zmU7j05Jyh/B2MTBudY8DVgpMg\neju35+67awBNdlm/b+X55Axi5naQkQE2JiZmus1jO6O9y2ZQWUkE9DsMyhh+\nU25bd4o14HN6QNYBFZt+9dBj42l6mOGnr7yqRu+D+i+nbqK8oOKF0CK2F4s3\nNIfcrGTbPuhGmvX68Cp8UuwXhTaBu3bYg/c5cRgVoubBtqXCFS8LIp0+O0n3\n9hL1tK9xNirJIZhp2wA6dYwwlPEcggdhLgIiNPBDMh9oNWfwFQPgL3gbtbGs\nSGbq\r\n=z/At\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7ov22SXfhbJ5UUXFYNoOutciWrp19q8G1jZHFOX4xOAIgOAkQPefeiPa9JllGUN9KguKdYNxn/ABbLMV+EvgXjkE="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1615658637_1615658673650_0.5043575600456416"},"_hasShrinkwrap":false},"0.2.10-develop.1615741150":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1615741150","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1615741150","@scalecube/routers":"^0.2.10-develop.1615741150","@scalecube/transport-browser":"^0.2.10-develop.1615741150","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1615741150","@scalecube/scalecube-discovery":"^0.2.10-develop.1615741150","@scalecube/utils":"^0.2.10-develop.1615741150","rxjs":"^6.4.0"},"gitHead":"25b25828b5fd0a947f31a2c52e2beb89be12659a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1615741150","_nodeVersion":"14.16.0","_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","dist":{"integrity":"sha512-hjHIK1Z/Gn6PbhLarkyFkx+3Gnl6Ske2Yqeq+YEZLVzQcSEDphqOBuFI30yXqvwwh/zhSFiuOq1Gw4mWGpeeow==","shasum":"3d9b72cca838afe2bbe52096a8a8e8e28ab9ed34","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1615741150.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTkD9CRA9TVsSAnZWagAAVM4QAKE9jG9LhgW1b1zViNSA\nkPA/rx2SmwlSwLjhPmEv4QF8bGlaMaCh2bJXri0DulH+pjlaX/be7fXfSZAd\nqDdF2anlYFwcSajXW4Dr4HpPbL+0qbtwi1Aa8JpLnBYLSArXMhIgu3zf/pcx\naxOryMDlmO4T+FmgnxD3+D9pGVmcrfmNtdhoaZVQ2IeGsNXTmCgA0HHvSs6i\nXOe0x9F54YT33WxAumzmn8z1aESDybMRqddd9jD4CaljA8260GcRZCdsmIeB\noMNok0Up0X0LKf7pSq3cF7T60M5zzBKRGofZlZ7rJru6lmSb78oX3kqEtQYF\n8wkSksTw0FLGnDL0O1+CmAOvIq02BL8496Mercbz8o8bPVrwXj8ZRVsRPQqD\nXCRnbvzqSw8+7wdonwngZ4Ve28NTTLle8lN5NbeXkKF2ja58wT2XFADPk4kG\nvk//0whX+rMBySE9mF3VcavXIbVFgYcMmU/quX5Gjih5VDy3j0/pG/wpiTzW\n/HRgx7+CSf2Khc/WwCf8nROtVMJFD/UyU49559HamLoemdgHp0vK7cEExW6Y\nqYr3Oby3yHDKW5hMfroySSMEXJ/OAHqI/BodOQbC2bJGUx+VBXpaJBCEdCrn\nIGOdJl7Qr8a5tcaIo4nP64OQqLUU67jFsBhYkEY45UXq2AozXbbzKTmjnLcb\nTPHM\r\n=dYSr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFkrnBr5CJ5GysagtVWVOd9A/07Gm76FWBYjhKgbz+lIAiEAs1BvI/ZQwme9VLXGLy7dpxcF3Oorcsqmi17ySJZm/ZQ="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1615741150_1615741180950_0.514917561969233"},"_hasShrinkwrap":false},"0.2.10-develop.1616353666":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1616353666","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1616353666","@scalecube/routers":"^0.2.10-develop.1616353666","@scalecube/transport-browser":"^0.2.10-develop.1616353666","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1616353666","@scalecube/scalecube-discovery":"^0.2.10-develop.1616353666","@scalecube/utils":"^0.2.10-develop.1616353666","rxjs":"^6.4.0"},"gitHead":"eacb716f42ab16e0ef64af03c9f09f2283c34141","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1616353666","_nodeVersion":"14.16.0","_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (linux)","dist":{"integrity":"sha512-bFTzejRLwvn2JrU/u9l23ehLw683OJoqjTK2STFydBcKRfpc124mz7k5DBwbupSRotoASo1UmDgxE9EDs+opWQ==","shasum":"7468f602ed1d76a0655cfe4cd67b4c338cbc136b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1616353666.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgV5mfCRA9TVsSAnZWagAAoQ4P/2aj9uM2af6i7VGV2HrR\nEP8/mFSMqYuG56xWZUdB4mgNaewDQGq+GignGpmKq9Cq4YFj64cODP3AVzIg\noTOQiTDjo7lsUGmvQ9FyC930o1cwfqc+z+sbL8hVGfkABErVOl9iZXNgo56D\nfcGuO6F11I5HSqseebUmp9Cf7mAcw2BtJJL1OZkCPLodxsqHoANDTDLgDhFJ\nNI20zZd8J9u3Evj7CSlVVe4qGus4jWzWsfJaAU6he0UHfVqOZLV9FYPHJuXu\nsOhtwDSiaO12AHzvSb6Js1gujMdzYkvgJdmOo7GwpSwnwjgoEZXAyh71v+n5\nG2iOP4Huu9mIlQSwOhALUOcxe1CSq5BPsCA6GWvxaOT5l6EwgvNlqtrQTGPB\nPFLb7eNj6B7b8gONGH4hnlCUnVw9Is1z4ZvcfnvqwREKrI+i1iKEDKAzr/FB\nukG7Z3GSVVsUa2q+TAtiMOHSpbYgdbZgg1KLB1UnqPeXvNBPW/NvtisacjeE\nPuXJEmttOihnpadZH00otfpLwmXPDXAofLrSnl/PtAhmBpjG8srldJvdtVcJ\n9GAVjvrh5xEkT6etSiK2YcuN/WYhpq8PTc3uuLM19o4N/rIJQYHtQzUjTfy0\nB4mjqWXIxbhFGJU5NDb4gaZoon14gqZwhJBilbQaJeFzf4b3xJ/Ft91ppMtb\niz8N\r\n=MQFk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD18xqguT4UxD7aw6yK+ZrbiRTVn7qpLY7AnzSAe22MLgIhAIA22DUBnJXSYaxiLyuigNs1reb2KbrTEtQIqHs/QwSC"}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1616353666_1616353694711_0.01777485434250181"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-gateway-client-package.1620814254":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-gateway-client-package.1620814254","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-gateway-client-package.1620814254","@scalecube/routers":"^0.2.10-snapshot.feature-gateway-client-package.1620814254","@scalecube/transport-browser":"^0.2.10-snapshot.feature-gateway-client-package.1620814254","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-gateway-client-package.1620814254","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-gateway-client-package.1620814254","@scalecube/utils":"^0.2.10-snapshot.feature-gateway-client-package.1620814254","rxjs":"^6.4.0"},"gitHead":"6c066bb03fb788515062c35494f87d2b77e30101","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-gateway-client-package.1620814254","_nodeVersion":"14.16.1","_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","dist":{"integrity":"sha512-rsYc/S/IVf3+M8aRBlCf2Ptf6yVAF4b0Bd5PsS/UdAg2ySn8Jh20c4jTKIGDhlj1X/gh39P8qAgv28lFM9varg==","shasum":"556e26b14d3e9cdd27e0045f221cf4b7d58a71db","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-gateway-client-package.1620814254.tgz","fileCount":41,"unpackedSize":183921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgm6nJCRA9TVsSAnZWagAAqvEQAITooyDxkY77wWH67/gn\nrCiRBov/ZpbI4LOwSoYbMdbzhuSdTFXFAqC/Dsrcm71n9r6vwQJyx5CoTn9m\nR5rTo+pntW/aU6sQS7vSTxMuhI003sH6DgXkNBCu1VEE1NTlRD8ERto2VXpx\n5i6pSFW1L/6QFZ6ev4FYtm+/mZjvaiEaGkVAC+P7ZHpLCNivPc7aFobdlQ7a\nwjjobtlJCykcpXAWhRxk69getW9P+F8fhmmLl4MtY4wWYdYS4KbJRYKSOj+c\n9L4gz2bNdbecxIPrk1Ql8FFZ1wumqGtCsa5hpIRHTJgntKRouHx8qRnOwM21\nm+5ZmdsP3k0lm7DPg7XycnIFuTzBw7U13nRiKwulZKGcImVYSE6A14ALd3gC\nqZ5Jrxhug8+/nU/utz3M+2TrJRIr+pz1NnGKghW6hfEpj849FN5FnOFR4WjT\nRQKmB08jgjRaMEpN8Z+pDJMxBsG0FvvkGgUyamEBoncsgi1d1e/Wn4K9zHfd\n7bc/2TeLEecSaGdx6M4Lg9+vAJwUzb2sOzWOyGxnxEU3xAWI2eaMevk4tgPw\nNiSsxCcZxEh+7EKO9kBCgsPTfsBm78zvD+LLsOSr1BcfIunkjy2U68QxwYCi\nTFgBc/McMNdvfhlKSuZI3+L05e0m2/zzBZj6ni8L4/7iKlI302N1OJitIA+d\nfsCy\r\n=fCZs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPGUrUZBQPfoENgv1w+JsmYqcIWHx0gGZC9ebChpYrPgIhAJnq2kHN//wE2W5lEa17TvN4/D2LA081yepzRtVt43L3"}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-gateway-client-package.1620814254_1620814281228_0.6493845746483458"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-gateway-client-package.1620839036":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-gateway-client-package.1620839036","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-gateway-client-package.1620839036","@scalecube/routers":"^0.2.10-snapshot.feature-gateway-client-package.1620839036","@scalecube/transport-browser":"^0.2.10-snapshot.feature-gateway-client-package.1620839036","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-gateway-client-package.1620839036","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-gateway-client-package.1620839036","@scalecube/utils":"^0.2.10-snapshot.feature-gateway-client-package.1620839036","rxjs":"^6.4.0"},"gitHead":"9c0bc7971383b6f8c063e8bfa8ba9c4c7d4f5f2e","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-gateway-client-package.1620839036","_nodeVersion":"14.16.1","_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","dist":{"integrity":"sha512-89H5t40pEGTeS+IP3WxaIEFLx5n9zFSDp/lLzphGJ/Gx64/YCy5CL9DbP4s+FLdvz/APH3DhTjOF20SOgdyFfA==","shasum":"9456f71271711cb3b2b3eed9e5757cfa6e57dce9","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-gateway-client-package.1620839036.tgz","fileCount":41,"unpackedSize":183921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnAqUCRA9TVsSAnZWagAA610QAKA2JbR9AcXZ4B5r0PRY\nTH0Q8JXqyoZ+5nmxHYF/Shw3VDMn0+9/BokX12cS0D8fVRUU/fhPYf+ZosHo\nzNogScFL/ZnB/w8s+RvlDpdIz6efmKG/C7DUnGtYpYwv/Dtak1es4n8CPaWl\nrBk30mwEDF0YdUojSnvNntqVvH6G50FDARtFC+WuJ/idml1k+lrNjid4IPEF\nRcLX4s8LPhBG+IMccCZgl144oFAdTdSwGTXZNMnLm2GMPlY1ouzd0sxjfNxK\n52sac2GIdld411T6+pm3E5hUZ2UUPpOx3+6QzzSeGXRVjUHxtebJGmGbSrGq\n5Odyq+hYskjsBjIMv1rRsem3daB8sxJHnW/N4aElFHWwbxfpBDeubpa3l8EU\n1BWnu/prYk583yqupphlC2S47AfHxmfQBBwinNds8UDpECgJ+kTxdx7XZRkX\nhMq9yOnA4q1aNnhuKRS8jneBXZTfVSTh4fTSLsmIUCr40JNNhFo2wsCpnG1V\n+q0Xg/drJ3I9Q8kFdWyKyBZ6HuSt9UyJvRxPxor6cxemcSVFA3wujfHVGDxs\nQNn8A2MW1vLBfBl6AcRLQKhIcso8RnMh9JuQ9qBepNrueolelWVdZkq48O83\nyDO4XF7ApsnoEqP/O8iiovmK5QQTRpCzX72tJq2R7NF12myuwB/Fb76qKlkL\nuoCo\r\n=w5Cg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCT98Tw6JQAv4sY68t3W/RqdqNlIHhsnPOCFUn3rkOIigIhAO4hd9Hvp3GkWTjVJBVzaAzzvSTIA1wQGmhk3/XR1DKt"}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-gateway-client-package.1620839036_1620839060157_0.7895798989621592"},"_hasShrinkwrap":false},"0.2.10-develop.1620840200":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1620840200","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1620840200","@scalecube/routers":"^0.2.10-develop.1620840200","@scalecube/transport-browser":"^0.2.10-develop.1620840200","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1620840200","@scalecube/scalecube-discovery":"^0.2.10-develop.1620840200","@scalecube/utils":"^0.2.10-develop.1620840200","rxjs":"^6.4.0"},"gitHead":"76c48c228195fc9e37d47622db8f0e7bb3191e53","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1620840200","_nodeVersion":"14.16.1","_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","dist":{"integrity":"sha512-G2+NODAYCw4Aq16tTpJGlEp6rNhLV15OqDVB7T82wKMTet+eWO2156yqEGRxJ74MajH3EXHsonLc+UUDKMxYbg==","shasum":"860f8a940c1839bc958fba2174df9b41fe3db338","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1620840200.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnA8oCRA9TVsSAnZWagAA6yUP/0SLcy8+L2BO+h1IyhD4\n8AguZIKLhSdo7ckrPvQs/GMSuxKn5n+BubSzHyg/CC5joGWDpFTSfasdCdux\nXq+AxNW3yjzttGZrSP6V+RO+vZEVrWW1MH6aQ5RLbRsZVm7BrcHsRGEASedo\nq/F4l4cTeZjpggt8dOQ4FY10CpDzwaMPt1/QFsVyZ9ZNQesEuXfEVkeo5O9E\nYdnwGxgJNeJkpw9xG6p6kumFexo1Jz7AB6o/GMA2eBQFPDBdA/YcVHK/VY97\nL9YFpM+NTpGVRu5ZQVFpUtP/6ty9gcs/XXSMgxWw1pTeW33wiFckB5mjeBcO\neVGtqn/r89V8uAQ0E6gMRGXtm340kDeYS49MhxSdRk2QvWblrGyB4U4HqKrO\ndoy34ZPThI4VHQpDXI37lHKunjvjcvWANTZ2aXDkuortCcVGBv71uIf0qAoK\nDN50GVyOdg/F10/J+YtL8bZRnoxUdrJwj1Vn3XSFuIbcyz0ZGUGJXvzjjGgO\nh+0asiBKYDO0hb/BGiTJ4lOEmYmzM2hcMQXOKkSfm0mRnTxCuf80mOPGOr60\n9bNt98l67BrgYRRtOkru08If8pxWXM33cDK6X07EHgQIBx/pIIMiRdXxsy3U\njBQLjeLbxtiZSbXrcDJ7YMFnY8wQUcivvJpWvABrWNwUBJImxNn9HGxG74bw\nhLw5\r\n=XhZ5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDzeBBtpd6fkmo7AAv3fkctE2Te92laEshKs1Xdj8RIlAiEA9szjthuPhpK/jsjWBi076IX1ZczqXes2H9Sr4HdcIKk="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1620840200_1620840232029_0.5913697363034109"},"_hasShrinkwrap":false},"0.2.10-develop.1620851601":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1620851601","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1620851601","@scalecube/routers":"^0.2.10-develop.1620851601","@scalecube/transport-browser":"^0.2.10-develop.1620851601","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1620851601","@scalecube/scalecube-discovery":"^0.2.10-develop.1620851601","@scalecube/utils":"^0.2.10-develop.1620851601","rxjs":"^6.4.0"},"gitHead":"456624137a161ff1473709692ef6e67ad181b12c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1620851601","_nodeVersion":"14.16.1","_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","dist":{"integrity":"sha512-U6jDchIbKBWBpf56iZ+W6lSqMJN/ZvYqe9PiSpdH6jfTu4FtriGAyIOzshIkvHQ5kxAWAqkXGyayY+Ce6MNF5w==","shasum":"5b4d3b40b3f4802044a190045ed82472e3bfe988","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1620851601.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnDutCRA9TVsSAnZWagAAz5kP/1HqEKROfmktdraEyKAi\n3bTTch7WNIyMslEWZV4tDgiyHUe45NQkzO/jPaT/oeM5WCSqzIVeXUBd2FCv\n5Jb64ZJ80sljDlKLdeyGuHxiwpcM1YQe1RofyO6G/PPdcVYUnef1ce/svlik\nyfoyYGf3ZIxEptcZzMUOZTmjdS+QpoLugKecyspJfdKtdD4+veTXxq59+Vue\nuJH0trDnim/K8HayUAcpK6eo2Y1ZokkwKBPh349ggiSSxQd0W74z8laY7MUl\nK7ufGKRwppZWeBF1o8MaTmSE30G/l1S1Bmq5B17Lo/iNH/zPotTJ/tdXbL//\nSaV8kp4xZXZgfF8qtucHmDCruRY+rJQxygnwfb07IaOiZXE/F1HALBPSFfDh\nNF6XxRPf7w3DbEdga/SpX64QcqUM4NratnDIz0aTosO4qAHeL3QyRN3x6+XK\nURG5TUtRoRkJ0JVQCuL6arHeCv2MdNNB+rqL79WSYfX/8Y/xHsiAhCW9rmyx\nBzevc2lIoVlw7nWp5J3RuXmHFFdDXKwrRM0oi9yNo3H1BMHYtlHKuPinSx2O\nkwAAwx36UE9yhAbTQs8LgqRSvv7L9Hq3TL4bnB2XveNKvy2xz57obol8THG8\nH+D9ZGLGU0jlLldjbzqjtzrspyXf06nDqBVLs2ZH8ufRtBop7hC1lqt5Rupe\nw/3X\r\n=zM5C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA7Tdiy0fBQt/t34fhjdSZkiMzx4wqn6YnHiJFcprmvcAiBHZihkbhpuAHxslirPdaVY2JO7kHRukcN5YeYmHUKZpA=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1620851601_1620851629341_0.038432744252735684"},"_hasShrinkwrap":false},"0.2.10-develop.1627555116":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627555116","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627555116","@scalecube/routers":"^0.2.10-develop.1627555116","@scalecube/transport-browser":"^0.2.10-develop.1627555116","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627555116","@scalecube/scalecube-discovery":"^0.2.10-develop.1627555116","@scalecube/utils":"^0.2.10-develop.1627555116","rxjs":"^6.4.0"},"gitHead":"fdcca0bb374d777911b7ca5344eafb86062cf3bd","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627555116","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-X4uBPd+w+b8ecCOIvVZI/biKpnu1tB2tR6V+ObHCrw7YieWOF36W13clCnN9pyWAerUuJaMKSsNqn58ISwqpaw==","shasum":"b662888401a2c68771f17ce3b5798243e0f3acf8","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627555116.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAoVKCRA9TVsSAnZWagAAfZkP+gNiL4JW6undBgU4ikYb\nGMgPufwUS7W27baZPIm81z8O5QGEylNKfxAb6+7aEWQB9NZiTKw/Gqe4XyWF\nAo5u3Uc8TM9RGSeeuEBzzelcV7eFeoLEKKAIrj+wFEE5ONjiywKgULYGhWj/\n4k3BmjMZjY2OQ3H5abybTtu3f3n35eNDZ/Pt42Tx88wrzDvm9ccp6VA88U6k\nQREe+rJLZgL4R/YoKHTVnTE9kqjt1LrzcxDP1gX91n70aC0xCv9CBcfaTZZh\nHoX/rJfhDrI2jkOVr6w5LqgjhTGgwrO4akDJj2QOM8LcTDUazUk3xelWFFco\nYHXOFVqsh71f7uLmwicIlxNIrWmghqA0vP2fi0adjdnGhVF2mPo1m73bpLdg\nCmNu/Q+9tLMo6kZT9dSZ+/kU0J4dUIHGKpb1PD7/5Vhqhl7VA4e4iATVNBst\n5SIqACOFIYyKq6Niqh5l8lg4WDkVqoYAQ3U+zVTfvtqZWtDLXhp869tzQNK3\ndt0lO+ywY3SG0AzhO6i6RMMM7KuOXaHEdfR8SlquRvyUqf7UEKvWQ7PDXw0/\n9G37PCcDFAHBwi1nsQJnrALaZNbgP1zPDQpEb8Qg/4A2EHdFEN/zXQs/SsXl\n6KazHi4j8mrDYtSQRNKLenkWsfqNXwBD+urF/THKHR1vAHAvViCvA+AyJZYc\n6qlo\r\n=iurj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHsplgIOy0gV+tQ3waf39itVmgE83hgH6eQUqwyIoAV9AiEAtgAINB/PkS+gijgHfwd+ITfi8Ilbj1dl0Trx4zhZbbE="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627555116_1627555146266_0.21304520615788203"},"_hasShrinkwrap":false},"0.2.10-develop.1627555687":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627555687","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627555687","@scalecube/routers":"^0.2.10-develop.1627555687","@scalecube/transport-browser":"^0.2.10-develop.1627555687","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627555687","@scalecube/scalecube-discovery":"^0.2.10-develop.1627555687","@scalecube/utils":"^0.2.10-develop.1627555687","rxjs":"^6.4.0"},"gitHead":"f9c66485ce024132c2900872aad472112a25c55c","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627555687","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-8xLegte72O3vWpzP76KGkAVqQ1KMPlz6mTmkpGZkwi0v+MUDiKnqifJN+0FrkjTSuuPwVJyPFPJTB+VsYa/bXw==","shasum":"6f85ecc671ccdc307e6c7a041d3ffd6ffa128df3","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627555687.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAoeLCRA9TVsSAnZWagAA7gwP/26cuDkeZ+/NeAg2zZjF\nwpC0gtd0ZAEQWLv4NHs25raRD1ayui4E2M57W7tAVwhnxDTz2mpwbE2a5tDy\nX0b4uE/2o1pN/nmharQEMjIdL3sLiI9hNKshNqbFHcgFrr2q3Moxra7F0bJX\nsSFN6T+KD56f6Fpufqsxg5BolOjxAyASPHTgLRwHgplIDy3/ACVBvzl51kYR\nQ4rC8p/ut0POTAvRpxEfxD/iBDoDssQ2wvthcUV7fjnrwnHmms7l5npAYhIE\nkQHxZ/+7wF68IruqwlyMPLdjxKXiPoeOOprO4jRvxigStNidwu0LousMLdug\nmIAI1il97uYe7OEeg+x7v9i64iSxJYvMP4E75Qy8MIaGmJhwia+lEeYfr40w\na8V2G6fTFURsZ2muEChyQNsF+GLueOkSczw5OY1xx7+0JTdwqfLIbTWznaU0\nJT/uO5UIhXxKOWPsxxHsvYFbnKskIdV0PwZmaoioFY3XvXG/RcHsHNA+vR3N\nepVcxIjQ/Botf1zidGWjs5wwLF8hEtP4hYSrTIjPqI5vvktfDPmh9WFIKORU\nf3cyU4O4IXDWG+GJuTAgfR03o2GIIjMIDPnPam4O0y+Pn3SnPGSkDFo1zz9G\n1QYJZByPiN+xn3vO7DYSw7DCxDejYZrT5Nkat8ZoZmC17uwpq9LvGhj4oQbq\nai6a\r\n=bAeb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG/o/0jmJp34azarj1R+BXtKQSJ0nxc+O8xAL3veG7WvAiAuLT3NqOmsNHms6vnBfdmNQ8rWhQt0/14odk6mcgxIAQ=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627555687_1627555723224_0.44985549723571605"},"_hasShrinkwrap":false},"0.2.10-develop.1627560302":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627560302","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627560302","@scalecube/routers":"^0.2.10-develop.1627560302","@scalecube/transport-browser":"^0.2.10-develop.1627560302","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627560302","@scalecube/scalecube-discovery":"^0.2.10-develop.1627560302","@scalecube/utils":"^0.2.10-develop.1627560302","rxjs":"^6.4.0"},"gitHead":"26c484845c13f3956f1e295e7fe72db96a951128","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627560302","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-lKR8UmdR6Xi4G2ExTqlCRvsL7kkY98kbbjCDImei+063LoMY0SzJc08OeloHcZRvwK8zuBYtmq6BLGw3OBz7lg==","shasum":"931b86a2177ee1c5591e72627a2c2c310a88ec78","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627560302.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhApmQCRA9TVsSAnZWagAANjwP/3dMH5ltJesWOv4Qtqa8\nZf5O4u1SI0ompX3VkIw2BW/4fF2CRmGCI+ufxR+xmhIGG4WUAW53YKVLUONY\nemjx8b69EE+BZboxjqUrrMokggsseCI8AIJLMPudJD+7bM7kZmPV5sroD2w3\nzH9upbm9z96OFpkXsxKXlbpeepmiGolkJaxzGJykL72b8gkMQ1jkV4FLDUvU\nd/KVuGWZqbpy8YrSmXeb6H3Xyjm6g/Qi9BqxhSyFFE/Iu9KaQHfAGgaGx9zn\n8Os0x/aVpquwRKijo9Wab7fVI1XcLtvzc8HzIAblZ7gn5MSOpsq8HVv8BMRu\nusymK0py4hfzbz+B1mev3tYoeqeExZ6OzUjSBuTKQKjTxCqsbMubA3gRMsZr\nQDUWNw/omyJ4/KZldDlys9popVHoIBvfjDbhsROV2two3bmGRi/g3vGmURBd\nyTQh6VWwJ5PkdfKx3GTolkmbKh9L+fKDQLr4nPEy1tV1B5KwJr5/Ae2uKRDj\n+iOtghCJYonu3zL7cMMxdtVdptkcYOpad/tHv6RrPu3O+bMkmFspuI0tY7X5\n7hgUHYuxdKMGvPggz3ekK3e9xAAdiRWiCaYuE2Tw14Q1a/7kvfcfmUqYPJjF\nTpMtxZVmiMX18P++lYVpfU4iaefDZ5G1ri3mkt4bXcSSQXYISCakxZCwhnt5\njw1U\r\n=b84V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBB5kbxdDOqQp1bN8ryQpdluyFDPynZBa6qZhqzhwe8OAiEA/aFAKvuLxUqs0Ks98e1mg7NYLEq/zRHi0/EFtMM56Sw="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627560302_1627560335879_0.1334945260825502"},"_hasShrinkwrap":false},"0.2.10-develop.1627564289":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627564289","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627564289","@scalecube/routers":"^0.2.10-develop.1627564289","@scalecube/transport-browser":"^0.2.10-develop.1627564289","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627564289","@scalecube/scalecube-discovery":"^0.2.10-develop.1627564289","@scalecube/utils":"^0.2.10-develop.1627564289","rxjs":"^6.4.0"},"gitHead":"c2561b47198a5bf32b11257f79997cd8ce1c8dee","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627564289","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-//OFT9gjRlTpDifROBhNRakMgH9YMsZIpZ8lBQBJ9e3K4dR43AsqQH0IYk80XWuylG/ShBKcBJ5KAe8QV5Htuw==","shasum":"0065abdce02db552ad3cd0375f14842e624f206a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627564289.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAqkgCRA9TVsSAnZWagAAvDMP/Az8U4GGQEwvAgJoAGpL\nSyk/J4xXDrmFZXMc247ZB8LBrjsM5Ms6XrXu+2NFCKGlUlD8tyEaD5F42kne\n6aoZ7paQnOBzBghpIH4aMT06cV/tQyD5C9BotS1s20ClNtUK7c8FK0yP1ZtL\nS67B3PjjpnY304vcYA6ZckWaxR6E/bGvOUtEGQ56GUfyQKaScgZDt4tXsbD9\nMirFWOL2VpwjTMgj7MZVIU5ZVsT2dP5Cq6hMVANDQ5a2mkCabCdgs0E7E1BP\n+GYlJ7RLp5xToYzXfGDmw9NUfoDIdIdeVu2O7BGzrGFFlpnkp61aSRYehT14\noYJVII9Tfw9q4kcmbVxteHpJydYU0/OGDbPdQ3BlZxmVDHMXxZr+cllpfhCl\n9noLjcYaTPSpTlaRRGHtfFstiR7LVKlYO2REziP9B+5lxqDYT2flpQKPuh6z\nCP38pC7Fx/i5VOeaN7q0waiEoa0FIb6p4b5VS6vIPfwaBLyaBE5GtihntCjE\n4fcPyUWfy90uoaBOfWNLRPQWNqncwTMVyZDEgTNv1JLTzO2J9hd2BHb6ATRq\nxRetXZF+BJXhI1/oyUQ2Pg9qxHyVHOKH8IZlic2O06YriSnxQzfjtS1dUw/F\n/yXSzfMGl3BHnhbiIT64QtJ6KVJuHOPZPvEckoRLdU1eM8wVDIFriqM4dpNr\nb2Ha\r\n=wIOD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAXzIDGJQ8Mai6cyqLLYAxwFQL75scVwVMjC3j/x39MoAiBk9y0WI+bpbGT0YI1y/ifAIDo4KfJBOQQgXnHOAyrpSw=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627564289_1627564320787_0.8141871425345661"},"_hasShrinkwrap":false},"0.2.10-develop.1627565868":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627565868","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627565868","@scalecube/routers":"^0.2.10-develop.1627565868","@scalecube/transport-browser":"^0.2.10-develop.1627565868","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627565868","@scalecube/scalecube-discovery":"^0.2.10-develop.1627565868","@scalecube/utils":"^0.2.10-develop.1627565868","rxjs":"^6.4.0"},"gitHead":"ef276d8d3989da5018f423277210af8fa3c3c95b","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627565868","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-lFdG2XsaeHVfzyWjuF9mLvqWuYn0vOJvczwhvs0k3C0Mc4ni/6vlphGtr4aqqOzn7Y0/oa8OkudAQut0Ev4aLg==","shasum":"03c4da2511b35abadbfd75a663d4e5d834020799","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627565868.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAq9MCRA9TVsSAnZWagAAQQAP/2/w7Uhzf+fEzJbQJbDG\nH1suwBtnB/L1+UeUaaO+mbWd8QA9eXLijUqe4U7FXBqJMjCiyv3nzaI8pPq7\nIIj6YEz5k2eg4fDd4ADRnucARseL7GjqpIHkjBVhAk8RTEqDKLYARP8ukhlu\nlPYiDGc2Lr0+7kfxrWF+p+0HKBaP/HuhhVDnC9vxPXEzmW77pzHvI4e9uoPR\nKLDm8w9ndiNmZ52/hEX128wMHHX5bBy7NDV8Uf61o1M221KUKl/mxmwUoWq+\ns/T/wossaubcm51d2xPaLwVCVgU+YbgRcROxZmTeIDvfk4Uy5Mo8D29JOWaV\nLVxP00II/U/lD4Gt5a2JFJbTHe3duZ+Lva9Sai1aharXKDorYOUK+8bG4uMo\nupoV76YV6dzsGLFQ858SC6s4RYMVYT4nYAyJnoEqLCSSusYPUwXWjnt8In7u\n8CGJd87NUzl+JI3AbN1xlVc9kECcz38M6TNGii4qrfzUU5hzli4E6OuxYn1J\n4Wp3D6VX5/Eof374HD3GpjAAjgEd2V0V+jzuaD3CpF5VMQGxqlU9zOlJUCxn\nl96/aTW9Z2GlXFlmjdUZEUYwDf4f2IgfSftpwEkWimPN0u554Actfh5xUHz7\nNETJmfeJ8jKDPRvUcM8AERY80sw4Ri7sy2heUuB2+38C/trcqz6rc4b+UVng\nUhfY\r\n=LDGh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICPNqdAlDEUsH7SyMZgzyTELOjtE4DW0hq2EHiPCoIbeAiA4Zw2Ig3F8Bza0rX2OxxqgRtNVIQCzckB/nwxFTYlz5g=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627565868_1627565900628_0.7595567920451463"},"_hasShrinkwrap":false},"0.2.10-develop.1627566799":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627566799","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627566799","@scalecube/routers":"^0.2.10-develop.1627566799","@scalecube/transport-browser":"^0.2.10-develop.1627566799","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627566799","@scalecube/scalecube-discovery":"^0.2.10-develop.1627566799","@scalecube/utils":"^0.2.10-develop.1627566799","rxjs":"^6.4.0"},"gitHead":"ded960f050a0d45a8565c1c93311172f9b198e1f","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627566799","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-J8KfDiToEV990oKzqi6erDeOn8Uq8n2N411Jo3F4XGO5Iw2nJG9qa8/+JuAqoJDy8driksUT88CiXfjdMmVlqg==","shasum":"56483cea1665353a476d6cf195192109156b573a","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627566799.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhArLwCRA9TVsSAnZWagAAS5AP/0NqN13cqK1tfJRf5mfY\nHsrGIMxWnCNeKJXXScT54wia07cwyHx7FsboVbr+LqZFs/FiGAJUOajYfY1z\nsQtnQL6hFet5ZwBeElzGwWuUmXhoCBFd2grUJjTKa6k/5a7hjUgcL05iDg5S\np0k2pbzf0ctCY2gCICLhFgfJLBoNnANs+/mlNSl5Olu0eTJFziMV3GfUbNii\n50gzcp+R2DK3Vw2xf/8f7P6Q/w/DbOVx+ujMdBBM+mTuNENT3WsGzbnhOcnG\nvpbl7AYYQ7fhx1nA2IsGNgAlKdKH8R3Ebi3EE8RGRWaiC0UCoWN5WSSbqfoS\nn0mSfUQlrb/oeiv8MkH1EHhEn1tvACKkjwQ9wJj9M4LwmLiS1ND6IOnHNYWV\ne0jIBYeE2qwL1aGp0HWnnO1btSqVagOalv7hqUl3Vr5kqP85XVbXfxpggy2O\nnyQTWIoZFfNENRfpI1/0cOB41uL2RCfmkozdRyw2w2pD5gHxu4X72zOD69R8\nOey0q50pOHKmhLaH+UQ+EFgW/cGTGRu+mIELwdt+uMrl5Rs9NCMUBqlSC0NC\nEPz0ScfvLfdXVkSLGv4UEtEdx6gc85Tz1biAwp7c2m1T/jvNgY4l9YQcqRfn\nfFKYZRw1VIs8H9vKqIVVe3PmvpZ55YH+LNmBigvgnmE2HmFWGy9KvTX1/fpN\nQRLb\r\n=THPo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC/VpP5IqokkH7bOiHo92zXK4WCxI3bdcEKtOJBG1s60AiAVvQIP5XqSsmCvC25NKjhKHqhTWfF/acBVJoP/Pssg2A=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627566799_1627566831674_0.14238275692328073"},"_hasShrinkwrap":false},"0.2.10-develop.1627567383":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627567383","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627567383","@scalecube/routers":"^0.2.10-develop.1627567383","@scalecube/transport-browser":"^0.2.10-develop.1627567383","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627567383","@scalecube/scalecube-discovery":"^0.2.10-develop.1627567383","@scalecube/utils":"^0.2.10-develop.1627567383","rxjs":"^6.4.0"},"gitHead":"53137b91bb2eecf8b698ca08996f499440bc4b03","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627567383","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-EqXU9CxwwP0z107SYcLZMIJqcZPxbxxyAS2/DqRx7qMRYhgMIpeXjvtFoRQuXVuD/rUF/JJvZxsJS8qgvQIhRg==","shasum":"a3b805c6338fe7e682537e3aac2f9cddff906eed","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627567383.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhArU7CRA9TVsSAnZWagAAhsgP/jpB9RIbyx7q0y3IlAv0\n1+5Fdx62whwp1OmN2/uOMrnrN52pt0z7yhjfgk/He4LZP3Rn79OBf2An/+6o\naMbif5auQCDyJoJmmqtLn62g/JMftJviLb3iH0fGk/XttsSjadY+XS2I/RmH\nyYK5KHeSS8mVKiY8g6TBhU4OOIwZjC1xxHISXF1uvhFEhhpcL95JQw8GqDv5\nyPw+Jtn/WRt7LWR/pgrGBecRiuLnu9gRAsMzFMrNIxYp14o9EiewfktcqG8S\n+Qzx1NVxLL962SN4a+t6leM5og0gMYrh7mEG/NfJ3+IZEFasmauCC/WJ3MZG\nUiMRyr1BvEDP6R3KoHIChZ8fl2LCA7An+UqCXzPZ5Q5ZiXVqj4QkW5VoEbhF\nTXnuc0g9juO9TjynlUybEt2YdBv78dZU9xktuESvpvfI8r/OkevjJONY0qKt\n68YkZTUvhJatU3ZI4NVDfEw6kRYa/VAITbvnH4/Zk29r/2XXrbeSdM5G5TsQ\n505mcgN516lqqff+NlzYtY/7OhBhfE+wrAX8RABAxKa35xgDQn9Cik/1UpjQ\nmDBwt6nhXuM2kNPxRFMpQH45bIXk/U+yfBOeSGSXyit7mlfQ8yw4DOGEuAsM\nxWQqhf+BIUuLKHDzvBgB4i95UZYPAup+Ig+gWcYQZkURxgNWLw0iMKBVMln/\nKfi4\r\n=csf9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDvJogFjiL3y9f6PiVYlMzgFJjBoZ8WPaBeitVZYlNegIgT0y0cZ/BcYRbKYhWofQI2X8OpwBVjhEtQqo8KMmotu0="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627567383_1627567419313_0.07911540625325908"},"_hasShrinkwrap":false},"0.2.10-develop.1627568201":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627568201","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627568201","@scalecube/routers":"^0.2.10-develop.1627568201","@scalecube/transport-browser":"^0.2.10-develop.1627568201","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627568201","@scalecube/scalecube-discovery":"^0.2.10-develop.1627568201","@scalecube/utils":"^0.2.10-develop.1627568201","rxjs":"^6.4.0"},"gitHead":"2a7b33566d080940b35213b06d32e8fb26ef0bd8","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627568201","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-iNO3HL4twgnlkVjMhHuVC+W9mJlqVxgC880RBlNfeH0mzlCvCbn2Ha/DyZY8MSAnshoL3JBenq3ncVw/H8s00g==","shasum":"cc435695ab4013baa2668de1eccffa2f0dd3521d","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627568201.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhArhmCRA9TVsSAnZWagAA4qYP/05ZwUBLBCaEoBX5gmkE\nGjPU0t9KHhukd81fS6idMLTW4y8cqYDksxDp6vE7FYzrF93+HuUHQZvqHq/x\nJWMoEZTW8vm3tXrmk7jnJ3j8flhN5SeErbDDgZCSBhYpiRIDO7nKI75+/SLB\nUHQIJu+7MaQT2DwUsbMObwrwDKlLHbbcik7mY9N8RF23TZv0Km/btvU78PoG\nkO575k/ENwKpDux51SRXMRiq1AUWs6pwtTO7vYHj5h+uC+xk1rsSem6jvy8A\nT0FAMuJB1W3pPLw/3pwBFRZadNnhXwQ3xNqE2MsdhrWYyhFPMuGKIjJVqiyC\n6EoEg4kjMsKkl992oh+34ORphp4Cgyo77+yANSZPrOAd15nKPZV1mcPeBW85\nPLDOWqgFdMi4mtuiOWlRFbiZkjO0dChCHZ+GwhXc5ImMpiBXMIfFVNnd5ZdH\nuLJcua8ftd9sffUO1dwzVsJ8XJIRkP4kK5nrpGU9esH3MpGjEyfJiVbfJEru\nLuzp22tQZkU4D42zrHgpqWgMeUQ/V6a1/9c+m2Z9MDq88xyvN2oYzGn8sjN+\nBJsbwYN7ziA41uvDjXnUFYHJwlD0SdQ0iGZNBBCaP2Lp7m7mIO/tRDbZXQ+6\nTdTPbqzLXhtqgEkLVdsZFOIlEtW0BqJDyS3ziA9R0dyC+pacN8+VggJBFJbm\nMSjE\r\n=f0fM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNNyr5X8E34qABPCRZwodv2w6/V4XFXVxUvVm7OxOq5gIgfZ99Hm6hCvklViJkLdfLd0xrqkAkvE48f1R7II6hQ4w="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627568201_1627568230341_0.706259745816318"},"_hasShrinkwrap":false},"0.2.10-develop.1627569513":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627569513","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627569513","@scalecube/routers":"^0.2.10-develop.1627569513","@scalecube/transport-browser":"^0.2.10-develop.1627569513","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627569513","@scalecube/scalecube-discovery":"^0.2.10-develop.1627569513","@scalecube/utils":"^0.2.10-develop.1627569513","rxjs":"^6.4.0"},"gitHead":"c0559476f1eb0dfbea8c44bd12f716efe6ee0bfc","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627569513","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-vRA+nAhKTjah8SgyvgYW0Wb/dHsiGRX5qmgczclYe8xinwNDlkmguzxqWZmJSTaeIEhbo8M7cpyE1tROMfL6yA==","shasum":"66509af153072a739fe5fc1e7590ba6d81c69d71","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627569513.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAr2HCRA9TVsSAnZWagAADsIQAIij+N4sTy8OLDDV+BNE\nMRLP/mLVmn3m+TXzjD5mtADnq9kSqKvRWq/u0urXnMkuaHbluOJQJKKo9kQj\nmTBQ7AJMNHSbsyqI2HtcGBP0eslzs8SAAk5oeCxvh10t9BV4qQrtACNfAICV\nxOch8GgaQa927N2qeDV8cL6+g0L8FmThs2HdtS2bwPwhRu+31WmzItlBSnCM\nA6wR42xTYmw6cl4AvnaHGIEahJUx6/tjXv/IV0ia3Nk2LIs5dGZ1bU5PinS6\nx4XW0daLB0WC5Fvny5nvHBz4YiU4NG6kEc6TiuEzcc/3HL+LSPlz0g18vHJp\n6SEyfwvLmqZK8rSYrLodKlkrQEmhCnUhmxz8ZRieq6u8jTZyOPJvrDdBgo3l\niXohb5ekr3Fk3PgSDQ/u6lv9ks9Do/j6KWUzo0+3IcXstmHAaJpsZVvDcSyd\nviZ9XRYReaK3uo8ii5pbSSCRsXz4e6pW935LSULetQut7nT6kg/TJDWQnk30\n2d7dnHJWQ/4gNFDeqJNBSOOHph4eHf7bvivaIWHA6pHPax9bRgww8gpKW7m0\n0dVc3gmbdxSzItmAPzxjYdJJTO9HA4uC/9j+lw2p8Hgv3HBbDp1H/VG/YiWZ\nBMR9/g+hzk6LMGgB119ep1ACIQhADBYgDZTCambzUM1AMaKi09V1GmaRo9XR\naoRO\r\n=rOMZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFxk9ow0/lxMO3B2sBvLGLHzRc7Nk0qRi7rcr1N2CQmxAiAfeXcVenH7R6EqbR8zJ+jKCl4X24AoepZn66/ea5FPsg=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627569513_1627569543339_0.4323811092368075"},"_hasShrinkwrap":false},"0.2.10-develop.1627570912":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627570912","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627570912","@scalecube/routers":"^0.2.10-develop.1627570912","@scalecube/transport-browser":"^0.2.10-develop.1627570912","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627570912","@scalecube/scalecube-discovery":"^0.2.10-develop.1627570912","@scalecube/utils":"^0.2.10-develop.1627570912","rxjs":"^6.4.0"},"gitHead":"ff74a03f11056d7bf802cc1b824486be0229d9d1","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627570912","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-PZSQmFhu7o+KW/65HFm8J1T55Z2DJyhcow5fX29a8gzY0t2YpnmV3O2BkjgxI09uB3C54cex3rzh6B/cyEAfmg==","shasum":"34435b2f0fbad34ffa591b317b3a6147610b8395","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627570912.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAsL9CRA9TVsSAnZWagAAl0sP/iQ7RmMqY9WHXu9svMLS\nEmHnTiBVGS8cDMTsPk4sLWFDW+GTzKoqv66hbI6VT1wrv1QCsYeDtsGNdMQN\njcx0PKbj59VJtqN850nium6F5yq3fK/cjGerDlQArlqDt+4QaKs/ZEal6ujE\nYG1NGCv6IbYVplprdlDob4YZvOEq+WXNJQxMv+Kp0NEAqrLZqdV96Z8cJcuH\nhQRReG86g8+RUtfxNHyUErYGpGcWzhzYsC+sYXxd0kHOyT6ZNu8yMyyU3YpK\nm1Zmq+scrYt/9wRKpa0nBt4agrJYmvnBuQKg4Yh1+0peaMhxpmTHn1wg5JN1\n3FJi7MwiHW2W3fNIp77pmyuyXDSn8XiTIL3LlMYVyA0VZB5OKSRX7eOl9MMo\nMh7eg0Ysc/fMaaDuso8Sf5OrvJyzh5g/vy3+MQjFZxEtPHRHrgjcPTVh96R1\nWSomAde7aufy4ESKx2UX3IlFALdmZ5Hb/SttpGeD051PHqA/m3YtuKb693gR\ncX3WdazVh0lr6vpiPx4d7QLpPTEPSa4FbTWBZMvK8sAsRQfthVPxUHr1SktI\npSxjekCR0ZQqaPAzv5zRxn29pSi3+9tR+V44UQXhQ+6HMC0sBVB+Pj8pUUaw\n636FW2yAtty5ArAdt3COByeCM8zE3qnrb4ykQmB1h7r2htZU2vb5jl17Rv/R\nYDmc\r\n=KqjI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBMJ/JdOHF2coanLf8UlwhJV1slC6DB+uaultEzM+x4pAiB7YSKNi7o1Srhqw5LjA/d0s8nTYHbcDyprPchXzuozlw=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627570912_1627570941423_0.7486694509715857"},"_hasShrinkwrap":false},"0.2.10-develop.1627571964":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627571964","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627571964","@scalecube/routers":"^0.2.10-develop.1627571964","@scalecube/transport-browser":"^0.2.10-develop.1627571964","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627571964","@scalecube/scalecube-discovery":"^0.2.10-develop.1627571964","@scalecube/utils":"^0.2.10-develop.1627571964","rxjs":"^6.4.0"},"gitHead":"7071c6cb9050475111618588382ad363dd6ea29d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627571964","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-KjgiSqjHZ80qBspdTbIAvm29Q3EkKpaLsTAYaXmYgxrvKF8yVCTCaCz9DN/ifsUHg7xfJPdkLJqfALsBTKrXwA==","shasum":"d8b1821b9142853b43f7cf854e6f2015513854a2","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627571964.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAscfCRA9TVsSAnZWagAA88gQAI6Kd2PcYtt4URpCVx/H\nHKWNAf0zwYqls1AZVIF12cYV/dPSkY+Hmi41dlrucFjsEp8P5qY6+gYJV5IE\nnDXvExt2HjiqE2zjYnhSDox90aTtk//wNGW1ITAiHtMnUcoLh31Lc/pPHUAd\nTk5PcVvY1iEqK1TUy1tmg13mmQZ0zVrk/YYvXSOZazU8sa3tSe81czSUC8gV\nPWVExmdC5x2iH87TCFU+U7BHBFZvVvOHSYAglz0Zuck7vzGAoS/K9N1U8aZ5\nXLyK9czd7/5D71xoqQxJDd/x7cxjfNT5HZGsBzVGboyHToh3et3pmrqo0Prz\nKvQAE97HB6FRD5qmdQqzPV3yGAD4odNPGILEf+sRcRL3UG0YwWSwG/hW1+b9\nj5f0Xat1FpPsOlYYFO7p1PqX8zP6kGo3gU4FZ2wU+XfOh5kW7ObILimL04ao\nsU4gmdpUE3jDD8G0Y/+MGqkGsYXsaJEwawOJWDsiFLpvX0xJ/tYPnZPU0E5V\nKOHv43Pp2T5Znhe+up6mB08P1j9+mit/hx1Y/ad2uDNp4fqYdbpwQWGSkyoa\nyLpLx92Stm4al4uSfwahHjXKjXYtOrAsBMc6bGEeHOLSrmTt7DTsYozP6RTY\nmVWTLt15jco2y0P0/rtL4rQ1kTiDXwrE428Vm9ZFj9X+c99j7+HllHM/tFx9\nHE0m\r\n=qq5L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDhAAxT3JNtlP22d7C2ioG7quyiaE1RcFgfm+5DMNhdpAiBwC8i2t+y4d6f84EXoNyWEUZ9V4cRvbT2sl2VsfkpeKw=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627571964_1627571999777_0.0671519853699607"},"_hasShrinkwrap":false},"0.2.10-develop.1627572615":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627572615","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627572615","@scalecube/routers":"^0.2.10-develop.1627572615","@scalecube/transport-browser":"^0.2.10-develop.1627572615","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627572615","@scalecube/scalecube-discovery":"^0.2.10-develop.1627572615","@scalecube/utils":"^0.2.10-develop.1627572615","rxjs":"^6.4.0"},"gitHead":"6279a606374bf090954fdfeb5867ec58585706a3","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627572615","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-kr2Da0t1e2pBoauS90H6KaRkE9lkrvEonRubFTPwMsERJGMLY/d6GXgwHg1EvZvFPV24LFgRajsh0FSuho0tjA==","shasum":"b870ed6f63fcb29780dd84e5ab66494ec944bdce","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627572615.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAsmlCRA9TVsSAnZWagAAfnQQAIBIp71pYn5/t601TfQP\nJ7DQ8rONKQaodwGj8JVm21rG9W/wgT27n/ZwZkppxfwd/+MPY8aQSfL/E9tr\nXO6HIWpoWSt+BCGA6Nr2bKzKwIXREL1V19NiF3Eo9ZwUkM8+uCbZWVoKGW3a\ny3TRMCIPdeja5PwHAtxcpRWfvh2xEovRxG+IfwekTXqb3YacTYAu225QK5p5\nnednaYASCq4iOS2W9AP7XPGQ9yRoJtcpNIi0c0U3fBLdduuKeol9XMPfC40j\nthn1UHgHxQofubk5MEXBbWGhaYVWK1DBj99IHqiNhJyAVz9Hgi+Fh3KWZwuF\nhO6WrhxbGzbiu6DKw/TJ/Jxx7kFWEhPNORZfssJ9fTQ8qUpKDuBGnc+7OSYH\nj0GXnWXPNpytCKk1LIpsHyimaok/eB9lFI8+++xQUhivtpaEYXvEgwviG1l4\na5Icunzz3XPl1nTBJuEsnOcJvZE80WJP3ffeX7FSsZ39zyWx7mY4cyKS6TOe\n/UPEkzMqJKPHPSme1hpDYMw+D1Y/lEGPpjRN8YT9iSAdvlXLGIITCRLjbV3R\nMV0cuhieHVlupBlwz1D5lm6UVQ2DWCJENNWvb1A9BNfVCqj+pWXgiP6b8W7p\no93OKJDQUbI1hw60fg1TNemC6dRvbhrlyDX/zkSctoqKNs58+olqGVtP3ZSf\nWA0h\r\n=YLBU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGPQqbq8oGOQtrvq5jfALsZSYGYLvB3TwtbD1VK9B5fVAiA0AX1VCj9vOlilcfe3S5F1OqW8ZLdQwDT+Ts7yfMPuWg=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627572615_1627572645318_0.8040673877108582"},"_hasShrinkwrap":false},"0.2.10-develop.1627577023":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627577023","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627577023","@scalecube/routers":"^0.2.10-develop.1627577023","@scalecube/transport-browser":"^0.2.10-develop.1627577023","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627577023","@scalecube/scalecube-discovery":"^0.2.10-develop.1627577023","@scalecube/utils":"^0.2.10-develop.1627577023","rxjs":"^6.4.0"},"gitHead":"2231f1c5ab72c84e6fbcefed4de115478860bde2","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627577023","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-ScfNa1Vxdjmm5uWbmSi22Bt412zgTM7wXMZp4PhNaNYHVm4Hn5MoqwDt2L2umbKMxh0tgh2WGfHGJppR6K6WIQ==","shasum":"a09f087feadd2c2e232364490c3de4d64c923f1b","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627577023.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAtrbCRA9TVsSAnZWagAAea8P/0xoDfr7ck2an0/60s/5\nUfsu/RBHRQBuTylYf80r+8YIEqUds0hyRiRHGipYwgjA5GQLIimJKJpyHrH2\nvPuWSREcqUN/7nF5V+kbyKy6K7gMLa/FfBYhPZ46meVjcgJcVNVAgTySJQlZ\nXCHwfUzQaR2VTmLDHDYp+NPSnPLxZMZNdWz/kktcKCnHntn9y2jDS4QQbg6I\nNotWQl5WdqLlWgbU2ouUSO8Hm3dSfq8eukv5yfyntEE1pKOQfw8TbOi/+RHA\nrD44nsosOMjnD/RIeNZQHcb825sc+IYJs65906IVkYA9veV2YWxLH1itkbFp\nZnbb6pCDAIA80LHfiWja9DYp1XVuDb/z+OIRy4dhMuoCkgxjwTduLLNZq/V+\nh3/x+GGCJwdbSpW9zIlF+yhIhUu+EGYSkrdRrngQ6EiO7DD6SuYpZ9iLdL60\nJpvJiRdosaBkZJsppQ117LwMB+db8VwOB63h2dT1Z6vr3G90PSNW/kXqgiFA\nYjAYvUrvgmRb305OvSStFhQSDNp3ub+FVKjk4NayRKgRTj1GZb01YuTBBXgx\nTwMZMNpj7ozyW3/z0hxM9vakN0Dzlwpx5TcPk9GWJue3/UdgsBZDOWPggJYC\n4HPbm9dAh7/PSJgtCuUoq6ypCr+o00WbSgRCSIYFopEX9RiTbaDH4tVYd6wG\naS1f\r\n=xCfH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9Dop/XaCJQWBed7XWewTdR21EUTTpEz/o6JviK73KFgIhAJN6vGR16MFeBa46l5RfUgpz0in8eoE7PibijBSNon/O"}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627577023_1627577051228_0.9621410060123916"},"_hasShrinkwrap":false},"0.2.10-develop.1627581576":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1627581576","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1627581576","@scalecube/routers":"^0.2.10-develop.1627581576","@scalecube/transport-browser":"^0.2.10-develop.1627581576","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1627581576","@scalecube/scalecube-discovery":"^0.2.10-develop.1627581576","@scalecube/utils":"^0.2.10-develop.1627581576","rxjs":"^6.4.0"},"gitHead":"c6399a6f074b562afeff0b9a4b7dcad3980ba132","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1627581576","_nodeVersion":"14.17.3","_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-UOf77c+g5/VWCM3DZVki9ogHmmyFtq1k/okjdFhT4s8SHQMIxRN29s/9pOW5Cm6h22y9mRUbznt19FVjNrMrVQ==","shasum":"92834ab52f86b9e92b4c38a99254270e72edc778","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1627581576.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAuykCRA9TVsSAnZWagAAtrAP/1Hxme3j36kvFfWpHFgt\nWnI2eNhu0uj/gVFLOo/LXczu9uFodpYam+elTE5ShZwgSpaBa5prN4agzarl\nEfsrwoD2RotiVBlxIkSK/5Y7h0ZnpA9hrr3Ze8QuHFKTIDXX1K43I3t7KDEV\nFnNfi6COt8EtqGCVDSqbucC6AnYxDJOutJoZNID/OoFhbIrM4vVm9BCpdlly\nyTL+CIjKbNDQYOe1GOOkzpGeqQ7PpvXM7nWEh2/3IRjJifQBrQ44BawLsQqp\nV7zn3xTAygFAIdmoKz1S0UgU5iZx1GF3gYjr8hpufjEa1kFtJkdyNCN2WJ67\n+vu9GC4kk512CmqSr41xLiKbiz+sdFzJVZxFVsB4eM2/ssuSkB4JwC1GkBm2\nsZtOukTEqDgDr8Xa8BJynOqoCmgqLEqo0XDuvQl5ugrEEZEYsZb8jggZy80n\nemCxNL/t4SL/2VTLSIdkLT04TMgaL4pn+WVqiT+9L9rSuADeZMXY5gWRZYrx\nqDeefQj2FwG+CXHRmXcXasJPiKSVBpw9vkqn3LHTs1bfhd5IcECc75LU2JBf\nRf0GWgqsyLPgDAgewa3TuKBf33QB/KDXFkyLVxyXzv2A6cP1HuDsh8FS2lxn\ngskmSyOZw/cgZfRNEVYZ4zdSupN9TuSk8C8qJXoV1tFNiBZf3ZMqOtlteqmM\n4pua\r\n=aExO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDS/9XWg1d/PHYWjn8LzgtkAOgOuY43yZfB1cJTfm7AlgIhAKLhpWs4O2OrTdGj83aE+6xC45xbNkOEQZ51IlsWEJZI"}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1627581576_1627581604395_0.7278188017536411"},"_hasShrinkwrap":false},"0.2.10-develop.1628635932":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1628635932","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-develop.1628635932","@scalecube/routers":"^0.2.10-develop.1628635932","@scalecube/transport-browser":"^0.2.10-develop.1628635932","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-develop.1628635932","@scalecube/scalecube-discovery":"^0.2.10-develop.1628635932","@scalecube/utils":"^0.2.10-develop.1628635932","rxjs":"^6.4.0"},"gitHead":"d52d6afe4aa1533db2fc107355339cdad0cf080d","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1628635932","_nodeVersion":"14.17.4","_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","dist":{"integrity":"sha512-0O1eheTdK+UEb/p7UlTAPliQaU3RkJcuHfojDNR34yBIqXaZDQ2xWwY/1J3i4jGkxdR5At4VccrdzULVp1AUzg==","shasum":"6b4fe9b935d57b3b3f40511d4c3a7b3d04deacb7","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1628635932.tgz","fileCount":41,"unpackedSize":183697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEwM7CRA9TVsSAnZWagAADioP/i8tM/OUQ4NpryVbpgsI\nf9lSgYvandemyPL7Etzp3iDh6zdT4KZaYEFhGuZ3WhgYptzI0Oi68s9ktS7Z\n8i+1RX+V2cbbumE6OPCXbkOAqSvVSIDOJ81zJfNKAGQWmL2IAZOmtAS27c6i\nDQf+UUfri2BS3uXUGYId6N6P5K2zK0uwTmLOXqp4bOybekQ/fqdNxYbDSc7s\nibrkFFI2X1wzkmxB7m6DTyzugKzMMi1+ZPkMAKmSBt76al8WkkGLaPDyl8sO\nDosrl2Tw1H4yXhz7LsjUJeQQVa2BWPjtcDyEy46mz+5WvycBBcVXDiawngDc\nM96T0Ly2ROeR+a30hgW38cpfxZbuGztaSyS49N00AOrJj//10gc9VA2RuVzf\n6RTQPiRLqwIUx+R70yisGX5GzJ4IMgPLvvuC6sBxRevPu44LssZ3yLo4PaQo\n0GDOBPK4Zg9IbY/UIjCc0dIU/iP95y1+HTuA062tUhjX8AJYGb33jefvR1t9\nccN6TR0EgPhoc+jEQ9oi4uppzuQ09d4x6kxln6s+VJYNSuG3N0iSB0Y7XYTw\nT8nM65UVsPC3AOfudKa9rVDNdRvGpT31X1a5OrMVGJzkieVRGM52sNDhCW0l\nZp1xNR7EB7h2VWfgJXhQqvoRxCGkrORaaRoHV2D7/kiLMLrp8XJmyAslS/Mr\nCabs\r\n=x9tz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5XyqnupfXnYnAzPA8GExJPVDmueOYKiiTSho2tnmCIgIgNjMwkwohpoda9090tp5uaeK7humv6/tfdfgdaBA5HVk="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1628635932_1628635963787_0.6228206601904813"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-z-test.1628640428":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-z-test.1628640428","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"^0.2.10-snapshot.feature-z-test.1628640428","@scalecube/routers":"^0.2.10-snapshot.feature-z-test.1628640428","@scalecube/transport-browser":"^0.2.10-snapshot.feature-z-test.1628640428","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"^0.2.10-snapshot.feature-z-test.1628640428","@scalecube/scalecube-discovery":"^0.2.10-snapshot.feature-z-test.1628640428","@scalecube/utils":"^0.2.10-snapshot.feature-z-test.1628640428","rxjs":"^6.4.0"},"gitHead":"f8e254a80696495cf5a8c958acf8eb1b7dba7323","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-z-test.1628640428","_nodeVersion":"14.17.4","_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","dist":{"integrity":"sha512-tuqe+VWBxV389Lz/WcSOufuZfT1BqGziyLkUYhO/sj9V8DQmUzuwNVyYY8sCM0r/7NlCMdpbXRIYP8HHtZMkHA==","shasum":"66553767b907cbd08deb5cf6d0f3af2ed0334692","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-z-test.1628640428.tgz","fileCount":41,"unpackedSize":183809,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhExTFCRA9TVsSAnZWagAALDkP/2UpzbiGOH2pWeEuqNz3\nWia+2f10gJLt47vURbOwVnP9raWr+SU2f3RO4ktwt8+r4ByrdhdYH11fQF5C\nwnVBnvbFIhOYGJAYd1wwBlpJuzRpvbYHpYyzAdhFCtS7qRLgT+/Xq0oCB6bm\nKzt0ozy7j9GZnIgEywibKYdTJhXsCscdL5UVNeyeEad9KcOp/OVTANKnSFei\nWWTfaAZKqIAPBw2L7xSbML8GSvIer8IqQTUSEefA19lFFzZr6PBvpo/JnXGs\ng/06cse3BNM23sWav5XZrNXRo268P1kxsNYLfBEj3f0i3lCTWzJ51HjSxR5U\nxVqTlT6Hv6mzEGjHwEOCc4Lsc/N1CvHFMxUA2Tc8Sh8r0jpN9wlRqSLEf1ZA\nDf7Uag/lo/icxLxuOqKIQuvbfcWReJu+cICSYCQMxyegJR4BTCY1ENAci+hF\nRjiSmnxKKCvzIyS+pn+1eEZls/l4p799oe6HkV6xYRskVoxIwOfRYwNsNrZ5\nK/8N3UQXjWuAxKiXA2ecSNN/pQ2tdDXTALqZRe5hjyQriG1B3NjlqBcAVLzQ\nyG6iiCWuwCKfaglEtVYxFySmWfY7rLH3ZSUDaVUiXzB3E6R/gwhFvsjomMf3\npm1aRFBmArxRIzHb176xEm6u4N8jfF15Dnmq5NgaJXk0QfB5CdxvD82RTSF9\ntbx8\r\n=qMni\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGiDmbtN6pcRVkCUc7wZiTEPk9zWRkEwFQ/RnPunQ41XAiEAuzDS2IO/1PhNkEF8ReFlp8IHcMik+sMsuXHcv77elpY="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-z-test.1628640428_1628640453138_0.2486912916447208"},"_hasShrinkwrap":false},"0.2.10-snapshot.feature-z-test.1628671774":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-snapshot.feature-z-test.1628671774","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"0.2.10-snapshot.feature-z-test.1628671774","@scalecube/routers":"0.2.10-snapshot.feature-z-test.1628671774","@scalecube/transport-browser":"0.2.10-snapshot.feature-z-test.1628671774","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"0.2.10-snapshot.feature-z-test.1628671774","@scalecube/scalecube-discovery":"0.2.10-snapshot.feature-z-test.1628671774","@scalecube/utils":"0.2.10-snapshot.feature-z-test.1628671774","rxjs":"^6.4.0"},"gitHead":"39b04c07ae20197bfd43604648ed60c8a7e64906","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-snapshot.feature-z-test.1628671774","_nodeVersion":"14.17.4","_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","dist":{"integrity":"sha512-UoIXltM8KW2DqW69s+bMdofaMSCol/V3lL7/p0ASkR05D1ilgK+C5Bn3eO3v/aV80Pk5V0od1Gyu3KcpZ2RHgA==","shasum":"fd1ac942074463cc42db936c8a12d89372cc68e0","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-snapshot.feature-z-test.1628671774.tgz","fileCount":41,"unpackedSize":183803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhE487CRA9TVsSAnZWagAAFB0P/0XSK8HdeMFiDlCdhZbW\neyRv66b1jYIJR2tj0uqOV4UVgM4wRhrnsMISSwwV99+ArvmOEpmUn0phOB27\n8XkZMcxsyZjSx+ios/0s5Ci278OBpgIXMWJ+oAGwCUpm4sU6C8wFEc8OOtOl\nISMfn9dVvbtZthmoUUW73DMGdvJFpS1eBzJVwBbGzaHpsBZkSJnkJifXDPO6\nHTAtzYwsxo/R2mRBaWc2tjx0x5QYp92tf/pbdb4/Nzz63PCcSn0MvYxWUFUb\n180JNQYZCPqPpMiXAyDtRKnejmk5Gs3EjowY+m1OvR9+Xk3KEATZNMzgQbxO\nAwDVMmVQWSJKKN2oGiXkeuE2wb1ZQamD6VnBL3at/rGaCqKzcmRuoL0O1xRs\nF0jUxBemwqzOUsFwsbVtRKw49YBmD7AEX/6ru4Z3zHVH2JhhJfXCC+fz8zpe\nO7YiS+tbsk0HpoEbBuljklJquN9y/JXDKD12SnyfKultQbJl/UaBFWmJ21+z\n2ENFi8X1WxmzCqvSuMNJEVktEd3He7YmeLV7mYy5G+oP1rGxMfX/DIR5MNL0\n4r9gxpTQPgCN4dNd+hZM//FIDfZTGM+KmCQeJ7wkQkHYLh0ByVoZnXZKDe6I\nTgoeXBlSqeJ3yj8CDO3fu3EyLscvzGsvqedOda8edmgljOPJhgqZs22G1mvZ\n7fkn\r\n=KBP4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDp/p+x1YA4aoHvh1CKD+rC/R4D1oYFyNAn7yje0crL8QIhAI8tgEB1sB8BIE04eFNiqE7qY+2dl0qwC3gY0Nm6/1qH"}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-snapshot.feature-z-test.1628671774_1628671803599_0.6003395223888812"},"_hasShrinkwrap":false},"0.2.10-develop.1628675503":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1628675503","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"0.2.10-develop.1628675503","@scalecube/routers":"0.2.10-develop.1628675503","@scalecube/transport-browser":"0.2.10-develop.1628675503","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"0.2.10-develop.1628675503","@scalecube/scalecube-discovery":"0.2.10-develop.1628675503","@scalecube/utils":"0.2.10-develop.1628675503","rxjs":"^6.4.0"},"gitHead":"139aa9aa9cb69cf9d1681f0fd76431fe7eaee4c2","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1628675503","_nodeVersion":"14.17.4","_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","dist":{"integrity":"sha512-orClgPmZQQasGa1x9WDyV5EmCP9hQyg39cfzjXbTnoUdmKsUjCeKaMdcB+X/FhX2coOugRJv8PFaE+3K+wvMiQ==","shasum":"268ac8e83ba84e5984604461953e5f0ff3ad8658","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1628675503.tgz","fileCount":41,"unpackedSize":183691,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhE53KCRA9TVsSAnZWagAAg8oQAIwaOUveHIeWseSCwx0g\nvo+MxBx1g1Xq5OAP6CXbTP7pCPaKhCw6yWAo+n6VwPPPrAco/zGhBBflBN4A\nNP9Lx3dRC8bUtPgGp3Ha87nJ8gBiFkXZz7W1QU0nSM1VPG73JgzGQzgZt7bv\nLIpnV89lUq2h6GQe+JLQ00EXmZj7BIVRco/hyeZXDBXJXuslY9LMA1IkaHxd\nCPwUR4ttWgqYnPKXf/pi50PvSkk4pOTNBaPoMvahffUeTJNtEtszQhjYRUB4\nzgKOiAF+AShS9WqSP4i921qW+oGf36uzAEl8/ziq/MrpTaLCoT2XIucabBib\nYDcVhanIkyGi2BCWFKP9re480X6tGhXbNLAWu0EqheGRPh5zDCQyKVhHLCAo\nR8J5cLKcvyBomA5rtM13os5aBLOYH13eU1MfgELJDC/UW4CP1IJ/jojpoMYJ\nyvQ+9JXYcAcGAK2BOjz2kSiTRn2PIryP9cf2fn0Y1hQ/yqUXZr3hocfNayaK\n+bqFgkCNE7Cm43maBZngzyoGIT2DwHATAFvhgnOv8ytPvVZQzDmCLRFTv57G\nRkPv1PZ24Cq5Sr2gWzbdm+5wuRcR6dE/JBVEHjT8WE8P/FSr985F7P0DprsM\nGWolpN5L0jgLmdgTpTKQKumeZ1dR6BPdq0Hp7/SrIsk4vD3X9TyjU5wCXElW\nZbv3\r\n=dRpM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEs7bSD/V3Hdfci9/lY1jfQlN4VXhBbPjORvlIyeQNCMAiBCiFuukZ1y+N5bqqsJlsAwLFHC3Ln+jDmkMGT3mW/vAw=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1628675503_1628675530413_0.8975934113995265"},"_hasShrinkwrap":false},"0.2.10-develop.1628680608":{"name":"@scalecube/scalecube-microservice","version":"0.2.10-develop.1628680608","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"0.2.10-develop.1628680608","@scalecube/routers":"0.2.10-develop.1628680608","@scalecube/transport-browser":"0.2.10-develop.1628680608","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"0.2.10-develop.1628680608","@scalecube/scalecube-discovery":"0.2.10-develop.1628680608","@scalecube/utils":"0.2.10-develop.1628680608","rxjs":"^6.4.0"},"gitHead":"a630b8512399aee727bcbe99b3267df418043efe","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.10-develop.1628680608","_nodeVersion":"14.17.4","_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","dist":{"integrity":"sha512-/Ojo8PfZcni0Kks3tZmpNudwpA6QnxiBibKJK9Egh58h5KsHugJYYM2XdpygmXQqk57H4iWFjsCsVMhBXP/e3Q==","shasum":"9114328288c4d3fccd68f4732c787031a6e2425e","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.10-develop.1628680608.tgz","fileCount":41,"unpackedSize":183691,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhE7G8CRA9TVsSAnZWagAAC78P+gOhnyFVHy39nxRs1um9\noGvEadpW2XyUOPIu5cfNK954kZwLvLyo7x3o6Ocamd9F1/dX8LkvwLUxnyrq\n4lhQyUzNNXrw6SPSM96UKWRWka3ARnwhWMGXFP+3At1n9WKLWos+jR+37/jV\ntOv2Ly4IL5YkpdyM6zOE9GThMjfhXaPUvlXXEGSak2H7UmRYDKrTGk/1yRIp\n8k7tEHBA/6CDNYBJrc9tcUby/RJvm7g77WfszWie4MmqHTUKZO3lj3toT1fO\nYLRfwidpTH2fndEtYoZwy6NQPxOnv6rYrmAKfF3IrqHGSyvinuQaGEwQSftm\n3YP7Up85JT7ESqtFTwToSs1/B942IFuxjYkwmUoeswYmJitwibLLXOroA1pU\n3wzXrQGmLZ6GQ29zNhSKUSmdupkBqt6mjkVJ0AvL3vB84kfrJEznpUpNwmb1\n/0tFU+GBrWwsH/JFgsrrE5XQe3OdE6zcRincMLIgZy/9DUyqZXJkzHyDKUJT\n82QmsGRyyxx9jMwaRU44BK54BGhAak8rLCIeWQ+M3eEwX1efZfePspDb6SIL\nE8KOCct2RfZfcTvW2a8hoa/hhYAEvj8ycfTym1nwtz9dgP95w1bDYyH1E/xK\nNqwINSBuxLsImBYmWQB4JWC53+nTnuRcmaEQLPld7d3B/OW5/o9CjHJ6clCv\net95\r\n=tQPG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHSdl4yl+FSk/olTB7ImJBAOUc0sffBR/VWXN0xd0/4wIhAPQC75rEOb88UryPR2VKjey7v/YAq0qI5nzcget6Rjhf"}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.10-develop.1628680608_1628680636433_0.004628544461985129"},"_hasShrinkwrap":false},"0.2.11-develop.1628682230":{"name":"@scalecube/scalecube-microservice","version":"0.2.11-develop.1628682230","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"0.2.11-develop.1628682230","@scalecube/routers":"0.2.11-develop.1628682230","@scalecube/transport-browser":"0.2.11-develop.1628682230","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"0.2.11-develop.1628682230","@scalecube/scalecube-discovery":"0.2.11-develop.1628682230","@scalecube/utils":"0.2.11-develop.1628682230","rxjs":"^6.4.0"},"gitHead":"c0f2dc85d26a2db0837cfb8de66e35a41f08a5ec","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.11-develop.1628682230","_nodeVersion":"14.17.4","_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","dist":{"integrity":"sha512-cXZD1zDofphOJ/p9mjGYFO/FGbNv+uKq6PEfbXIdY+JZ/zB8hWjsWofMo54SUrImA8GmpKB9DCpw27UgFErXgQ==","shasum":"750b1365aaac3a2663a090ad28b9dfa80424de06","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.11-develop.1628682230.tgz","fileCount":41,"unpackedSize":183691,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhE7gVCRA9TVsSAnZWagAAPeoQAI+EX965YtBeOyL0Zmyi\nM0DWssePd+YwmFs4+xHA6gIgpMEvp1qMRTQkxldGqbYFjKl16Gp7EDoJzLWH\nHHEE5hMzUb8MXZpH+TJHVXbbcgPlWtq0GsBKX705b7CYKYkJIlVpaKH19lvl\n9k0KpGHWxClSLnrYbQY3z861rU3Appryqvs2mp22DGW4fAwoBzEeugu2jTfm\n2nQwofB5goUDb+1CR3ahKOOa2Fvv9UUAfq4e/PkbpBzyhtQNyJLjnr5Cajg2\nApgWOHglUSnBUe3waWdzJ5P+BjqBUvdQV8U9d2QmHe1SuME+hoyZqxQm7NaK\nNzvSveIt+MCmLZXVeyZsCZ/v7EUb28tbv2Nf0CErEsSHZYh5x2tOM6kimwtw\ne1cYN0xx7uNqZWYZPjNy1fkSV9hfmFRCBYDd61nR6nfZ/Ol/9NpWOOc25mG5\nfMr/CdD3OeSn7rfytj15JZW2PVoH6RyprCJKnjKSXE30ypUc67DC02wa3z9g\nFiTpn6ctgOWn4x7C1OLZMTsS8IJgH12bqALQscRAeR4CYInSGUGaWZhHOmXj\noCBSDRZ43KpenicN4x/ShhEVlkdZMn3D0n3UpnYGqBDZ9Ax58hLEK3ZX1oLZ\nNNAkA4QjfWDXisfPBTtZiOIz3GrAc9cyReuJKXqzKzhAukbo7WMbRLPYeCTF\nokTZ\r\n=IV0P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAkgU0RXqrw3stahdpjUFaiXJCl0/Dj6/eYVyvO6dUv/AiAMKa7c+e9S3KZeXFn5L6YUaaqHEsnkVE7sk2jQyguOFw=="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.11-develop.1628682230_1628682261424_0.9117222636308162"},"_hasShrinkwrap":false},"0.2.11":{"name":"@scalecube/scalecube-microservice","version":"0.2.11","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"0.2.11","@scalecube/routers":"0.2.11","@scalecube/transport-browser":"0.2.11","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"0.2.11","@scalecube/scalecube-discovery":"0.2.11","@scalecube/utils":"0.2.11","rxjs":"^6.4.0"},"gitHead":"7c229339332a364e801bc2c20df2b8674b1cfaec","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.11","_nodeVersion":"14.17.4","_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (linux)","dist":{"integrity":"sha512-ydWsrtiHUbebp+9KaSEuX0DcxOU1RY+Ac0seugbBSou41Fy/H9wUITed0DBT2Cl8fUlWzkaChKHRZOJSUh/rqg==","shasum":"73277d7298e89145cffbcd8ddfc5868966f03bab","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.11.tgz","fileCount":41,"unpackedSize":183558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhE8OoCRA9TVsSAnZWagAA5gAP+gJV4BAK/U5kUWdSvWp9\nBYHtCJ0HPX6SsJi10Gi1/fIAw21RSFk8DxlbvWTeAep8GHboTSWYMV0DIcEC\nbknP8A6l9qE/sq5trZ/0S9lTw8Kr7q+bD/auoNAkcx8jbUY/ZsFJHNudek0j\nbhAlcDQjIx6TvpZ8YeE02r5E+aSKsJmt21D3Jmi8DXC0o2Dg1ZlnqlcmOt3u\n2wPYbR5DKRGKAoSQE77KBNL6mJoczPEECr1s4Zb1Q2P8fpA/6vgNi3dUhG9e\nNNxhLECVDU6AMifjs3ACTsvz0IZ8mSD4dty/0QUSHSF+GPdX0THKzYQLoKK8\nuzi1RgAct9PulUXbzSQvoEztRJZX6IkxcJ4/Lka2m6ODwsiorqE/zIYUrTQP\nh04qDqAwgebDRUOiwhJeoT+oGUXfDyw0Iva9fHO0Ztz2VvWVnXIj8B+gcCNG\n9g77g0OoQAYlaubRVSksJ1q2a8hqnBORt6f2aqeBS1RCIEQHm1LFSbczGqK7\nj+dDyKT5QJHGs3+3iyM+YspQgOFk6nHqkZ7cYk+9EcCENV7yNDshCi8Cax2z\ns/76rr2NfHDGEVAXDQ09HF2fyeBQBRezqVHK9RShB+j1hYvEepFQToNI4DgD\n95FUA1eSfbaGLqyPuZwriXDh3eFswnGdeYvcyVSA/6tBP4HsN6xqCPu7kWxV\nXyRD\r\n=aTet\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJe0uoe8N3PcPizdsC59CsP9PkVBEQSho7NncGMydi6QIhALOxe0yjhGhVucOIdwyEl+n7HjG454hHAk1V2N2XvJ5N"}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.11_1628685224010_0.5895931209188046"},"_hasShrinkwrap":false},"0.2.11-snapshot.feature-node-matrix.1646099022":{"name":"@scalecube/scalecube-microservice","version":"0.2.11-snapshot.feature-node-matrix.1646099022","private":false,"main":"lib/index.js","module":"es/index.js","types":"lib/index.d.ts","license":"MIT","scripts":{"clean":"rimraf node_modules && rimraf .cache && rimraf lib && rimraf es","build":"rimraf .cache && yarn build:es && yarn build:cjs","build:es":"rimraf es && rollup -c rollup.es.config.js","build:cjs":"rimraf lib && rollup -c rollup.cjs.config.js","lint":"tslint '{src,tests}/**/*.{ts,tsx}' --fix","prettier":"prettier --write '{src,tests}/**/*.{ts,tsx}'","test":"yarn test-dom-env","test-dom-env":"jest --config jest.config-dom.js","coverage":"yarn test-dom-env --coverage --collectCoverageFrom='src/**/*.**' --collectCoverageFrom='!tests/**/*.**'"},"author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"jest":{"globals":{"ts-jest":{"tsConfig":"tsconfig.test.json"}}},"devDependencies":{"@scalecube/cluster-browser":"0.2.11-snapshot.feature-node-matrix.1646099022","@scalecube/routers":"0.2.11-snapshot.feature-node-matrix.1646099022","@scalecube/transport-browser":"0.2.11-snapshot.feature-node-matrix.1646099022","jest":"^24.6.0","rollup":"^1.14.6","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-filesize":"^6.1.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-typescript2":"^0.21.1","rollup-plugin-uglify-es":"^0.0.1","rollup-plugin-visualizer":"^2.6.0","ts-jest":"^24.2.0","tslint":"^5.11.0","typescript":"^3.2.4"},"dependencies":{"@scalecube/api":"0.2.11-snapshot.feature-node-matrix.1646099022","@scalecube/scalecube-discovery":"0.2.11-snapshot.feature-node-matrix.1646099022","@scalecube/utils":"0.2.11-snapshot.feature-node-matrix.1646099022","rxjs":"^6.4.0"},"gitHead":"4da66c043b7fb734356e070337763d52e9590b9a","readme":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n> This is part of [scalecube-js](https://github.com/scalecube/scalecube-js) project, see more at <https://github.com/scalecube/scalecube-js>  \n> [Full documentation](https://scalecube.github.io/javascript-docs)\n\n# Microservices\n\nThis package provides Scalecube's implementation for microservices architecture.\n\n## documentation\n\nplease [Read](https://scalecube.github.io/javascript-docs) before starting to work with scalecube.\n\n## Usage\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { TransportNodeJS } from '@scalecube/transport-nodejs';\nimport { joinCluster } from '@scalecube/cluster-nodejs';\n\nconst microserviceInstance = createMicroservice({\n  services: [/* array of services */],\n  seedAddress : 'pm://myOrganization:8080/ServiceA',\n  address : 'pm://myOrganization:8080/ServiceB',\n  transport: TransportNodeJS, // scalecube provide a default transport configuration when running on browser,\n  cluster: joinCluster, // scalecube provide a default cluster configuration when running on browser,\n  defaultRouter: retryRouter({period:10}),\n  debug: true // default is false\n})\n```\n\n#### Define a service\n\n```typescript\nimport { ASYNC_MODEL_TYPES } from '@scalecube/scalecube-microservice';\n\nexport const greetingServiceDefinition = {\n  serviceName: 'GreetingService',\n  methods: { \n    hello: {\n      asyncModel: ASYNC_MODEL_TYPES.REQUEST_RESPONSE,\n    }\n  },\n};\n```\n\n#### Create a service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  services : [{\n    definition: greetingServiceDefinition,\n    reference: {\n      hello : async (name) => `Hello ${name}`\n    }, \n   }],\n   address : 'seed'\n});\n```\n\n##### example of working with dependencies\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\nimport { greetingServiceDefinition } from './definitions';\n\ncreateMicroservice({\n  service : [{\n    definition: greetingServiceDefinition,\n    reference: ({ createProxy, createServiceCall }) => {\n      // callback response with createProxy or createServiceCall\n      // it is possible to inject the proxy/serviceCall to the service\n      const proxy = createProxy({ serviceDefinition: remoteServiceDefinition});\n      return new GreetingService(proxy);\n    }\n   }],\n   address : 'seed'\n});\n```\n\n#### Use the service\n\n```typescript\nimport { createMicroservice } from '@scalecube/scalecube-microservice';\n\nconst microservice = createMicroservice({\n  address : 'ms1',\n  seedAddress : 'seed'\n});\n```\n\n##### example of creating and using a proxy\n\n```typescript\n// createProxy will return a Proxy(service)\nconst proxyName = microservice.createProxy({\n    serviceDefinition: remoteServiceDefinition\n});\n\nproxyName.hello('ME').then(console.log) // Hello ME\n```\n","readmeFilename":"README.md","description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","_id":"@scalecube/scalecube-microservice@0.2.11-snapshot.feature-node-matrix.1646099022","_nodeVersion":"14.19.0","_npmVersion":"lerna/3.22.1/node@v14.19.0+x64 (linux)","dist":{"integrity":"sha512-Wc/1VDxdNngpw2cqUMQFn2X6g88uyvgbiPDtye6M5VJAjkQ5Q1c0rV7x5PG6yr+C9KOVeVcxztObn55Y+TPPVg==","shasum":"debdfbf8f7a8fa8b0527f34f8f05f110a37f8773","tarball":"https://registry.npmjs.org/@scalecube/scalecube-microservice/-/scalecube-microservice-0.2.11-snapshot.feature-node-matrix.1646099022.tgz","fileCount":41,"unpackedSize":183838,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiHXpXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqTag//ao9T/ZLr0+nDkxs5ejQSBRpcssVyIGTvx4AS0nGuI+X+7Bke\r\nk8fORw6YcQxAMVoEgCQgSiyV6V2+MBGlouTORsTe9/aYI/EYITluC5DYdALs\r\nncIU+bmHUmWWTGOraSM6BZ6VPEy4VYAkLD72ZODkHUdDtH10g+PH1rDEpxAg\r\n+Y209+PUwqsZ2QMhWgh2XCc/2jbspNxSVM0M/oTnAz+ShPRBmtdCVsLf5H5r\r\nzmaR7q3G/VGQSd4AVGqzWTxh4s5EOJlSczD6RSbkkPUfiT72zRImgOPev1Ui\r\njGzkUiTM7KomnGSbEDUmB6pee7+IgD8xwqhE0qnq507ZZhqIAmWsc8cmC5QY\r\n7TdnHx2zFAS7mDmePRoH4WFJLpvKeNojMhtgUkAnqFoYZz5BLnopla9c4wtn\r\nsnh9mEgea+IBBljhwUooI4iNTBQWvWazxsq4ABmBGmLlHPQmvAake/T5Ol6x\r\nndXbmYILAqD78NKvZr5zaXRZw7helPL3EqOw3ECcMh4svJ85v2LPEqlyxfTW\r\nhhq014gO4HIsAFIU7FdEO61Nq+FfhqcqtV5pz2UaRctVJXs9RcBo4QvcFqez\r\n42Wyn77oSZ+R/eZ4gMwMw3xtGLOLlO6cKn2vtXyDCB5miGlhwc56mm3CaJWy\r\nNSpDhe1Y8zIC2oNiot9PMywJ2P+bWivuZaw=\r\n=WniG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDETBZdSOxWsn/tSctoqUWcV4NCuF8ZtTWUvURQaDjvCAIgUxiRxK3u0vNuKklGqepq/8UI259Y7NU2EpU6PwNN7s0="}]},"_npmUser":{"name":"idanilt","email":"idan@ilt.co.il"},"directories":{},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scalecube-microservice_0.2.11-snapshot.feature-node-matrix.1646099022_1646099031607_0.7348995040443647"},"_hasShrinkwrap":false}},"maintainers":[{"name":"ronen.nachmias","email":"ronen.hamias@gmail.com"},{"name":"idanilt","email":"idan@ilt.co.il"},{"name":"scalecube-ci","email":"scalecubeci@gmail.com"},{"name":"skolomiiets","email":"serhii.kolomiiets@jivygroup.com"},{"name":"scalecube-js-user-developer","email":"io.scalecube.ci@gmail.com"},{"name":"idokatz","email":"ido@om2.com"},{"name":"viktor.pyshnenko","email":"viktor.pyshnenko@jivygroup.com"}],"description":"[![Join the chat at https://gitter.im/scalecube-js/Lobby](https://badges.gitter.im/scalecube-js/Lobby.svg)](https://gitter.im/scalecube-js/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)","author":{"name":"Scalecube","url":"https://github.com/scalecube/scalecube-js"},"license":"MIT","readme":"","readmeFilename":""}