From d83d2c414fe625702440211c407834cdb118c659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 9 Aug 2019 18:15:14 +0800 Subject: [PATCH 001/154] =?UTF-8?q?=E9=94=99=E5=88=AB=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/report/objects/reports.object.yml | 2 +- packages/standard-objects/reports.object.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/report/objects/reports.object.yml b/packages/report/objects/reports.object.yml index baa50b9ce0..65dd52beff 100644 --- a/packages/report/objects/reports.object.yml +++ b/packages/report/objects/reports.object.yml @@ -179,7 +179,7 @@ fields: name: values filterable: true filter_fields: - label: 默认过虑字段 + label: 过滤字段 type: lookup multiple: true depend_on: diff --git a/packages/standard-objects/reports.object.js b/packages/standard-objects/reports.object.js index a10fb43623..00d3ba580d 100644 --- a/packages/standard-objects/reports.object.js +++ b/packages/standard-objects/reports.object.js @@ -161,12 +161,12 @@ Creator.Objects.reports = { } }, filter_fields: { - label: "默认过虑字段", + label: "过滤字段", type: "grid", is_wide: true }, "filter_fields.$": { - label: "默认过虑字段", + label: "过滤字段", blackbox: true, type: "Object" }, From 373704845fa366acd0f20c0d172b138bc9351a27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 9 Aug 2019 18:16:27 +0800 Subject: [PATCH 002/154] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/object_filter.md | 171 +++++++----------- docs/object_filter_conditions.md | 155 ++++++++++++++++ docs/object_filter_deprecated.md | 112 ------------ docs/standard_objects.md | 3 + .../project-template-empty/src/crm.app.yml | 3 +- website/sidebars.json | 2 +- 6 files changed, 224 insertions(+), 222 deletions(-) create mode 100644 docs/object_filter_conditions.md delete mode 100644 docs/object_filter_deprecated.md diff --git a/docs/object_filter.md b/docs/object_filter.md index 0ce9604617..fc42a1af0b 100644 --- a/docs/object_filter.md +++ b/docs/object_filter.md @@ -1,38 +1,20 @@ --- -title: 过滤条件 +title: 过滤条件 filters --- -定义视图时,可以同时定义过滤条件,只有符合过滤条件的数据才显示在视图中。 +过滤条件语法,用于向数据库查询数据。 -业务人员可以在前台界面修改过滤条件。 - -## 配置过滤器 - -### 过滤条件 +## 过滤条件 +### 过滤器语法 使用数组的格式定义一个或多个过滤条件。例如以下过滤器用于查询本月创建的,责任人是本人的数据。 - ```yml -filter_conditions: - - field: priority - operation: = - value: - required: true - - field: owner - operation: = - value: {userId} - readonly: true - - field: created - operation: = - value: this_month +filters: [["priority", "=", ],["owner","=","{userId}"],["created", "=", this_month]] +filters: [["status", "=", ["closed","open"]]] +filters: [["age", "between", [20,30]]] ``` -### 字段名 field - -此过滤条件对应的字段名,必须设置。 - ### 运算符 operation - - "=": 等于 - "<>": 不等于 - ">": 大于 @@ -44,112 +26,85 @@ filter_conditions: - "notcontains": 不包含... - "between": 范围 -### 只读 readonly +## 组合过滤 -表示此过滤条件只读,用户不得修改。 +### “非”(not)操作 -### 必填 required +可以在当前过滤条件的基础上取反,例如: +- ["not", ["value", "=", 3]] -表示此过滤条件必须设定,否则列表视图不显示任何数据。 +### “与(and)”、“或(or)”操作 -## 过滤逻辑 filter_logic +多个过滤器可以通过“与(and)”、“或(or)”操作进行组合,例如: +- [ [ "value", ">", 3 ], "and", [ "value", "<", 7 ] ] +- [ [ "value", ">", 7 ], "or", [ "value", "<", 3 ] ] -过滤器中配置的多个过滤条件,默认使用 and 逻辑进行组合。 +如果不指定“与(and)”、“或(or)”操作,系统默认按照“与(and)”操作执行过滤。所以下两种写法结果相同: +- [ [ "value", ">", 3 ], "and", [ "value", "<", 7 ] ] +- [ [ "value", ">", 3 ], [ "value", "<", 7 ] ] -下一个版本,用户可以自定义逻辑。 +## 过滤条件值为数组时的增强功能 -```yml -filter_logic: 1 OR 2 -filter_logic: (1 OR 2) AND 3 -filter_logic: NOT (1 OR 2) -``` +运算符为"="时,条件自动按"or"裂变连接成多个过滤条件,类似实现了"in"操作功能,所以下两种写法结果相同: +- [["status", "in", ["closed","open"]]] +- [ [ "status", "=", "closed" ], "or", [ "status", "=", "open" ] ] -## 筛选值 value +运算符为"<>"时,条件自动按"and"裂变连接成多个过滤条件,所以下两种写法结果相同: +- [["status", "not in", ["closed","open"]]] +- [ [ "status", "<>", "closed" ], "and", [ "status", "<>", "open" ] ] -定义过滤条件的筛选值或筛选范围。 +运算符为"between"时,条件自动转换成">="及"<="运算符对应的过滤条件,以下各组效果相同: +- [["age", "between", [20,30]]] 等效于 [ [ "age", ">=", 20 ], "and", [ "age", "<=", 30 ] ] +- [["age", "between", [null,30]]] 等效于 [ [ "age", "<=", 30 ] ] +- [["age", "between", [20,null]]] 等效于 [ [ "age", ">=", 20 ] ] -### 值为空 +> between只支持数值及日期时间类型,且过滤值必须是两个元素的数组格式 -当值为空时,表示由业务人员在界面上手工选择筛选值。 +其他情况一律自动按"or"裂变连接成多个过滤条件 +- [["tag", "contains", ["start","end"]]] 等效于 [ [ "tag", "contains", "start" ], "or", [ "tag", "contains", "end" ] ] -### 值为数组 +## 公式字段支持 -以下过滤条件用于查询 priority 是 (high or normal) 的数据。 +过滤条件中允许指定当前状态相关属性值为value +- "{userId}":当前登录用户id +- "{spaceId}":当前当前所在工作区 +- "{user.xxx}":当前登录用户信息,如user.name,user.mobile,user.email,user.company_id等 +- 其他所有Steedos.USER_CONTEXT中能取到的变量值 -```yml -filter_conditions: - - field: priority - operation: = - value: - - high - - normal -``` +实例: +- [["assignees", "=", "{userId}"]] -其中的 = 替换为 contains,效果相同。 -以下过滤条件用于查询 priority 不是 (high or normal) 的数据。 +## 函数支持 -```yml -filter_conditions: - - field: priority - operation: <> - value: - - high - - normal +支持两种function方式: +1. 整个filters为function,如: ``` - -其中的 <> 替换为 notcontains,效果相同。 - -以下过滤条件用于查询 age 在 20~30 之间的数据。 - -```yml -filter_conditions: - - field: age - operation: between - value: - - 20 - - 30 +filters: ()-> + return [[["object_name","=","project_issues"],'or',["object_name","=","tasks"]]] ``` - -> between只支持数值及日期时间类型,且过滤值必须是两个元素的数组格式 - -### 值为公式 - -过滤条件中允许指定userContext中的变量值,例如: - -```yml -value: {userId} -value: {spaceId} -value: {name} +2. filters内的filter.value为function,如: +``` +filters: [["object_name", "=", ()-> + return "project_issues" +]] +``` +或 +``` +filters: [{ + "field": "object_name" + "operation": "=" + "value": ()-> + return "project_issues" +}] ``` -### 值为日期、时间 - +## 日期、时间字段与时区 日期和时间类型的字段,在数据库中保存的都是UTC时间。其中日期类型字段对应的是00:00:00。 查询日期时间类型字段时,必须先把时间转换为UTC时间格式再执行查询。 例如想要查询 创建日期为北京时间下午13:00以前的文档,需要先将北京时间转换为GMT时间再执行查询。 - -```yml -filter_conditions: - - field: created - operation: <= - value: "2019-08-06T07:00:00Z" -``` - -### 值为函数 - -```yml -filter_conditions: - - field: object_name - - operation: = - - value: !!js/function | - function () { - return "project_issues" - } -``` - -## filters - -用户定义的 filter_conditions 和 filter_logic,Steedos组合计算之后,成为用于过滤数据的 [filters](object_filter_deprecated) 。 +```js +[["created","<=","2019-08-06T07:00:00Z"]] +``` \ No newline at end of file diff --git a/docs/object_filter_conditions.md b/docs/object_filter_conditions.md new file mode 100644 index 0000000000..ce5f762955 --- /dev/null +++ b/docs/object_filter_conditions.md @@ -0,0 +1,155 @@ +--- +title: 筛选条件 +--- + +定义视图时,可以同时定义筛选条件,只有符合筛选条件的数据才显示在视图中。 + +业务人员可以在前台界面修改筛选条件。 + +## 配置筛选条件 + +### 筛选条件 + +使用数组的格式定义一个或多个筛选条件。例如以下筛选器用于查询本月创建的,责任人是本人的数据。 + +```yml +filter_conditions: + - field: priority + operation: = + value: + required: true + - field: owner + operation: = + value: {userId} + readonly: true + - field: created + operation: = + value: this_month +``` + +### 字段名 field + +此筛选条件对应的字段名,必须设置。 + +### 运算符 operation + +- "=": 等于 +- "<>": 不等于 +- ">": 大于 +- ">=": 大于等于 +- "<": 小于 +- "<=": 小于等于 +- "startswith": 以...开始 +- "contains": 包含... +- "notcontains": 不包含... +- "between": 范围 + +### 只读 readonly + +表示此筛选条件只读,用户不得修改。 + +### 必填 required + +表示此筛选条件必须设定,否则列表视图不显示任何数据。 + +## 筛选逻辑 filter_logic + +筛选器中配置的多个筛选条件,默认使用 and 逻辑进行组合。 + +下一个版本,用户可以自定义逻辑。 + +```yml +filter_logic: 1 OR 2 +filter_logic: (1 OR 2) AND 3 +filter_logic: NOT (1 OR 2) +``` + +## 筛选值 value + +定义筛选条件的筛选值或筛选范围。 + +### 值为空 + +当值为空时,表示由业务人员在界面上手工选择筛选值。 + +### 值为数组 + +以下筛选条件用于查询 priority 是 (high or normal) 的数据。 + +```yml +filter_conditions: + - field: priority + operation: = + value: + - high + - normal +``` + +其中的 = 替换为 contains,效果相同。 + +以下筛选条件用于查询 priority 不是 (high or normal) 的数据。 + +```yml +filter_conditions: + - field: priority + operation: <> + value: + - high + - normal +``` + +其中的 <> 替换为 notcontains,效果相同。 + +以下筛选条件用于查询 age 在 20~30 之间的数据。 + +```yml +filter_conditions: + - field: age + operation: between + value: + - 20 + - 30 +``` + +> between只支持数值及日期时间类型,且筛选值必须是两个元素的数组格式 + +### 值为公式 + +筛选条件中允许指定userContext中的变量值,例如: + +```yml +value: {userId} +value: {spaceId} +value: {name} +``` + +### 值为日期、时间 + +日期和时间类型的字段,在数据库中保存的都是UTC时间。其中日期类型字段对应的是00:00:00。 + +查询日期时间类型字段时,必须先把时间转换为UTC时间格式再执行查询。 + +例如想要查询 创建日期为北京时间下午13:00以前的文档,需要先将北京时间转换为GMT时间再执行查询。 + +```yml +filter_conditions: + - field: created + operation: <= + value: "2019-08-06T07:00:00Z" +``` + +### 值为函数 + +```yml +filter_conditions: + - field: object_name + - operation: = + - value: !!js/function | + function () { + return "project_issues" + } +``` + +## filters + +用户定义的 filter_conditions 和 filter_logic,Steedos组合计算之后,成为用于查询数据的 [过滤条件 filters](object_filter) 。 diff --git a/docs/object_filter_deprecated.md b/docs/object_filter_deprecated.md deleted file mode 100644 index e0a3387475..0000000000 --- a/docs/object_filter_deprecated.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: 过滤条件 (即将作废) ---- - -定义视图时,可以同时定义过滤条件,只有符合过滤条件的数据才显示在视图中。 - -业务人员可以修改过滤条件。 - -## 过滤器 filters - -### 过滤器语法 -使用数组的格式定义一个或多个过滤条件。例如以下过滤器用于查询本月创建的,责任人是本人的数据。 -```yml -filters: [["priority", "=", ],["owner","=","{userId}"],["created", "=", this_month]] -filters: [["status", "=", ["closed","open"]]] -filters: [["age", "between", [20,30]]] -``` - -### 运算符 operation -- "=": 等于 -- "<>": 不等于 -- ">": 大于 -- ">=": 大于等于 -- "<": 小于 -- "<=": 小于等于 -- "startswith": 以...开始 -- "contains": 包含... -- "notcontains": 不包含... -- "between": 范围 - -## 组合过滤 - -### “非”(not)操作 - -可以在当前过滤条件的基础上取反,例如: -- ["not", ["value", "=", 3]] - -### “与(and)”、“或(or)”操作 - -多个过滤器可以通过“与(and)”、“或(or)”操作进行组合,例如: -- [ [ "value", ">", 3 ], "and", [ "value", "<", 7 ] ] -- [ [ "value", ">", 7 ], "or", [ "value", "<", 3 ] ] - -如果不指定“与(and)”、“或(or)”操作,系统默认按照“与(and)”操作执行过滤。所以下两种写法结果相同: -- [ [ "value", ">", 3 ], "and", [ "value", "<", 7 ] ] -- [ [ "value", ">", 3 ], [ "value", "<", 7 ] ] - -## 过滤条件值为数组时的增强功能 - -运算符为"="时,条件自动按"or"裂变连接成多个过滤条件,类似实现了"in"操作功能,所以下两种写法结果相同: -- [["status", "in", ["closed","open"]]] -- [ [ "status", "=", "closed" ], "or", [ "status", "=", "open" ] ] - -运算符为"<>"时,条件自动按"and"裂变连接成多个过滤条件,所以下两种写法结果相同: -- [["status", "not in", ["closed","open"]]] -- [ [ "status", "<>", "closed" ], "and", [ "status", "<>", "open" ] ] - -运算符为"between"时,条件自动转换成">="及"<="运算符对应的过滤条件,以下各组效果相同: -- [["age", "between", [20,30]]] 等效于 [ [ "age", ">=", 20 ], "and", [ "age", "<=", 30 ] ] -- [["age", "between", [null,30]]] 等效于 [ [ "age", "<=", 30 ] ] -- [["age", "between", [20,null]]] 等效于 [ [ "age", ">=", 20 ] ] - -> between只支持数值及日期时间类型,且过滤值必须是两个元素的数组格式 - -其他情况一律自动按"or"裂变连接成多个过滤条件 -- [["tag", "contains", ["start","end"]]] 等效于 [ [ "tag", "contains", "start" ], "or", [ "tag", "contains", "end" ] ] - -## 公式字段支持 - -过滤条件中允许指定当前状态相关属性值为value -- "{userId}":当前登录用户id -- "{spaceId}":当前当前所在工作区 -- "{user.xxx}":当前登录用户信息,如user.name,user.mobile,user.email,user.company_id等 -- 其他所有Steedos.USER_CONTEXT中能取到的变量值 - -实例: -- [["assignees", "=", "{userId}"]] - - -## 函数支持 - -支持两种function方式: -1. 整个filters为function,如: -``` -filters: ()-> - return [[["object_name","=","project_issues"],'or',["object_name","=","tasks"]]] -``` -2. filters内的filter.value为function,如: -``` -filters: [["object_name", "=", ()-> - return "project_issues" -]] -``` -或 -``` -filters: [{ - "field": "object_name" - "operation": "=" - "value": ()-> - return "project_issues" -}] -``` - -## 日期、时间字段与时区 -日期和时间类型的字段,在数据库中保存的都是UTC时间。其中日期类型字段对应的是00:00:00。 - -查询日期时间类型字段时,必须先把时间转换为UTC时间格式再执行查询。 - -例如想要查询 创建日期为北京时间下午13:00以前的文档,需要先将北京时间转换为GMT时间再执行查询。 -```js -[["created","<=","2019-08-06T07:00:00Z"]] -``` \ No newline at end of file diff --git a/docs/standard_objects.md b/docs/standard_objects.md index b0e6c53c15..3c0f91ad96 100644 --- a/docs/standard_objects.md +++ b/docs/standard_objects.md @@ -28,6 +28,9 @@ Steedos SAAS 版本可以把用户划分为不同的工作区(企业),每 ## 功能 +### 报表 reports +业务人员可以自定义报表。 + ### 任务 tasks 用于统一管理对象的相关任务,业务人员可以在同一个列表中可以查看关联到各业务对象的工作任务。 diff --git a/packages/project-template-empty/src/crm.app.yml b/packages/project-template-empty/src/crm.app.yml index f105e3eb27..05664c5ad4 100644 --- a/packages/project-template-empty/src/crm.app.yml +++ b/packages/project-template-empty/src/crm.app.yml @@ -7,4 +7,5 @@ objects: - accounts - contacts - tasks - - events \ No newline at end of file + - events + - reports \ No newline at end of file diff --git a/website/sidebars.json b/website/sidebars.json index 273e19d523..a8341e122c 100644 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -1,7 +1,7 @@ { "文档": { "快速向导": ["overview", "getting_started"], - "定义业务对象": ["app", "datasource", "object", "object_field", "object_field_type", "object_listview", "object_permission", "object_filter", "object_trigger", "object_action", "standard_objects"], + "定义业务对象": ["app", "datasource", "object", "object_field", "object_field_type", "object_listview", "object_permission", "object_filter_conditions", "object_trigger", "object_action", "standard_objects"], "台账": ["record_list", "record_view", "record_edit", "record_search", "record_attachment", "record_chatter", "record_task", "app_mobile"], "审批": ["workflow_overview", "workflow_submit", "workflow_archive", "object_workflow"], "权限": ["organization","space_user", "permission_set", "object_permission", "permission_share"], From b4c661bb285925c5876fe01d86026426635cf9a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= <50353452+hotlong@users.noreply.github.com> Date: Fri, 9 Aug 2019 18:35:01 +0800 Subject: [PATCH 003/154] Update object_filter_conditions.md --- docs/object_filter_conditions.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/object_filter_conditions.md b/docs/object_filter_conditions.md index ce5f762955..ee75ddfb28 100644 --- a/docs/object_filter_conditions.md +++ b/docs/object_filter_conditions.md @@ -2,7 +2,7 @@ title: 筛选条件 --- -定义视图时,可以同时定义筛选条件,只有符合筛选条件的数据才显示在视图中。 +定义视图或报表时,可以同时定义筛选条件,只有符合筛选条件的数据才显示在视图/报表中。 业务人员可以在前台界面修改筛选条件。 @@ -46,11 +46,11 @@ filter_conditions: ### 只读 readonly -表示此筛选条件只读,用户不得修改。 +表示此筛选条件只读,业务人员在界面上不得修改。通常用来控制权限,确保用户只能看到授权的数据。 ### 必填 required -表示此筛选条件必须设定,否则列表视图不显示任何数据。 +表示此筛选条件必须设定,业务人员在界面上必须选中了value,才会显示列表视图或报表。 ## 筛选逻辑 filter_logic From 731fb16db8df56bcda3805824351ccbc96d88ece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 9 Aug 2019 18:43:25 +0800 Subject: [PATCH 004/154] Update reports.object.yml --- packages/report/objects/reports.object.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/report/objects/reports.object.yml b/packages/report/objects/reports.object.yml index 65dd52beff..73a06ee145 100644 --- a/packages/report/objects/reports.object.yml +++ b/packages/report/objects/reports.object.yml @@ -14,7 +14,7 @@ fields: type: select defaultValue: tabular options: - - label: 表格 + - label: 列表 value: tabular - label: 摘要 value: summary From 9a8e77f8d386d91a803ee0b8f479a108c3c3a25b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 9 Aug 2019 18:43:40 +0800 Subject: [PATCH 005/154] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E6=A8=A1=E7=89=88?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/project-template-empty/package.json | 2 +- packages/project-template-empty/package.template.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/project-template-empty/package.json b/packages/project-template-empty/package.json index 3938043062..23c687f396 100644 --- a/packages/project-template-empty/package.json +++ b/packages/project-template-empty/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/project-template-empty", "private": false, - "version": "0.1.0", + "version": "0.1.1", "description": "", "main": "server.js", "repository": { diff --git a/packages/project-template-empty/package.template.json b/packages/project-template-empty/package.template.json index 9633aa46d3..e6a8e6bd76 100644 --- a/packages/project-template-empty/package.template.json +++ b/packages/project-template-empty/package.template.json @@ -1,6 +1,6 @@ { "name": "", - "version": "0.1.0", + "version": "0.0.1", "description": "", "main": "server.js", "scripts": { From 982f41f595c7afee6e804c66a026286965ef5e55 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Sat, 10 Aug 2019 15:47:39 +0800 Subject: [PATCH 006/154] @steedos/objectql@0.2.3 --- packages/objectql/History.md | 4 +++ packages/objectql/package.json | 2 +- packages/objectql/src/types/index.ts | 8 +++--- packages/objectql/src/types/userSession.ts | 30 +++++++++++++++++++--- 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/packages/objectql/History.md b/packages/objectql/History.md index 50236d1fbb..7d867c2038 100644 --- a/packages/objectql/History.md +++ b/packages/objectql/History.md @@ -1,3 +1,7 @@ +0.2.3 / 2019-08-10 +=================== + + * 调整type SteedosUserSession结构 0.2.2 / 2019-08-06 =================== diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 011c5875d3..9e03d9457f 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "0.2.2", + "version": "0.2.3", "description": "", "main": "lib/index.js", "scripts": { diff --git a/packages/objectql/src/types/index.ts b/packages/objectql/src/types/index.ts index 112ebe91e4..80231ebe98 100644 --- a/packages/objectql/src/types/index.ts +++ b/packages/objectql/src/types/index.ts @@ -8,12 +8,12 @@ export { SteedosFieldType, SteedosFieldTypeConfig } from "./field"; export { SteedosListenerConfig } from './listeners' export { SteedosTriggerType } from './trigger' export { SteedosObjectListViewTypeConfig, SteedosObjectListViewType } from "./list_view"; -export { SteedosIDType } from "./field_types"; +export { SteedosIDType } from "./field_types"; export { SteedosQueryOptions } from "./query"; export { SteedosObjectPermissionType, SteedosObjectPermissionTypeConfig } from "./object_permission"; -export { SteedosActionType, SteedosActionTypeConfig} from './action' -export { SteedosAppType, SteedosAppTypeConfig} from './app' -export { SteedosUserSession} from './userSession'; +export { SteedosActionType, SteedosActionTypeConfig } from './action' +export { SteedosAppType, SteedosAppTypeConfig } from './app' +export { SteedosUserSession, SteedosUserSessionSpace, SteedosUserSessionCompany, SteedosUserSessionOrganization } from './userSession'; export { SteedosQueryFilters } from './query'; export { SteedosReportType, SteedosReportTypeConfig } from './report'; diff --git a/packages/objectql/src/types/userSession.ts b/packages/objectql/src/types/userSession.ts index c5d7b2ada7..6296c451f5 100644 --- a/packages/objectql/src/types/userSession.ts +++ b/packages/objectql/src/types/userSession.ts @@ -1,12 +1,34 @@ import { SteedosIDType } from "."; +export type SteedosUserSessionSpace = { + _id: string, + name: string +} + +export type SteedosUserSessionCompany = { + _id: string, + name: string +} + +export type SteedosUserSessionOrganization = { + _id: string, + name: string, + fullname: string +} + export type SteedosUserSession = { userId: SteedosIDType, spaceId: string, - roles: string[], name: string, - steedos_id?: string, + username?: string, + mobile?: string, email?: string, - companyId?: string, - companyIds?: string[] + utcOffset?: number, + roles: string[], + space: SteedosUserSessionSpace, + spaces: SteedosUserSessionSpace[], + company?: SteedosUserSessionCompany, + companies?: SteedosUserSessionCompany[], + organization: SteedosUserSessionOrganization, + organizations: SteedosUserSessionOrganization[], } \ No newline at end of file From da611af5cda93a9cb77c5bba6c1d47d7369af69c Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Sat, 10 Aug 2019 15:55:42 +0800 Subject: [PATCH 007/154] @steedos/auth@1.1.0 --- packages/auth/History.md | 4 + packages/auth/README.md | 10 +- packages/auth/package.json | 11 ++- packages/auth/src/creator.d.ts | 7 ++ packages/auth/src/index.ts | 5 +- packages/auth/src/initRouter.ts | 55 +++++++++++ packages/auth/src/session.ts | 160 ++++++++++++++++++++++--------- packages/auth/src/utils/index.ts | 20 ++++ 8 files changed, 219 insertions(+), 53 deletions(-) create mode 100644 packages/auth/src/creator.d.ts create mode 100644 packages/auth/src/initRouter.ts diff --git a/packages/auth/History.md b/packages/auth/History.md index 90106860ad..1743c51ec7 100644 --- a/packages/auth/History.md +++ b/packages/auth/History.md @@ -1,3 +1,7 @@ +1.1.0 / 2019-08-10 +=================== + + * 增加initRouter.ts,调整session.ts,需求来源 `https://steedos.github.io/docs/en/api_auth` 1.0.9 / 2019-07-26 =================== diff --git a/packages/auth/README.md b/packages/auth/README.md index 53a54d2fa0..d47050486e 100644 --- a/packages/auth/README.md +++ b/packages/auth/README.md @@ -31,4 +31,12 @@ export declare type SteedosIDType = number | string; ``` ## 开放auth方法,验证用户session - `async function auth(request: Request, response: Response): Promise` -- 传入request response对象,返回getSession方法返回值 \ No newline at end of file +- 传入request response对象,返回getSession方法返回值 + +## 开放setRequestUser方法,设置req.user属性 +- `async function setRequestUser(request: Request, response: Response, next)` +- 示例: +```js + let app = express(); + app.use('/', setRequestUser); +``` \ No newline at end of file diff --git a/packages/auth/package.json b/packages/auth/package.json index 1b318ce790..e1216e011d 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.0.14", + "version": "1.1.0", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", @@ -14,11 +14,14 @@ "access": "public" }, "dependencies": { - "@steedos/objectql": "^0.1.7", + "@steedos/objectql": "^0.2.3", + "bcrypt": "^3.0.6", "cookies": "^0.7.3", "express": "^4.16.4", "express-jwt": "^5.3.1", - "jsonwebtoken": "^8.5.1" + "jsonwebtoken": "^8.5.1", + "sha256": "^0.2.0", + "underscore": "^1.9.1" }, "devDependencies": { "@types/chai": "^4.1.7", @@ -31,4 +34,4 @@ "ts-node": "^8.0.3", "typescript": "^3.3.4000" } -} +} \ No newline at end of file diff --git a/packages/auth/src/creator.d.ts b/packages/auth/src/creator.d.ts new file mode 100644 index 0000000000..cdac99f66a --- /dev/null +++ b/packages/auth/src/creator.d.ts @@ -0,0 +1,7 @@ +declare var Meteor; +declare var SimpleSchema; +declare var Match; +declare var Creator; +declare var Steedos; +declare var WebApp; +declare var WebAppInternals; \ No newline at end of file diff --git a/packages/auth/src/index.ts b/packages/auth/src/index.ts index f630e78b6c..648053b07f 100644 --- a/packages/auth/src/index.ts +++ b/packages/auth/src/index.ts @@ -1,3 +1,4 @@ -export { getSession, auth } from "./session"; +export { getSession, auth, setRequestUser } from "./session"; export { jwtRouter } from "./jwt"; -export { utils } from "./utils"; \ No newline at end of file +export { utils } from "./utils"; +export { initRouter } from "./initRouter"; \ No newline at end of file diff --git a/packages/auth/src/initRouter.ts b/packages/auth/src/initRouter.ts new file mode 100644 index 0000000000..50d5e6dec3 --- /dev/null +++ b/packages/auth/src/initRouter.ts @@ -0,0 +1,55 @@ +const express = require('express'); +const SHA256 = require("sha256"); +const bcrypt = require('bcrypt'); +import { getSession, auth } from './session'; +import { utils } from './utils'; +import { Request, Response } from 'express'; + +const router = express.Router(); + +router.post('/api/v4/users/login', async function (req: Request, res: Response) { + let username = req.body["username"]; + let password = req.body["password"]; + let spaceId = req.body["spaceId"]; // 需要登录的工作区Id,如果不传入,自动选中第一个工作区 + let bcryptPassword = SHA256(password); + let user = Meteor.users.findOne({ + $or: [{ "username": username }, { "emails.address": username }, { "mobile": username }] + }); + if (!user) { + res.status(401).send(); + return; + } + let match = await bcrypt.compare(bcryptPassword, user.services.password.bcrypt); + if (!match) { + res.status(401).send(); + return; + } + let authtToken = null; + let stampedAuthToken = utils._generateStampedLoginToken(); + authtToken = stampedAuthToken.token; + let hashedToken = utils._hashStampedToken(stampedAuthToken); + await utils._insertHashedLoginToken(user._id, hashedToken); + let userSession = await getSession(authtToken, spaceId); + // set cookie to response + // maxAge 3 month + utils._setAuthCookies(req, res, user._id, authtToken, userSession.spaceId); + res.setHeader('X-Space-Token', userSession.spaceId + ',' + authtToken); + return res.send(userSession); +}) + + +router.post('/api/v4/users/validate', async function (req: Request, res: Response) { + let userSession = await auth(req, res); + if (userSession) { + utils._setAuthCookies(req, res, userSession.userId, userSession.authToken, userSession.spaceId); + + return res.send(userSession); + } + return res.status(401).send({ + "error": "Validate Request -- Missing X-Auth-Token", + "instance": "1329598861", + "success": false + }) +}) + +export let initRouter = router; \ No newline at end of file diff --git a/packages/auth/src/session.ts b/packages/auth/src/session.ts index fa095fac04..b5df93dc3b 100644 --- a/packages/auth/src/session.ts +++ b/packages/auth/src/session.ts @@ -1,6 +1,14 @@ import crypto = require('crypto'); -import { getSteedosSchema, SteedosUserSession, SteedosIDType } from '@steedos/objectql'; -import { Request, Response } from "express"; +import { getSteedosSchema, SteedosUserSession, SteedosIDType, SteedosUserSessionSpace, SteedosUserSessionCompany, SteedosUserSessionOrganization } from '@steedos/objectql'; +import { Response } from "express"; + +import * as core from "express-serve-static-core"; +interface Request extends core.Request { + user?: any; +} + +const _ = require('underscore'); + const Cookies = require("cookies"); const sessions = {}; @@ -11,25 +19,25 @@ const spacetokens = []; const sessionCacheInMinutes = 10; interface Session { - name: string; userId: SteedosIDType; - steedos_id?: string; - email?: string; - expiredAt: number; -} - -interface ResultSession { name: string; - userId: SteedosIDType; - steedos_id?: string; + username?: string; + mobile?: string; email?: string; + utcOffset?: number; + steedos_id?: string; + expiredAt?: number; } interface SpaceSession { roles: string[]; + space: SteedosUserSessionSpace; + spaces: SteedosUserSessionSpace[]; + company?: SteedosUserSessionCompany; + companies?: SteedosUserSessionCompany[]; + organization: SteedosUserSessionOrganization; + organizations: SteedosUserSessionOrganization[]; expiredAt: number; - companyId: string; - companyIds: string[]; } function _hashLoginToken(token: string) { @@ -46,7 +54,7 @@ function reovkeSessionFromCache(token: string) { return delete sessions[token]; } -export function addSessionToCache(token: string, session: Session) { +function addSessionToCache(token: string, session: Session) { sessions[token] = session; tokens.push(token); if (tokens.length > size) { @@ -54,7 +62,7 @@ export function addSessionToCache(token: string, session: Session) { } } -export function getSessionFromCache(token: string) { +function getSessionFromCache(token: string) { let session = sessions[token]; if (!session) { return null; @@ -69,10 +77,7 @@ export function getSessionFromCache(token: string) { async function getUser(token: string) { let hashedToken = _hashLoginToken(token).replace(/\//g, '%2F'); let filters = `(services/resume/loginTokens/hashedToken eq '${hashedToken}')`; - let users = await getSteedosSchema().getObject('users').find({ filters: filters, fields: ['name', 'steedos_id', 'email'] }); - if (!users || !users[0]) { - throw new Error('user can not found by token!'); - } + let users = await getSteedosSchema().getObject('users').find({ filters: filters, fields: ['name', 'username', 'mobile', 'email', 'utcOffset', 'steedos_id'] }); return users[0]; } @@ -110,7 +115,7 @@ function reovkeSpaceSessionFromCache(key: string) { return delete spaceSessions[key]; } -export function addSpaceSessionToCache(token: string, spaceId: string, spaceSession: SpaceSession) { +function addSpaceSessionToCache(token: string, spaceId: string, spaceSession: SpaceSession) { let key = `${token}-${spaceId}`; spaceSessions[key] = spaceSession; spacetokens.push(key); @@ -119,7 +124,7 @@ export function addSpaceSessionToCache(token: string, spaceId: string, spaceSess } } -export function getSpaceSessionFromCache(token: string, spaceId: string) { +function getSpaceSessionFromCache(token: string, spaceId: string) { let key = `${token}-${spaceId}`; let spaceSession = spaceSessions[key]; if (!spaceSession) { @@ -132,9 +137,31 @@ export function getSpaceSessionFromCache(token: string, spaceId: string) { return spaceSession; } -export async function getSession(token: string, spaceId: string): Promise; -export async function getSession(token: string): Promise; -export async function getSession(token: string, spaceId?: string): Promise { +async function getObjectDataByIds(objectName: string, ids: string[], fields?: string[]) { + if (!ids || ids.length === 0) { + return [] + } + + let filters = _.map(ids, function (id) { + if (!id) { + return '' + } + return `(_id eq '${id}')` + }).join(' or '); + + if (!filters) { + return [] + } + + let query = { filters: filters }; + if (fields && fields.length > 0) { + query['fields'] = fields; + } + + return await getSteedosSchema().getObject(objectName).find(query) +} + +export async function getSession(token: string, spaceId?: string): Promise { if (!token) { return } @@ -143,40 +170,81 @@ export async function getSession(token: string, spaceId?: string): Promise if (!session) { let user = await getUser(token); if (user) { - session = { name: user.name, userId: user._id, steedos_id: user.steedos_id, email: user.email, expiredAt: expiredAt }; + session = {}; + session.userId = user._id; + session.name = user.name; + session.username = user.username; + session.mobile = user.mobile; + session.email = user.email; + session.utcOffset = user.utcOffset; + session.steedos_id = user.steedos_id; + session.expiredAt = expiredAt; addSessionToCache(token, session); } + else { + return + } } - if (spaceId) { - let spaceSession = getSpaceSessionFromCache(token, spaceId); - if (!spaceSession) { - let user = await getUser(token); - if (user) { - let roles = await getUserRoles(user._id, spaceId); - let spaceUser = await getSteedosSchema().getObject('space_users').find({ filters: `(space eq '${spaceId}') and (user eq '${user._id}')`, fields: ['company_id', 'company_ids'] }); - if (!spaceUser || !spaceUser[0]) { - throw new Error('the spaceuser can not be found!'); - } - spaceSession = { roles: roles, expiredAt: expiredAt, companyId: spaceUser[0].company_id, companyIds: spaceUser[0].company_ids }; - addSpaceSessionToCache(token, spaceId, spaceSession); + + let spaceSession = getSpaceSessionFromCache(token, spaceId); + if (!spaceSession) { + let user = await getUser(token); + if (user) { + let su = null; + let suFields = ['space', 'company_id', 'company_ids', 'organization', 'organizations']; + let spaceUser = await getSteedosSchema().getObject('space_users').find({ filters: `(space eq '${spaceId}') and (user eq '${user._id}')`, fields: suFields }); + // 如果spaceid和user不匹配,则取用户的第一个工作区 + let spaceUsers = await getSteedosSchema().getObject('space_users').find({ filters: `(user eq '${user._id}')`, fields: suFields }); + if (spaceUser && spaceUser[0]) { + su = spaceUser[0]; + } else { + su = spaceUsers[0]; + } + + if (su) { + let userSpaceId = su.space; + let userSpaceIds = _.pluck(spaceUsers, 'space'); + let roles = await getUserRoles(user._id, userSpaceId); + spaceSession = { roles: roles, expiredAt: expiredAt }; + spaceSession.space = (await getObjectDataByIds('spaces', [userSpaceId], ['name']))[0]; + spaceSession.spaces = await getObjectDataByIds('spaces', userSpaceIds, ['name']); + spaceSession.company = (await getObjectDataByIds('organizations', [su.company_id], ['name']))[0]; + spaceSession.companies = await getObjectDataByIds('organizations', su.company_ids, ['name']); + spaceSession.organization = (await getObjectDataByIds('organizations', [su.organization], ['name', 'fullname']))[0]; + spaceSession.organizations = await getObjectDataByIds('organizations', su.organizations, ['name', 'fullname']); + addSpaceSessionToCache(token, userSpaceId, spaceSession); + return assignSession(userSpaceId, session, spaceSession); } } - return assignSession(spaceId, session, spaceSession); - } else { - return reviseSession(session) } - + return assignSession(spaceId, session, spaceSession); } +// 解析Request对象,返回SteedosUserSession类型 export async function auth(request: Request, response: Response): Promise { let cookies = new Cookies(request, response); let authToken: string = request.headers['x-auth-token'] || cookies.get("X-Auth-Token"); - if (!authToken && request.headers.authorization && request.headers.authorization.split(' ')[0] == 'Bearer') { - authToken = request.headers.authorization.split(' ')[1] - } - let spaceId = (request.params ? request.params.spaceId : null) - || (request.query ? request.query.space_id : null) + let spaceId = (request.params ? request.params.spaceId : null) + || (request.query ? request.query.space_id : null) || request.headers['x-space-id']; + if (request.headers.authorization && request.headers.authorization.split(' ')[0] == 'Bearer') { + let spaceAuthToken = request.headers.authorization.split(' ')[1]; + if (!authToken) { + authToken = spaceAuthToken.split(',')[0]; + } + if (!spaceId) { + spaceId = spaceAuthToken.split(',')[1]; + } + } let user = await getSession(authToken, spaceId); return Object.assign({ authToken: authToken }, user); +} + +// 给Request对象添加user属性,值为SteedosUserSession类型 +export async function setRequestUser(request: Request, response: Response, next: () => void) { + let user = await auth(request, response); + if (user.userId) { + request.user = user; + } + next(); } \ No newline at end of file diff --git a/packages/auth/src/utils/index.ts b/packages/auth/src/utils/index.ts index 2778b05764..5c7cad4941 100644 --- a/packages/auth/src/utils/index.ts +++ b/packages/auth/src/utils/index.ts @@ -1,6 +1,7 @@ import crypto = require('crypto'); import { default as Random } from './random'; import { getSteedosSchema } from '@steedos/objectql'; +const Cookies = require('cookies'); export let utils = { _hashLoginToken: function (loginToken) { @@ -35,5 +36,24 @@ export let utils = { user['services']['resume']['loginTokens'].push(hashedToken) let data = { services: user['services'] } return await userObject.update(userId, data); + }, + + _setAuthCookies: function (req, res, userId, authToken, spaceId?) { + let cookies = new Cookies(req, res); + let options = { + maxAge: 90 * 60 * 60 * 24 * 1000, + httpOnly: false, + overwrite: true + } + cookies.set("X-User-Id", userId, options); + cookies.set("X-Auth-Token", authToken, options); + if (spaceId) { + cookies.set("X-Space-Id", spaceId, options); + cookies.set("X-Space-Token", spaceId + ',' + authToken, options); + } + + return; } + + } From e6d5e463a6634411eec8dcd7b662d2751446e43e Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Sat, 10 Aug 2019 15:58:56 +0800 Subject: [PATCH 008/154] @steedos/core@1.3.2 --- packages/core/History.md | 4 ++++ packages/core/package.json | 6 +++--- packages/core/src/init/core.ts | 12 +++++++++++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/core/History.md b/packages/core/History.md index ad89e739e5..1d6b1d809c 100644 --- a/packages/core/History.md +++ b/packages/core/History.md @@ -1,3 +1,7 @@ +1.3.2 / 2019-08-10 +=================== + + * core.ts添加initRoutes函数 1.3.1 / 2019-08-02 =================== diff --git a/packages/core/package.json b/packages/core/package.json index 690af26ac5..5dc7bd7b9e 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.1", + "version": "1.3.2", "description": "", "main": "lib/index.js", "scripts": { @@ -18,8 +18,8 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/auth": "^1.0.7", - "@steedos/objectql": "^0.2.1", + "@steedos/auth": "^1.1.0", + "@steedos/objectql": "^0.2.3", "@steedos/standard-objects": "^0.2.1", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", diff --git a/packages/core/src/init/core.ts b/packages/core/src/init/core.ts index 8ae65a8ef2..bf85f033f4 100644 --- a/packages/core/src/init/core.ts +++ b/packages/core/src/init/core.ts @@ -15,6 +15,7 @@ export class Core { this.initObjects(); this.initGraphqlAPI(); this.initPublishAPI() + this.initRoutes(); } private static expandSimpleSchemaPres() { @@ -151,7 +152,16 @@ export class Core { return WebApp.connectHandlers.use(app); } - private static initPublishAPI(){ + private static initPublishAPI() { Publish.init(); } + + private static initRoutes() { + // /api/v4/users/login, /api/v4/users/validate + app.use(steedosAuth.initRouter); + + + + WebApp.connectHandlers.use(app); + } } \ No newline at end of file From e77ee990d7336e632fcc9decdd504c97e9d2916e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Mon, 12 Aug 2019 09:17:41 +0800 Subject: [PATCH 009/154] Update getting_started.md --- docs/getting_started.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 23dedc5823..efe2721d5d 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -188,11 +188,12 @@ name: 客户 description: 管理客户,以及相关的联系人、任务和日程。 icon_slds: folder is_creator: true -objects: +objects: - accounts - contacts - tasks - events + - reports ``` ## 调试与运行 From 06bb03da9e1ebabdc0b79cf75526cc4f681cdc78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Mon, 12 Aug 2019 11:06:48 +0800 Subject: [PATCH 010/154] =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E7=BB=A7=E6=89=BF?= =?UTF-8?q?=E8=AF=AD=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/object.md | 87 ++++++++++++++++++-------------- docs/object_filter_conditions.md | 2 +- 2 files changed, 50 insertions(+), 39 deletions(-) diff --git a/docs/object.md b/docs/object.md index 02bb13b997..8974658e56 100644 --- a/docs/object.md +++ b/docs/object.md @@ -7,11 +7,13 @@ title: 业务对象 ![对象显示效果](assets/object_guide.png#bordered) ## 业务对象配置 + Steedos 使用yaml文件描述业务对象,每个文件对应一个业务对象。与传统的ORM标准不同,Steedos 不仅可以定义字段、校验、关系,还可以为后端定义触发器、权限,为前端定义视图、报表、过滤等内容。 业务对象描述文件以 .object.yml 结尾,通常放在 src/ 文件夹中,系统启动时会自动加载。 比如你可以定义如下对象 src/accounts.object.yml + ```yaml name: accounts label: 单位 @@ -73,63 +75,72 @@ permission_set: modifyAllRecords: true viewAllRecords: true ``` + > 使用 [Visual Studio Code](https://code.visualstudio.com/) 编辑对象文件,并按照提示安装插件[redhat.vscode-yaml](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml),Steedos 会自动校验用户编写的yml文件格式是否符合规范。 -### 对象名 object_name +### 对象名 name + 必填,是对象的唯一名称,也是对象保存在数据库中的数据表名称。需符合变量的命名规范,只能是英文、下划线和数字组成,不可重复。通过代码、API接口调用对象时,也需要使用此名称。 ### 显示名称 label + 必填,在界面上的显示名称,最终用户看到的是此名称。 ### 图标 icon + 必填,对象的显示图标名称,对应 [LIGHTNING DESIGN SYSTEM 中的Standard Icons图标](https://www.lightningdesignsystem.com/icons/#standard) ### 已启用 is_enable + 此对象已生效,显示在最终用户界面中。默认为生效。 ### 表名 table_name -用于配置数据库中的数据表名称。如果不配置此属性,使用对象名作为表名。 -由于Steedos的规则,对象名必须唯一,当遇到第三方业务系统的表名与Steedos标准对象名称冲突时,使用此字段定义表名。 +用于配置数据库中的数据表名称。如果不配置此属性,使用对象名作为表名。由于Steedos的规则,对象名必须唯一,当遇到第三方业务系统的表名与Steedos标准对象名称冲突时,使用此字段定义表名。 ### 描述(description) + 此对象的描述。 ## 功能开关 ### 启用搜索功能(enable_search) + 此对象可以通过全局检索查询。 ### 启用附件功能(enable_files) + 此对象中的业务数据,可以上传附件。 ### 启用任务功能(enable_tasks) + 此对象中的业务数据,可以添加任务。 ### 启用备忘功能(enable_notes) + 此对象中的业务数据,可以添加备忘。 ### 启用审计记录(enable_audit) + 跟踪字段的修改历史,此功能会消耗更多服务器资源,只有必要的对象才应该配置此属性。 ### 启用API接口(enable_api) -是否允许通过API接口访问对象,默认开启。 + +是否允许通过API接口访问对象,默认开启。 ### 启用数据校验(enable_schema) + 在数据保存时,是否按照定义的字段属性进行数据校验。默认开启。 ### 启用树状结构显示记录(enable_tree) + 如果定义此属性,使用树状结构来展现对象。必须定义parent字段才能启用此属性。 - -## 对象字段 -开发人员可以配置对象的[字段](object_field.md)。Creator支持常见的字段类型: - - 文本型; - - 日期型; - - 布尔型; - - 数值型; - - 选择型(单选、多选); - - 关联到相关表(单选、多选)。 +## 对象属性 + +### 字段 + +开发人员可以配置对象的[字段](object_field.md),设定字段名、显示名称、[字段类型](object_field_type.md)、可选项等属性。 ```yaml fields: @@ -145,12 +156,8 @@ fields: value: low ``` -开发人员可以设定字段的显示名称、描述、可选项、是否必填、分组显示等参数。 -开发人员可以将字段关联到另一个对象,两个对象之间会自动创建关联关系,在查看主表记录时,自动显示相关的子表记录。 +### 列表视图 -> [了解如何配置字段](object_field.md) - -## 列表视图 开发人员可以配置对象的[列表视图](object_listview.md),一个对象可以由一个或多个列表视图组成。业务人员在前台操作时,可以很方便的切换列表视图,也可以自定义列表视图。 ```yaml @@ -165,16 +172,10 @@ list_views: filter_fields: - priority ``` -列表视图可以配置以下参数: - - 选择列表显示的字段; - - 设定排序规则; - - 设定列表过滤条件; - - 设定快捷过滤字段。 -> [了解如何配置列表视图](object_listview.md) +### 权限组 -## 访问权限 -开发人员可以配置对象的默认访问权限,系统上线后,系统管理员也可以在设置界面中设置对象权限。 +开发人员可以配置对象的[权限组](object_permission.md),系统上线后,系统管理员也可以在设置界面中设置对象权限。 ```yaml permission_set: @@ -187,17 +188,27 @@ permission_set: viewAllRecords: false ``` -对象可以配置以下权限: - - 允许创建; - - 允许修改; - - 允许删除; - - 允许查看所有记录; - - 允许修改所有记录; -高级权限配置: - - 对于集团企业,可以设定只能查看、修改本单位的数据; - - 对于敏感的业务数据,可以设定只能查看、修改部分字段。 - -> [了解如何配置访问权限](object_permission.md) - ## 标准对象 + 为了支撑 Steedos 的内核的业务功能,Steedos预定义了一些 [标准对象](standard_objects)。 + +## 对象继承 + +可以继承一个已有的业务对象, 为对象扩展新的字段或是重写原有的字段。同样,也可以扩展或是重写列表视图和权限集。 + +### 继承标志 extend + +通过定义extend属性,并申明需要继承的对象名,标记此文件为对象继承文件。 + +例如可以在项目中创建一个tasks.object.yml文件,给[标准对象](standard_objects)“任务”新增 "company_id" 字段,以实现单位级的权限管理。 + +```yaml +extend: tasks +fields: + company_id: + required: true + omit: false + hidden: false + type: lookup + reference_to: organizations +``` diff --git a/docs/object_filter_conditions.md b/docs/object_filter_conditions.md index ee75ddfb28..ecff64430c 100644 --- a/docs/object_filter_conditions.md +++ b/docs/object_filter_conditions.md @@ -152,4 +152,4 @@ filter_conditions: ## filters -用户定义的 filter_conditions 和 filter_logic,Steedos组合计算之后,成为用于查询数据的 [过滤条件 filters](object_filter) 。 +用户定义的 filter_conditions 和 filter_logic,Steedos组合计算之后,成为用于查询数据的 [过滤条件 filters](object_filter.md) 。 From 0dd44f64c71d9a4b339a898b609e77adf098ba6b Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 12 Aug 2019 11:17:59 +0800 Subject: [PATCH 011/154] =?UTF-8?q?@steedos/filters@0.0.13=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=9F=BA=E4=BA=8EuserContext=E7=9A=84=E5=85=AC?= =?UTF-8?q?=E5=BC=8F=E5=AD=97=E6=AE=B5=E5=80=BC=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/filters/History.md | 5 +++++ packages/filters/format.js | 2 ++ packages/filters/formula.js | 28 +++++++++++++++++++++++++++ packages/filters/index.js | 3 ++- packages/filters/package.json | 2 +- packages/filters/test/unit/formula.js | 19 ++++++++++++++++++ 6 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 packages/filters/formula.js create mode 100644 packages/filters/test/unit/formula.js diff --git a/packages/filters/History.md b/packages/filters/History.md index c5187c806c..d95196b389 100644 --- a/packages/filters/History.md +++ b/packages/filters/History.md @@ -1,4 +1,9 @@ =================== +0.0.13 / 2019-08-12 +=================== + + * 支持基于userContext的公式字段值解析 +=================== 0.0.12 / 2019-08-08 =================== diff --git a/packages/filters/format.js b/packages/filters/format.js index 633a5f41c9..990c6383ef 100644 --- a/packages/filters/format.js +++ b/packages/filters/format.js @@ -2,6 +2,7 @@ const SteedosFilter = require("./filter"); const _ = require('underscore'); const utils = require("./utils"); +const formula = require("./formula"); let formatFiltersToDev = (filters, userContext = { utcOffset: 0 }) => { let utcOffset = userContext.utcOffset; @@ -85,6 +86,7 @@ let formatFiltersToDev = (filters, userContext = { utcOffset: 0 }) => { if (_.isFunction(value)) { value = value(); } + value = formula.evaluateFormula(value, userContext) sub_selector = []; isBetweenOperation = utils.isBetweenFilterOperation(option); if (isBetweenOperation && _.isString(value)) { diff --git a/packages/filters/formula.js b/packages/filters/formula.js new file mode 100644 index 0000000000..eb62d6346a --- /dev/null +++ b/packages/filters/formula.js @@ -0,0 +1,28 @@ +// "{userId}"或"{user.name}"格式 +let checkFormula = (formula) => { + return typeof formula === "string" && /\{\w+(\.\w+)?\}/.test(formula); +}; + +// "{userId}"转换为"this['userId']","{user.name}"转换为"this['user'].['name']" +let prepareFormula = (formula, prefix = "this") => { + var reg, rev; + reg = /(\{[^{}]*\})/g; + rev = formula.replace(reg, function (m, $1) { + return prefix + $1.replace(/\{\s*/, "[\"").replace(/\s*\}/, "\"]").replace(/\s*\.\s*/g, "\"][\""); + }); + return rev; +}; + +let evaluateFormula = (formula, context) => { + if (checkFormula(formula)) { + formula = prepareFormula(formula); + return function () { + return eval(formula); + }.call(context); + } + else{ + return formula; + } +}; + +exports.evaluateFormula = evaluateFormula; \ No newline at end of file diff --git a/packages/filters/index.js b/packages/filters/index.js index b7b749bd19..fde5bcbcbc 100644 --- a/packages/filters/index.js +++ b/packages/filters/index.js @@ -2,6 +2,7 @@ const SteedosFilter = require("./filter"); const format = require('./format'); const utils = require('./utils'); +const formula = require('./formula'); exports.SteedosFilter = SteedosFilter; -Object.assign(exports, format, utils); \ No newline at end of file +Object.assign(exports, utils, formula, format); \ No newline at end of file diff --git a/packages/filters/package.json b/packages/filters/package.json index 470e06f7a8..1e50a5d0db 100644 --- a/packages/filters/package.json +++ b/packages/filters/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/filters", "private": false, - "version": "0.0.12", + "version": "0.0.13", "description": "filters lib for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/filters/test/unit/formula.js b/packages/filters/test/unit/formula.js new file mode 100644 index 0000000000..08cebca114 --- /dev/null +++ b/packages/filters/test/unit/formula.js @@ -0,0 +1,19 @@ +const formatFiltersToODataQuery = require('../../index').formatFiltersToODataQuery; +const expect = require('chai').expect; + +const userContext = { userId: "hPgDcEd9vKQxwndQR", user: { _id: "hPgDcEd9vKQxwndQR", name: "系统管理员", email: "test1@steedos.cn" } }; + +describe("format formula filter to odata query", () => { + it('simple formula format', async () => { + let filters = [["assignees", "=", "{userId}"], ["state", "<>", "completed"]]; + let result = formatFiltersToODataQuery(filters, userContext); + console.log("odata filters query result:", result); + expect(result).to.be.eq("(assignees eq 'hPgDcEd9vKQxwndQR') and (state ne 'completed')"); + }); + it('complex formula format', async () => { + let filters = [["email", "=", "{user.email}"]]; + let result = formatFiltersToODataQuery(filters, userContext); + console.log("odata filters query result:", result); + expect(result).to.be.eq("(email eq 'test1@steedos.cn')"); + }); +}); From ebd20332ccbf78003ff264a54946a40d57dc7edd Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 12 Aug 2019 11:18:35 +0800 Subject: [PATCH 012/154] Update package.json --- packages/objectql/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 9e03d9457f..68df98aaee 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -18,7 +18,7 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/filters": "^0.0.12", + "@steedos/filters": "^0.0.13", "@steedos/odata-v4-typeorm": "^0.0.24", "@steedos/schemas": "^1.0.0", "@steedos/standard-objects": "^0.2.1", From 01330f366e915d9b193805d1c6e30c94393cb5ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Mon, 12 Aug 2019 11:20:05 +0800 Subject: [PATCH 013/154] =?UTF-8?q?=E6=A8=A1=E7=89=88=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E4=B8=BA=E5=8D=95=E4=BD=8D=E3=80=81=E8=81=94=E7=B3=BB=E4=BA=BA?= =?UTF-8?q?=EF=BC=8C=E5=90=AF=E7=94=A8=E6=97=A5=E7=A8=8B=E3=80=81=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/project-template-empty/src/accounts.object.yml | 1 + packages/project-template-empty/src/contacts.object.yml | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/project-template-empty/src/accounts.object.yml b/packages/project-template-empty/src/accounts.object.yml index 985f6470ac..c3128a3a24 100644 --- a/packages/project-template-empty/src/accounts.object.yml +++ b/packages/project-template-empty/src/accounts.object.yml @@ -4,6 +4,7 @@ icon: account enable_files: true enable_search: true enable_tasks: true +enable_events: true enable_notes: false enable_api: true enable_share: true diff --git a/packages/project-template-empty/src/contacts.object.yml b/packages/project-template-empty/src/contacts.object.yml index 07fbaafe50..d43cc703cc 100644 --- a/packages/project-template-empty/src/contacts.object.yml +++ b/packages/project-template-empty/src/contacts.object.yml @@ -3,7 +3,8 @@ label: 联系人 icon: contact enable_files: true enable_search: true -enable_notes: true +enable_events: true +enable_tasks: true enable_api: true fields: name: From acaa75dffd42cb0b60f0167dd77aa90c43b2ff67 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 12 Aug 2019 11:20:32 +0800 Subject: [PATCH 014/154] @steedos/auth@1.1.1 --- packages/auth/package.json | 2 +- packages/auth/src/initRouter.ts | 2 +- packages/auth/src/session.ts | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/auth/package.json b/packages/auth/package.json index e1216e011d..6ad5e5e8f2 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.1.0", + "version": "1.1.1", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", diff --git a/packages/auth/src/initRouter.ts b/packages/auth/src/initRouter.ts index 50d5e6dec3..8faeea9f9c 100644 --- a/packages/auth/src/initRouter.ts +++ b/packages/auth/src/initRouter.ts @@ -40,7 +40,7 @@ router.post('/api/v4/users/login', async function (req: Request, res: Response) router.post('/api/v4/users/validate', async function (req: Request, res: Response) { let userSession = await auth(req, res); - if (userSession) { + if (userSession.userId) { utils._setAuthCookies(req, res, userSession.userId, userSession.authToken, userSession.spaceId); return res.send(userSession); diff --git a/packages/auth/src/session.ts b/packages/auth/src/session.ts index b5df93dc3b..ce3645052d 100644 --- a/packages/auth/src/session.ts +++ b/packages/auth/src/session.ts @@ -229,11 +229,11 @@ export async function auth(request: Request, response: Response): Promise { || request.headers['x-space-id']; if (request.headers.authorization && request.headers.authorization.split(' ')[0] == 'Bearer') { let spaceAuthToken = request.headers.authorization.split(' ')[1]; - if (!authToken) { - authToken = spaceAuthToken.split(',')[0]; - } if (!spaceId) { - spaceId = spaceAuthToken.split(',')[1]; + spaceId = spaceAuthToken.split(',')[0]; + } + if (!authToken) { + authToken = spaceAuthToken.split(',')[1]; } } let user = await getSession(authToken, spaceId); From c1c824f8f6f57a50080a2d5025ea9a9af00122f9 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 12 Aug 2019 11:22:05 +0800 Subject: [PATCH 015/154] @steedos/core@1.3.3 --- packages/core/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 5dc7bd7b9e..8ca50e793f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.2", + "version": "1.3.3", "description": "", "main": "lib/index.js", "scripts": { @@ -18,7 +18,7 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/auth": "^1.1.0", + "@steedos/auth": "^1.1.1", "@steedos/objectql": "^0.2.3", "@steedos/standard-objects": "^0.2.1", "@types/express": "^4.16.1", From 674210f74a0cc93bde93bf54af4fc7950319eaee Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 12 Aug 2019 14:00:04 +0800 Subject: [PATCH 016/154] =?UTF-8?q?report=E7=9A=84model=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=88=A4=E6=96=ADisJsreportPluginExisted?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/standard-objects/reports.object.js | 43 +++++++++------------ 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/packages/standard-objects/reports.object.js b/packages/standard-objects/reports.object.js index 00d3ba580d..6b140bd1bd 100644 --- a/packages/standard-objects/reports.object.js +++ b/packages/standard-objects/reports.object.js @@ -1,4 +1,3 @@ -const isJsreportPluginExisted = !!(Meteor.settings.plugins && Meteor.settings.plugins.length && Meteor.settings.plugins.indexOf("@steedos/plugin-jsreport") >= 0); Creator.Objects.reports = { name: "reports", label: "报表", @@ -16,27 +15,21 @@ Creator.Objects.reports = { label: "报表类型", type: "select", defaultValue: "tabular", - options: (() => { - let types = [ - { - label: "表格", - value: "tabular" - }, { - label: "摘要", - value: "summary" - }, { - label: "矩阵", - value: "matrix" - } - ]; - if (isJsreportPluginExisted) { - types.push({ - label: "JsReport", - value: "jsreport" - }); + options: [ + { + label: "表格", + value: "tabular" + }, { + label: "摘要", + value: "summary" + }, { + label: "矩阵", + value: "matrix" + }, { + label: "JsReport", + value: "jsreport" } - return types; - })() + ] }, data_source: { label: "报表数据来源", @@ -216,28 +209,28 @@ Creator.Objects.reports = { label: "Graphql", type: "textarea", is_wide: true, - hidden: !isJsreportPluginExisted, + hidden: false, group: "JsReport" }, html: { label: "Html", type: "textarea", is_wide: true, - hidden: !isJsreportPluginExisted, + hidden: false, group: "JsReport" }, helper: { label: "Helper", type: "textarea", is_wide: true, - hidden: !isJsreportPluginExisted, + hidden: false, group: "JsReport" }, script: { label: "Script", type: "textarea", is_wide: true, - hidden: !isJsreportPluginExisted, + hidden: false, group: "JsReport" } }, From 8fa5af8abdb9deb37876aef82eb2a07a013aeac5 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 12 Aug 2019 15:27:11 +0800 Subject: [PATCH 017/154] @steedos/standard-objects@0.2.2 --- packages/standard-objects/History.md | 4 ++++ packages/standard-objects/organizations.object.yml | 6 +++--- packages/standard-objects/package.json | 2 +- packages/standard-objects/space_users.object.yml | 12 ++++++------ packages/standard-objects/spaces.object.yml | 4 ++-- packages/standard-objects/user_star.remove.yml | 4 ---- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/standard-objects/History.md b/packages/standard-objects/History.md index 9b127d2859..09cf482acc 100644 --- a/packages/standard-objects/History.md +++ b/packages/standard-objects/History.md @@ -1,3 +1,7 @@ +0.2.2 / 2019-08-12 +=================== + + * fix bug:给yml文件中function类型字段添加 `!!js/function` 0.2.1 / 2019-08-02 =================== diff --git a/packages/standard-objects/organizations.object.yml b/packages/standard-objects/organizations.object.yml index 09ebb26ec7..dd523027bf 100644 --- a/packages/standard-objects/organizations.object.yml +++ b/packages/standard-objects/organizations.object.yml @@ -77,7 +77,7 @@ fields: sortable: true index: true is_company_only: true - defaultValue: | + defaultValue: !!js/function | function(){ if (Meteor.isClient) { return Session.get('user_company_id') @@ -123,7 +123,7 @@ actions: todo: standard_query addSubOrganization: label: 添加子部门 - visible: | + visible: !!js/function | function () { var permissions; permissions = Creator.getPermissions(); @@ -133,7 +133,7 @@ actions: } } 'on': record - todo: | + todo: !!js/function | function (object_name, record_id) { var record; diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 9048d209bb..9ed3b6af28 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "0.2.1", + "version": "0.2.2", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/standard-objects/space_users.object.yml b/packages/standard-objects/space_users.object.yml index 3f281fa658..06211fe7de 100644 --- a/packages/standard-objects/space_users.object.yml +++ b/packages/standard-objects/space_users.object.yml @@ -25,7 +25,7 @@ fields: reference_to: organizations multiple: true index: true - defaultValue: | + defaultValue: !!js/function | function () { return Session.get('grid_sidebar_selected'); } @@ -47,7 +47,7 @@ fields: sortable: true index: true is_company_only: true - defaultValue: | + defaultValue: !!js/function | function(){ if (Meteor.isClient) { return Session.get('user_company_id') @@ -170,11 +170,11 @@ actions: import: label: 导入 'on': list - visible: | + visible: !!js/function | function (object_name, record_id, record_permissions) { return Creator.isSpaceAdmin(); } - todo: | + todo: !!js/function | function () { if (!Steedos.isPaidSpace()) { Steedos.spaceUpgradedModal(); @@ -186,11 +186,11 @@ actions: export: label: 导出 'on': list - visible: | + visible: !!js/function | function (object_name, record_id, record_permissions) { return Creator.isSpaceAdmin(); } - todo: | + todo: !!js/function | function () { var orgId, ref, spaceId, uobj, url; spaceId = Session.get('spaceId'); diff --git a/packages/standard-objects/spaces.object.yml b/packages/standard-objects/spaces.object.yml index c5ee15303d..076a90a8a6 100644 --- a/packages/standard-objects/spaces.object.yml +++ b/packages/standard-objects/spaces.object.yml @@ -137,7 +137,7 @@ actions: label: 订单 'on': record visible: true - todo: | + todo: !!js/function | function () { var url; url = Creator.getListViewRelativeUrl("billing_pay_records", "admin", "all"); @@ -147,7 +147,7 @@ actions: label: 升级 'on': record visible: true - todo: | + todo: !!js/function | function () { return Modal.show('space_recharge_modal'); } diff --git a/packages/standard-objects/user_star.remove.yml b/packages/standard-objects/user_star.remove.yml index bb218dfc89..0e7b359388 100644 --- a/packages/standard-objects/user_star.remove.yml +++ b/packages/standard-objects/user_star.remove.yml @@ -18,10 +18,6 @@ fields: function () { return _.keys(Creator.Objects); } - _reference_to: |- - function () { - return _.keys(Creator.Objects); - } name: related_to filterable: true searchable: true From 22c9afdf0fcc93c769f6b98685d7b09635f6d8a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Mon, 12 Aug 2019 15:30:26 +0800 Subject: [PATCH 018/154] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{plugin_developer.md => plugin_server.md} | 4 +-- docs/plugin_webapp.md | 31 +++++++++++++++++++ docs/plugins.md | 23 ++++++++------ website/sidebars.json | 2 +- 4 files changed, 48 insertions(+), 12 deletions(-) rename docs/{plugin_developer.md => plugin_server.md} (93%) create mode 100644 docs/plugin_webapp.md diff --git a/docs/plugin_developer.md b/docs/plugin_server.md similarity index 93% rename from docs/plugin_developer.md rename to docs/plugin_server.md index b77924a044..7be279c1d8 100644 --- a/docs/plugin_developer.md +++ b/docs/plugin_server.md @@ -1,8 +1,8 @@ --- -title: 开发插件 +title: 服务端插件 --- -通过定义插件,开发人员可以扩展Steedos现有的功能。 +通过定义服务端插件,开发人员可以创建/继承业务对象,或是开发服务端API。 ## 创建插件 任何 Steedos 项目都可以转换为一个插件。每个插件就是一个npm包,必须先发布到npm,才能在其他项目中引用。 diff --git a/docs/plugin_webapp.md b/docs/plugin_webapp.md new file mode 100644 index 0000000000..0feaccac16 --- /dev/null +++ b/docs/plugin_webapp.md @@ -0,0 +1,31 @@ +--- +title: Web插件 +--- + +通过定义Web插件,开发人员可以扩展Steedos现有网页客户端的功能。 + +## 创建插件 +任何 Steedos 项目都可以转换为一个插件。每个插件就是一个npm包,必须先发布到npm,才能在其他项目中引用。 + +### 插件名称 +package.json 中定义的 npm 包名称,就是插件名称。 + +## 插件API +每个插件必须定义一个plugin.config.js文件,用于申明Steedos相关API。 + + +### 引入客户端 Javascript 文件 +如果需要扩展前端功能,可以在 plugin.config.js 中定义插件需加载的 Javascript 文件。 +```js +export scripts = [ + 'https://buttons.github.io/buttons.js' +] +``` + +### 引入客户端 CSS 文件 +如果需要扩展前端功能,可以在 plugin.config.js 中定义插件需加载的 CSS 文件。 +```js +export stylesheets = [ + 'https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css' +] +``` \ No newline at end of file diff --git a/docs/plugins.md b/docs/plugins.md index d7d687b891..6e747cc846 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -1,24 +1,29 @@ --- -title: 使用插件 +title: 快速向导 --- 通过定义插件,可以扩展Steedos现有的功能。 -## 配置插件 +## Steedos 插件 + +### 引入插件 +配置 steedos-config.yml 文件,可以启用插件。例如以下配置用于启用 jsreport 插件: +```yaml +plugins: + - "@steedos/plugin-jsreport" +``` ### 安装插件 -启用插件前,需先在项目中安装插件。 +插件可以以node_modules的形式安装在项目文件夹中,例如。 ```shell yarn add @steedos/plugin-jsreport ``` -### 启用插件 -配置 steedos-config.yml 文件,可以启用插件。例如以下配置用于启用 jsreport 插件: -```yaml -plugins: - - "@steedos/plugin-jsreport" +### 调试插件源码 +插件也可以以源码的形式安装在项目的 /plugins 文件夹中。Steedos会优先使用此文件夹下的插件版本。例如要调试@steedos/plugin-jsreport插件,可以把源码复制到: +```shell +{project_root}/plugins/@steedos/plugin-jsreport ``` -Steedos 启动时,会自动检测插件对应的npm包是否已在本地安装,如果未安装提示报错。 ## 示例 ### jsreport 插件 diff --git a/website/sidebars.json b/website/sidebars.json index a8341e122c..69cd29e8af 100644 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -6,7 +6,7 @@ "审批": ["workflow_overview", "workflow_submit", "workflow_archive", "object_workflow"], "权限": ["organization","space_user", "permission_set", "object_permission", "permission_share"], "统计": ["reports", "report_jsreport"], - "插件": ["plugins", "plugin_developer"], + "插件": ["plugins", "plugin_server", "plugin_webapp"], "OData": ["api", "api_auth", "odata_query", "odata_get", "odata_add", "odata_edit", "odata_delete", "odata_functions", "odata_metadata"], "GraphQL": ["graphql", "graphql_auth", "graphql_query", "graphql_add", "graphql_edit", "graphql_delete"], "单点登录 ": ["api_jwt"] From c88719df26c0e18d45aaa364065e727561ca51bd Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 12 Aug 2019 15:38:04 +0800 Subject: [PATCH 019/154] fix run yarn test error --- packages/objectql/test/unit/permissionTest.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/objectql/test/unit/permissionTest.ts b/packages/objectql/test/unit/permissionTest.ts index 11b38be2d4..0d6d18c7de 100644 --- a/packages/objectql/test/unit/permissionTest.ts +++ b/packages/objectql/test/unit/permissionTest.ts @@ -1,12 +1,11 @@ import { expect } from 'chai'; import { SteedosSchema } from '../../src'; -import { SteedosUserSession } from '../../src/types/userSession'; import { Dictionary } from '@salesforce/ts-types'; var path = require('path') describe('Test Permission', () => { - let userSessionStorage: Dictionary = {} + let userSessionStorage: Dictionary = {} userSessionStorage['0'] = { userId: 0, From 113eac4fd37110d803abc77d7fbc0be253ae6e56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Mon, 12 Aug 2019 15:48:18 +0800 Subject: [PATCH 020/154] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E6=A8=A1=E7=89=88?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/project-template-empty/package.json | 2 +- .../package.template.json | 20 +++++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/project-template-empty/package.json b/packages/project-template-empty/package.json index 23c687f396..90bd62b551 100644 --- a/packages/project-template-empty/package.json +++ b/packages/project-template-empty/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/project-template-empty", "private": false, - "version": "0.1.1", + "version": "0.1.3", "description": "", "main": "server.js", "repository": { diff --git a/packages/project-template-empty/package.template.json b/packages/project-template-empty/package.template.json index e6a8e6bd76..5d3edd46fa 100644 --- a/packages/project-template-empty/package.template.json +++ b/packages/project-template-empty/package.template.json @@ -15,10 +15,14 @@ "author": "", "license": "ISC", "dependencies": { - "@steedos/meteor-bundle-runner": "^1.1.7", - "@steedos/objectql": "^0.1.8", - "steedos-server": "^1.3.3", - "underscore": "1.5.2" + "@steedos/meteor-bundle-runner": "^1.1.7", + "@steedos/filters": "^0.0.12", + "@steedos/objectql": "^0.2.3", + "@steedos/core": "^1.3.2", + "@steedos/auth": "^1.1.1", + "@steedos/standard-objects": "^0.2.2", + "steedos-server": "^1.3.5", + "underscore": "1.5.2" }, "devDependencies": { "nodemon": "^1.19.1" @@ -26,11 +30,5 @@ "bugs": { "url": "https://github.com/steedos/object-server/issues" }, - "homepage": "https://github.com/steedos/object-server#readme", - "resolutions": { - "graphql": "^14.1.1", - "@steedos/objectql": "^0.1.8", - "@steedos/core": "^1.2.1", - "@steedos/auth": "^1.0.14" - } + "homepage": "https://github.com/steedos/object-server#readme" } \ No newline at end of file From 1c3af24d6e0b6d54024c637242b7cda446bc7501 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 12 Aug 2019 17:17:25 +0800 Subject: [PATCH 021/154] =?UTF-8?q?object.find=E6=97=B6=E5=BA=94=E8=AF=A5?= =?UTF-8?q?=E5=9C=A8=E5=AF=B9query.filters=E4=BC=A0=E5=85=A5userSession?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=BF=87=E6=BB=A4=E5=99=A8=E4=B8=AD=E5=85=AC?= =?UTF-8?q?=E5=BC=8F=E8=BD=AC=E6=8D=A2=E5=8F=8AutcOffset=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/objectql/src/types/object.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/objectql/src/types/object.ts b/packages/objectql/src/types/object.ts index 90992f2a73..acdcbc6ecf 100644 --- a/packages/objectql/src/types/object.ts +++ b/packages/objectql/src/types/object.ts @@ -624,6 +624,7 @@ export class SteedosObjectType extends SteedosObjectProperties { // 判断处理工作区权限,公司级权限,owner权限 if (this._datasource.driver == SteedosDatabaseDriverType.MeteorMongo || this._datasource.driver == SteedosDatabaseDriverType.Mongo) { + this.dealWithFilters(method, args); await this.dealWithMethodPermission(method, args); } @@ -643,6 +644,22 @@ export class SteedosObjectType extends SteedosObjectProperties { return returnValue }; + /** + * 把query.filters用formatFiltersToODataQuery转为odata query + * 主要是为了把userSession中的utcOffset逻辑传入formatFiltersToODataQuery函数处理 + */ + private dealWithFilters(method: string, args: any[]) { + let userSession = args[args.length - 1]; + if (userSession) { + if (method === 'find' || method === 'count') { + let query = args[args.length - 2]; + if (query.filters && !_.isString(query.filters)) { + query.filters = formatFiltersToODataQuery(query.filters, userSession); + } + } + } + } + private async dealWithMethodPermission(method: string, args: any[]) { let userSession = args[args.length - 1]; if (userSession) { From 6f547f96b60a042a5ec7f87cb65e30acd8de7b4a Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 12 Aug 2019 17:18:20 +0800 Subject: [PATCH 022/154] @steedos/auth@1.1.2 --- packages/auth/History.md | 4 ++++ packages/auth/package.json | 2 +- packages/auth/src/initRouter.ts | 8 ++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/auth/History.md b/packages/auth/History.md index 1743c51ec7..b8742cd033 100644 --- a/packages/auth/History.md +++ b/packages/auth/History.md @@ -1,3 +1,7 @@ +1.1.2 / 2019-08-12 +=================== + + * /api/v4/users/validate接口增加处理时区 1.1.0 / 2019-08-10 =================== diff --git a/packages/auth/package.json b/packages/auth/package.json index 6ad5e5e8f2..4001f8d6a8 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.1.1", + "version": "1.1.2", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", diff --git a/packages/auth/src/initRouter.ts b/packages/auth/src/initRouter.ts index 8faeea9f9c..d268c806af 100644 --- a/packages/auth/src/initRouter.ts +++ b/packages/auth/src/initRouter.ts @@ -4,6 +4,7 @@ const bcrypt = require('bcrypt'); import { getSession, auth } from './session'; import { utils } from './utils'; import { Request, Response } from 'express'; +import { getSteedosSchema } from '@steedos/objectql'; const router = express.Router(); @@ -39,10 +40,17 @@ router.post('/api/v4/users/login', async function (req: Request, res: Response) router.post('/api/v4/users/validate', async function (req: Request, res: Response) { + let utcOffset = req.body.utcOffset; let userSession = await auth(req, res); if (userSession.userId) { utils._setAuthCookies(req, res, userSession.userId, userSession.authToken, userSession.spaceId); + let user = await getSteedosSchema().getObject('users').findOne(userSession.userId, { fields: ['utcOffset'] }); + + if (!user.hasOwnProperty('utcOffset')) { + await getSteedosSchema().getObject('users').update(userSession.userId, { 'utcOffset': utcOffset }) + } + return res.send(userSession); } return res.status(401).send({ From fca8b4e2cfe25afb75fb66e0c2228194772fd9ae Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 12 Aug 2019 17:22:23 +0800 Subject: [PATCH 023/154] @steedos/standard-objects@0.2.3 --- packages/standard-objects/package.json | 2 +- packages/standard-objects/reports.object.js | 287 ------------------ packages/standard-objects/reports.object.yml | 301 +++++++++++++++++++ packages/standard-objects/users.object.yml | 4 + 4 files changed, 306 insertions(+), 288 deletions(-) create mode 100644 packages/standard-objects/reports.object.yml diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 9ed3b6af28..b0afa5457f 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "0.2.2", + "version": "0.2.3", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/standard-objects/reports.object.js b/packages/standard-objects/reports.object.js index 6b140bd1bd..e69de29bb2 100644 --- a/packages/standard-objects/reports.object.js +++ b/packages/standard-objects/reports.object.js @@ -1,287 +0,0 @@ -Creator.Objects.reports = { - name: "reports", - label: "报表", - icon: "report", - enable_space_global: true, - fields: { - name: { - label: "名称", - type: "text", - required: true, - searchable: true, - index: true - }, - report_type: { - label: "报表类型", - type: "select", - defaultValue: "tabular", - options: [ - { - label: "表格", - value: "tabular" - }, { - label: "摘要", - value: "summary" - }, { - label: "矩阵", - value: "matrix" - }, { - label: "JsReport", - value: "jsreport" - } - ] - }, - data_source: { - label: "报表数据来源", - type: "select", - defaultValue: "odata", - options: [ - { - label: "OData", - value: "odata" - }, { - label: "Graphql", - value: "graphql" - } - ] - }, - object_name: { - label: "对象名", - type: "lookup", - optionsFunction: function () { - var _options; - _options = []; - _.forEach(Creator.Objects, function (o, k) { - return _options.push({ - label: o.label, - value: k, - icon: o.icon - }); - }); - return _options; - }, - required: true - }, - filter_scope: { - label: "过虑范围", - type: "select", - defaultValue: "space", - hidden: true, - options: [ - { - label: "所有", - value: "space" - }, { - label: "与我相关", - value: "mine" - } - ] - }, - filters: { - label: "过滤条件", - type: "[Object]", - omit: true - }, - "filters.$": { - label: "过滤器", - blackbox: true, - omit: true, - hidden: true - }, - "filters.$.field": { - label: "字段名", - type: "text" - }, - "filters.$.operation": { - label: "操作符", - type: "select", - defaultValue: "=", - options: function () { - return Creator.getFieldOperation(); - } - }, - "filters.$.value": { - label: "字段值", - blackbox: true - }, - filter_logic: { - label: "过滤逻辑", - type: "text", - omit: true - }, - fields: { - label: "字段", - type: "lookup", - multiple: true, - is_wide: true, - depend_on: ["object_name"], - defaultIcon: "service_contract", - optionsFunction: function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - }, - rows: { - label: "行", - type: "lookup", - multiple: true, - is_wide: true, - depend_on: ["object_name"], - defaultIcon: "service_contract", - optionsFunction: function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - }, - columns: { - label: "列", - type: "lookup", - multiple: true, - is_wide: true, - depend_on: ["object_name"], - defaultIcon: "service_contract", - optionsFunction: function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - }, - values: { - label: "统计", - type: "lookup", - multiple: true, - is_wide: true, - depend_on: ["object_name"], - defaultIcon: "service_contract", - optionsFunction: function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - }, - filter_fields: { - label: "过滤字段", - type: "grid", - is_wide: true - }, - "filter_fields.$": { - label: "过滤字段", - blackbox: true, - type: "Object" - }, - "filter_fields.$.field": { - label: "字段名称", - type: "lookup", - depend_on: ["object_name"], - optionsFunction: function (values) { - return Creator.getObjectFilterFieldOptions(values != null ? values.object_name : void 0); - } - }, - "filter_fields.$.required": { - label: "必填", - type: "boolean" - }, - options: { - label: "操作", - omit: true, - blackbox: true - }, - description: { - label: "描述", - type: "textarea", - is_wide: true - }, - charting: { - label: "显示图表", - type: "boolean", - defaultValue: true - }, - grouping: { - label: "显示小计", - type: "boolean", - defaultValue: true - }, - totaling: { - label: "显示总计", - type: "boolean", - defaultValue: true - }, - counting: { - label: "显示记录计数", - type: "boolean", - defaultValue: true - }, - graphql: { - label: "Graphql", - type: "textarea", - is_wide: true, - hidden: false, - group: "JsReport" - }, - html: { - label: "Html", - type: "textarea", - is_wide: true, - hidden: false, - group: "JsReport" - }, - helper: { - label: "Helper", - type: "textarea", - is_wide: true, - hidden: false, - group: "JsReport" - }, - script: { - label: "Script", - type: "textarea", - is_wide: true, - hidden: false, - group: "JsReport" - } - }, - list_views: { - "default": { - columns: ["name", "report_type", "object_name"] - }, - all: { - label: "所有报表", - filter_scope: "space", - filter_fields: ["report_type", "created"] - }, - application: { - label: "应用报表", - filter_scope: "space", - filters: function () { - var object_names; - object_names = Creator.getAppObjectNames(); - return [["object_name", "=", object_names]]; - }, - filter_fields: ["report_type", "created"] - }, - mine: { - label: "我的报表", - filter_scope: "mine", - filter_fields: ["report_type", "created"] - }, - global: { - label: "标准报表", - filter_scope: "space", - filters: [["space", "=", 'global']], - filter_fields: ["report_type", "created"] - } - }, - permission_set: { - user: { - allowCreate: true, - allowDelete: true, - allowEdit: true, - allowRead: true, - modifyAllRecords: false, - viewAllRecords: true, - disabled_list_views: ["all"] - }, - admin: { - allowCreate: true, - allowDelete: true, - allowEdit: true, - allowRead: true, - modifyAllRecords: true, - viewAllRecords: true - } - } -}; \ No newline at end of file diff --git a/packages/standard-objects/reports.object.yml b/packages/standard-objects/reports.object.yml new file mode 100644 index 0000000000..b909e368d8 --- /dev/null +++ b/packages/standard-objects/reports.object.yml @@ -0,0 +1,301 @@ +name: reports +label: 报表 +icon: report +enable_space_global: true +fields: + name: + label: 名称 + type: text + required: true + searchable: true + index: true + name: name + report_type: + label: 报表类型 + type: select + defaultValue: tabular + options: + - label: 表格 + value: tabular + - label: 摘要 + value: summary + - label: 矩阵 + value: matrix + - label: JsReport + value: jsreport + name: report_type + filterable: true + data_source: + label: 报表数据来源 + type: select + defaultValue: odata + options: + - label: OData + value: odata + - label: Graphql + value: graphql + name: data_source + filterable: true + object_name: + label: 对象名 + type: lookup + optionsFunction: ! |- + function () { + var _options; + _options = []; + _.forEach(Creator.Objects, function (o, k) { + return _options.push({ + label: o.label, + value: k, + icon: o.icon + }); + }); + return _options; + } + required: true + name: object_name + filterable: true + filter_scope: + label: 过虑范围 + type: select + defaultValue: space + hidden: true + options: + - label: 所有 + value: space + - label: 与我相关 + value: mine + name: filter_scope + filterable: true + filters: + label: 过滤条件 + type: '[Object]' + omit: true + name: filters + filters.$: + label: 过滤器 + blackbox: true + omit: true + hidden: true + name: filters.$ + filters.$.field: + label: 字段名 + type: text + name: filters.$.field + filters.$.operation: + label: 操作符 + type: select + defaultValue: = + options: ! |- + function () { + return Creator.getFieldOperation(); + } + name: filters.$.operation + filterable: true + filters.$.value: + label: 字段值 + blackbox: true + name: filters.$.value + filter_logic: + label: 过滤逻辑 + type: text + omit: true + name: filter_logic + fields: + label: 字段 + type: lookup + multiple: true + is_wide: true + depend_on: + - object_name + defaultIcon: service_contract + optionsFunction: ! |- + function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); + } + name: fields + filterable: true + rows: + label: 行 + type: lookup + multiple: true + is_wide: true + depend_on: + - object_name + defaultIcon: service_contract + optionsFunction: ! |- + function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); + } + name: rows + filterable: true + columns: + label: 列 + type: lookup + multiple: true + is_wide: true + depend_on: + - object_name + defaultIcon: service_contract + optionsFunction: ! |- + function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); + } + name: columns + filterable: true + values: + label: 统计 + type: lookup + multiple: true + is_wide: true + depend_on: + - object_name + defaultIcon: service_contract + optionsFunction: ! |- + function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); + } + name: values + filterable: true + filter_fields: + label: 过滤字段 + type: grid + is_wide: true + name: filter_fields + filter_fields.$: + label: 过滤字段 + blackbox: true + type: Object + name: filter_fields.$ + filter_fields.$.field: + label: 字段名称 + type: lookup + depend_on: + - object_name + optionsFunction: ! |- + function (values) { + return Creator.getObjectFilterFieldOptions(values != null ? values.object_name : void 0); + } + name: filter_fields.$.field + filterable: true + filter_fields.$.required: + label: 必填 + type: boolean + name: filter_fields.$.required + options: + label: 操作 + omit: true + blackbox: true + name: options + description: + label: 描述 + type: textarea + is_wide: true + name: description + charting: + label: 显示图表 + type: boolean + defaultValue: true + name: charting + grouping: + label: 显示小计 + type: boolean + defaultValue: true + name: grouping + totaling: + label: 显示总计 + type: boolean + defaultValue: true + name: totaling + counting: + label: 显示记录计数 + type: boolean + defaultValue: true + name: counting + graphql: + label: Graphql + type: textarea + is_wide: true + hidden: false + group: JsReport + name: graphql + html: + label: Html + type: textarea + is_wide: true + hidden: false + group: JsReport + name: html + helper: + label: Helper + type: textarea + is_wide: true + hidden: false + group: JsReport + name: helper + script: + label: Script + type: textarea + is_wide: true + hidden: false + group: JsReport + name: script +list_views: + default: + columns: + - name + - report_type + - object_name + all: + label: 所有报表 + filter_scope: space + filter_fields: + - report_type + - created + application: + label: 应用报表 + filter_scope: space + filters: ! |- + function () { + var object_names; + object_names = Creator.getAppObjectNames(); + return [[\"object_name\", \"=\", object_names]]; + } + filter_fields: + - report_type + - created + mine: + label: 我的报表 + filter_scope: mine + filter_fields: + - report_type + - created + global: + label: 标准报表 + filter_scope: space + filters: + - - space + - = + - global + filter_fields: + - report_type + - created +permission_set: + user: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: true + disabled_list_views: + - all + name: user + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true + name: admin diff --git a/packages/standard-objects/users.object.yml b/packages/standard-objects/users.object.yml index 0ab81481f5..328605f3f5 100644 --- a/packages/standard-objects/users.object.yml +++ b/packages/standard-objects/users.object.yml @@ -197,6 +197,10 @@ fields: value: en-us name: locale filterable: true + utcOffset: + label: 时区 + type: number + name: utcOffset email_notification: label: 接收邮件通知 type: boolean From f2f8803d289278787f23b080b85a9f1ba21b294b Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 12 Aug 2019 17:24:25 +0800 Subject: [PATCH 024/154] @steedos/objectql@0.2.4 --- packages/objectql/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 68df98aaee..282b370498 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "0.2.3", + "version": "0.2.4", "description": "", "main": "lib/index.js", "scripts": { @@ -21,7 +21,7 @@ "@steedos/filters": "^0.0.13", "@steedos/odata-v4-typeorm": "^0.0.24", "@steedos/schemas": "^1.0.0", - "@steedos/standard-objects": "^0.2.1", + "@steedos/standard-objects": "^0.2.3", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", From ad05394bbf6a5cb0e450138fc2d60d5d23841264 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 12 Aug 2019 17:25:20 +0800 Subject: [PATCH 025/154] @steedos/core@1.3.4 --- packages/core/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 8ca50e793f..6ba0f29865 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.3", + "version": "1.3.4", "description": "", "main": "lib/index.js", "scripts": { @@ -18,8 +18,8 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/auth": "^1.1.1", - "@steedos/objectql": "^0.2.3", + "@steedos/auth": "^1.1.2", + "@steedos/objectql": "^0.2.4", "@steedos/standard-objects": "^0.2.1", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", From 0c32f8e7167d90e494e370009e8dcb117b21ba79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Mon, 12 Aug 2019 17:29:50 +0800 Subject: [PATCH 026/154] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plugin_config.md | 60 +++++++++++++++++ docs/plugin_webapp.md | 150 +++++++++++++++++++++++++++++++++++++----- website/sidebars.json | 2 +- 3 files changed, 193 insertions(+), 19 deletions(-) create mode 100644 docs/plugin_config.md diff --git a/docs/plugin_config.md b/docs/plugin_config.md new file mode 100644 index 0000000000..922613af23 --- /dev/null +++ b/docs/plugin_config.md @@ -0,0 +1,60 @@ +--- +title: 插件配置 +--- + +## 插件基本信息 + +插件名称、版本等信息在 package.json 中定义。 + +```json +{ + "name": "steedos-plugin-test", + "description": "Test plugin", + "version": "0.0.1", +} +``` + +## 插件参数 + +插件配置文件保存在插件根目录的 plugin.config.yml + +```yml +datasources: + - name: mattermost +server: + main: index.js +webapp: + main: webapp/dist/main.js + css: webapp/dist/css.js +settings_schema: + header: Some header text + footer: Some footer text + settings: + - key: somekey + display_name: Enable Extra Feature + type: boolean + help_text: When true, an extra feature will be enabled! + default: false +props: + somekey: +``` + +### 数据源 datasources + +描述本插件引用到的第三方数据源。项目中引用此插件时,必须配置相关的数据源。 + +### 服务端入口 server + +服务端的入口文件,其中必须导出 init 函数。 + +### 客户端入口 webapp + +客户端的入口文件,可以为Steedos客户端加载额外的Javascript和CSS文件。 + +### 配置 settings_schema + +定义插件参数的格式,便于管理员在界面上配置插件参数。 + +### 属性 props + +在此描述插件的默认属性。引用插件时,steedos-config.yml 文件中配置的属性会覆盖这里的默认属性,而管理员在界面上配置的属性则优先级最高。 diff --git a/docs/plugin_webapp.md b/docs/plugin_webapp.md index 0feaccac16..7b95a8830f 100644 --- a/docs/plugin_webapp.md +++ b/docs/plugin_webapp.md @@ -1,31 +1,145 @@ --- -title: Web插件 +title: Web 插件 --- -通过定义Web插件,开发人员可以扩展Steedos现有网页客户端的功能。 +此教程将引导您创建一个基本的Steedos Web插件。 ## 创建插件 -任何 Steedos 项目都可以转换为一个插件。每个插件就是一个npm包,必须先发布到npm,才能在其他项目中引用。 -### 插件名称 -package.json 中定义的 npm 包名称,就是插件名称。 +创建并跳转到插件文件夹。 -## 插件API -每个插件必须定义一个plugin.config.js文件,用于申明Steedos相关API。 +```bash +cd {project_root} +mkdir plugins +cd plugins +mkdir hello-world-plugin +cd hello-world-plugin +``` + +## 初始化插件 + +创建一个 package.json 文件 + +```json +{ + "name": "hello-world-plugin", + "version": "0.0.1", + "description": "Hello World", +} +``` + +## 安装依赖包 + +```bash +yarn add --dev @babel/core @babel/preset-env @babel/preset-react babel-loader webpack webpack-cli +yarn add react +``` +## 配置 webpack +创建一个 `/webpack.config.js`文件,配置webpack -### 引入客户端 Javascript 文件 -如果需要扩展前端功能,可以在 plugin.config.js 中定义插件需加载的 Javascript 文件。 ```js -export scripts = [ - 'https://buttons.github.io/buttons.js' -] +var path = require('path'); + +module.exports = { + entry: [ + './webapp/index.jsx', + ], + resolve: { + modules: [ + 'webapp', + 'node_modules', + ], + extensions: ['*', '.js', '.jsx'], + }, + module: { + rules: [ + { + test: /\.(js|jsx)$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader', + options: { + presets: ['@babel/preset-react', + [ + "@babel/preset-env", + { + "modules": "commonjs", + "targets": { + "node": "current" + } + } + ] + ], + }, + }, + }, + ], + }, + externals: { + react: 'React', + }, + output: { + path: path.join(__dirname, '/dist/webapp'), + publicPath: '/', + filename: 'main.js', + }, +}; ``` -### 引入客户端 CSS 文件 -如果需要扩展前端功能,可以在 plugin.config.js 中定义插件需加载的 CSS 文件。 +> 注意 `react` 被指定为外部包. 这样你可以在本地测试代码 (e.g. with [jest](https://jestjs.io/) and snapshots) ,但是必不会影响到 Steedos 打包的react版本。 + +## 创建入口文件 + +```bash +mkdir webapp +touch webapp/index.jsx +``` + +编辑 `src/index.jsx`,写入以下内容: + ```js -export stylesheets = [ - 'https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css' -] -``` \ No newline at end of file +import React from 'react'; + +// Courtesy of https://feathericons.com/ +const Icon = () => ; + +class HelloWorldPlugin { + initialize(registry, store) { + registry.registerChannelHeaderButtonAction( + // icon - JSX element to use as the button's icon + , + // action - a function called when the button is clicked, passed the channel and channel member as arguments + // null, + () => { + alert("Hello World!"); + }, + // dropdown_text - string or JSX element shown for the dropdown button description + "Hello World", + ); + } +} + +window.registerPlugin('com.steedos.plugin-hello-world', new HelloWorldPlugin()); +``` + +## 打包 Webapp + +生成打包文件,以便安装到项目中。 + +```bash +yarn webpack --mode=production +``` + +## 编写配置文件 + +创建插件配置文件 plugin.config.yml + +```yml +webapp: + main: webapp/dist/main.js +``` + +## 插件测试 + +重新启动 Steedos服务,测试插件效果。 diff --git a/website/sidebars.json b/website/sidebars.json index 69cd29e8af..cb02282d45 100644 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -6,7 +6,7 @@ "审批": ["workflow_overview", "workflow_submit", "workflow_archive", "object_workflow"], "权限": ["organization","space_user", "permission_set", "object_permission", "permission_share"], "统计": ["reports", "report_jsreport"], - "插件": ["plugins", "plugin_server", "plugin_webapp"], + "插件(Beta)": ["plugins", "plugin_server", "plugin_webapp", "plugin_config"], "OData": ["api", "api_auth", "odata_query", "odata_get", "odata_add", "odata_edit", "odata_delete", "odata_functions", "odata_metadata"], "GraphQL": ["graphql", "graphql_auth", "graphql_query", "graphql_add", "graphql_edit", "graphql_delete"], "单点登录 ": ["api_jwt"] From caf41e3dd34bbe0f5170af390c603fba67b52b24 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 12 Aug 2019 17:37:22 +0800 Subject: [PATCH 027/154] @steedos/core@1.3.5 --- packages/core/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 6ba0f29865..484ee1ab2c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.4", + "version": "1.3.5", "description": "", "main": "lib/index.js", "scripts": { @@ -20,7 +20,7 @@ "@salesforce/ts-types": "^1.1.1", "@steedos/auth": "^1.1.2", "@steedos/objectql": "^0.2.4", - "@steedos/standard-objects": "^0.2.1", + "@steedos/standard-objects": "^0.2.3", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", From 4e5d6dce3fa352cc1363726ca442ce31a6cfa5c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Mon, 12 Aug 2019 17:40:48 +0800 Subject: [PATCH 028/154] Update plugin_server.md --- docs/plugin_server.md | 80 +++++++++++++++++++++++++++---------------- 1 file changed, 51 insertions(+), 29 deletions(-) diff --git a/docs/plugin_server.md b/docs/plugin_server.md index 7be279c1d8..925e52275d 100644 --- a/docs/plugin_server.md +++ b/docs/plugin_server.md @@ -4,30 +4,54 @@ title: 服务端插件 通过定义服务端插件,开发人员可以创建/继承业务对象,或是开发服务端API。 +以下教程创建一个Hello World服务端插件。 + ## 创建插件 -任何 Steedos 项目都可以转换为一个插件。每个插件就是一个npm包,必须先发布到npm,才能在其他项目中引用。 -### 插件名称 -package.json 中定义的 npm 包名称,就是插件名称。 +创建并跳转到插件文件夹。 -## 插件API -每个插件必须定义一个plugin.config.js文件,用于申明Steedos相关API。 +```bash +cd {project_root} +mkdir plugins +cd plugins +mkdir hello-world-plugin +cd hello-world-plugin +``` -### 插件初始化 -定义并导出 init 函数,供 Steedos 在插件初始化时调用。 -```js -export function init(context) { - // 执行插件初始化。 +## 初始化插件 + +创建一个 package.json 文件 + +```json +{ + "name": "hello-world-plugin", + "version": "0.0.1", + "description": "Hello World", + "main": "server/main.js" } ``` -context中包含以下参数: -- app: express 服务端,用于引入路由。 -- settings: 项目 steedos-config.yml 中配置的所有参数。 + +### 插件名称 name + +package.json 中定义的 npm 包名称,就是插件名称。 + +## 插件配置 + +每个插件必须定义一个插件配置文件 [plugin.config.yml](plugin_config.md) 文件。 + +```yml +server: + main: server/main.js +``` + +配置文件描述的 server/main,必须与 package.json 中保持一致。 ### 定义服务端API + 可以在插件中定义 Express Routes,并在插件初始化函数中注册相关路由。 -在 plugin.config.js 中添加如下代码定义了一个 '/plugins/test/api/hello' 路由: +创建一个 router.js 文件,并添加以下代码: + ```js const express = require('express') const router = express.Router(); @@ -42,24 +66,22 @@ router.get('/hello', async (req, res) => { } return; } +``` + +### 插件初始化 + +在main文件中,必须定义并导出 init 函数,供 Steedos 在插件初始化时调用。 + +```js +const router = require("router"); export function init(context) { - context.app.use('/plugins/test/api', router); + // 执行插件初始化。 + context.app.use('/plugins/hello-world/api', router); } ``` -### 引入客户端 Javascript 文件 -如果需要扩展前端功能,可以在 plugin.config.js 中定义插件需加载的 Javascript 文件。 -```js -export scripts = [ - 'https://buttons.github.io/buttons.js' -] -``` +context中包含以下参数: -### 引入客户端 CSS 文件 -如果需要扩展前端功能,可以在 plugin.config.js 中定义插件需加载的 CSS 文件。 -```js -export stylesheets = [ - 'https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css' -] -``` \ No newline at end of file +- app: express 服务端,用于引入路由。 +- settings: 项目 steedos-config.yml 中配置的所有参数。 From 9c6e56f46465cc433378de92656eb9a8b3a1c7f0 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 12 Aug 2019 17:50:41 +0800 Subject: [PATCH 029/154] @steedos/standard-objects@0.2.4 --- packages/standard-objects/package.json | 2 +- packages/standard-objects/reports.object.js | 287 ++++++++++++++++++ packages/standard-objects/reports.object.yml | 301 ------------------- 3 files changed, 288 insertions(+), 302 deletions(-) delete mode 100644 packages/standard-objects/reports.object.yml diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index b0afa5457f..a28f6ed859 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "0.2.3", + "version": "0.2.4", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/standard-objects/reports.object.js b/packages/standard-objects/reports.object.js index e69de29bb2..6b140bd1bd 100644 --- a/packages/standard-objects/reports.object.js +++ b/packages/standard-objects/reports.object.js @@ -0,0 +1,287 @@ +Creator.Objects.reports = { + name: "reports", + label: "报表", + icon: "report", + enable_space_global: true, + fields: { + name: { + label: "名称", + type: "text", + required: true, + searchable: true, + index: true + }, + report_type: { + label: "报表类型", + type: "select", + defaultValue: "tabular", + options: [ + { + label: "表格", + value: "tabular" + }, { + label: "摘要", + value: "summary" + }, { + label: "矩阵", + value: "matrix" + }, { + label: "JsReport", + value: "jsreport" + } + ] + }, + data_source: { + label: "报表数据来源", + type: "select", + defaultValue: "odata", + options: [ + { + label: "OData", + value: "odata" + }, { + label: "Graphql", + value: "graphql" + } + ] + }, + object_name: { + label: "对象名", + type: "lookup", + optionsFunction: function () { + var _options; + _options = []; + _.forEach(Creator.Objects, function (o, k) { + return _options.push({ + label: o.label, + value: k, + icon: o.icon + }); + }); + return _options; + }, + required: true + }, + filter_scope: { + label: "过虑范围", + type: "select", + defaultValue: "space", + hidden: true, + options: [ + { + label: "所有", + value: "space" + }, { + label: "与我相关", + value: "mine" + } + ] + }, + filters: { + label: "过滤条件", + type: "[Object]", + omit: true + }, + "filters.$": { + label: "过滤器", + blackbox: true, + omit: true, + hidden: true + }, + "filters.$.field": { + label: "字段名", + type: "text" + }, + "filters.$.operation": { + label: "操作符", + type: "select", + defaultValue: "=", + options: function () { + return Creator.getFieldOperation(); + } + }, + "filters.$.value": { + label: "字段值", + blackbox: true + }, + filter_logic: { + label: "过滤逻辑", + type: "text", + omit: true + }, + fields: { + label: "字段", + type: "lookup", + multiple: true, + is_wide: true, + depend_on: ["object_name"], + defaultIcon: "service_contract", + optionsFunction: function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); + } + }, + rows: { + label: "行", + type: "lookup", + multiple: true, + is_wide: true, + depend_on: ["object_name"], + defaultIcon: "service_contract", + optionsFunction: function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); + } + }, + columns: { + label: "列", + type: "lookup", + multiple: true, + is_wide: true, + depend_on: ["object_name"], + defaultIcon: "service_contract", + optionsFunction: function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); + } + }, + values: { + label: "统计", + type: "lookup", + multiple: true, + is_wide: true, + depend_on: ["object_name"], + defaultIcon: "service_contract", + optionsFunction: function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); + } + }, + filter_fields: { + label: "过滤字段", + type: "grid", + is_wide: true + }, + "filter_fields.$": { + label: "过滤字段", + blackbox: true, + type: "Object" + }, + "filter_fields.$.field": { + label: "字段名称", + type: "lookup", + depend_on: ["object_name"], + optionsFunction: function (values) { + return Creator.getObjectFilterFieldOptions(values != null ? values.object_name : void 0); + } + }, + "filter_fields.$.required": { + label: "必填", + type: "boolean" + }, + options: { + label: "操作", + omit: true, + blackbox: true + }, + description: { + label: "描述", + type: "textarea", + is_wide: true + }, + charting: { + label: "显示图表", + type: "boolean", + defaultValue: true + }, + grouping: { + label: "显示小计", + type: "boolean", + defaultValue: true + }, + totaling: { + label: "显示总计", + type: "boolean", + defaultValue: true + }, + counting: { + label: "显示记录计数", + type: "boolean", + defaultValue: true + }, + graphql: { + label: "Graphql", + type: "textarea", + is_wide: true, + hidden: false, + group: "JsReport" + }, + html: { + label: "Html", + type: "textarea", + is_wide: true, + hidden: false, + group: "JsReport" + }, + helper: { + label: "Helper", + type: "textarea", + is_wide: true, + hidden: false, + group: "JsReport" + }, + script: { + label: "Script", + type: "textarea", + is_wide: true, + hidden: false, + group: "JsReport" + } + }, + list_views: { + "default": { + columns: ["name", "report_type", "object_name"] + }, + all: { + label: "所有报表", + filter_scope: "space", + filter_fields: ["report_type", "created"] + }, + application: { + label: "应用报表", + filter_scope: "space", + filters: function () { + var object_names; + object_names = Creator.getAppObjectNames(); + return [["object_name", "=", object_names]]; + }, + filter_fields: ["report_type", "created"] + }, + mine: { + label: "我的报表", + filter_scope: "mine", + filter_fields: ["report_type", "created"] + }, + global: { + label: "标准报表", + filter_scope: "space", + filters: [["space", "=", 'global']], + filter_fields: ["report_type", "created"] + } + }, + permission_set: { + user: { + allowCreate: true, + allowDelete: true, + allowEdit: true, + allowRead: true, + modifyAllRecords: false, + viewAllRecords: true, + disabled_list_views: ["all"] + }, + admin: { + allowCreate: true, + allowDelete: true, + allowEdit: true, + allowRead: true, + modifyAllRecords: true, + viewAllRecords: true + } + } +}; \ No newline at end of file diff --git a/packages/standard-objects/reports.object.yml b/packages/standard-objects/reports.object.yml deleted file mode 100644 index b909e368d8..0000000000 --- a/packages/standard-objects/reports.object.yml +++ /dev/null @@ -1,301 +0,0 @@ -name: reports -label: 报表 -icon: report -enable_space_global: true -fields: - name: - label: 名称 - type: text - required: true - searchable: true - index: true - name: name - report_type: - label: 报表类型 - type: select - defaultValue: tabular - options: - - label: 表格 - value: tabular - - label: 摘要 - value: summary - - label: 矩阵 - value: matrix - - label: JsReport - value: jsreport - name: report_type - filterable: true - data_source: - label: 报表数据来源 - type: select - defaultValue: odata - options: - - label: OData - value: odata - - label: Graphql - value: graphql - name: data_source - filterable: true - object_name: - label: 对象名 - type: lookup - optionsFunction: ! |- - function () { - var _options; - _options = []; - _.forEach(Creator.Objects, function (o, k) { - return _options.push({ - label: o.label, - value: k, - icon: o.icon - }); - }); - return _options; - } - required: true - name: object_name - filterable: true - filter_scope: - label: 过虑范围 - type: select - defaultValue: space - hidden: true - options: - - label: 所有 - value: space - - label: 与我相关 - value: mine - name: filter_scope - filterable: true - filters: - label: 过滤条件 - type: '[Object]' - omit: true - name: filters - filters.$: - label: 过滤器 - blackbox: true - omit: true - hidden: true - name: filters.$ - filters.$.field: - label: 字段名 - type: text - name: filters.$.field - filters.$.operation: - label: 操作符 - type: select - defaultValue: = - options: ! |- - function () { - return Creator.getFieldOperation(); - } - name: filters.$.operation - filterable: true - filters.$.value: - label: 字段值 - blackbox: true - name: filters.$.value - filter_logic: - label: 过滤逻辑 - type: text - omit: true - name: filter_logic - fields: - label: 字段 - type: lookup - multiple: true - is_wide: true - depend_on: - - object_name - defaultIcon: service_contract - optionsFunction: ! |- - function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - name: fields - filterable: true - rows: - label: 行 - type: lookup - multiple: true - is_wide: true - depend_on: - - object_name - defaultIcon: service_contract - optionsFunction: ! |- - function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - name: rows - filterable: true - columns: - label: 列 - type: lookup - multiple: true - is_wide: true - depend_on: - - object_name - defaultIcon: service_contract - optionsFunction: ! |- - function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - name: columns - filterable: true - values: - label: 统计 - type: lookup - multiple: true - is_wide: true - depend_on: - - object_name - defaultIcon: service_contract - optionsFunction: ! |- - function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - name: values - filterable: true - filter_fields: - label: 过滤字段 - type: grid - is_wide: true - name: filter_fields - filter_fields.$: - label: 过滤字段 - blackbox: true - type: Object - name: filter_fields.$ - filter_fields.$.field: - label: 字段名称 - type: lookup - depend_on: - - object_name - optionsFunction: ! |- - function (values) { - return Creator.getObjectFilterFieldOptions(values != null ? values.object_name : void 0); - } - name: filter_fields.$.field - filterable: true - filter_fields.$.required: - label: 必填 - type: boolean - name: filter_fields.$.required - options: - label: 操作 - omit: true - blackbox: true - name: options - description: - label: 描述 - type: textarea - is_wide: true - name: description - charting: - label: 显示图表 - type: boolean - defaultValue: true - name: charting - grouping: - label: 显示小计 - type: boolean - defaultValue: true - name: grouping - totaling: - label: 显示总计 - type: boolean - defaultValue: true - name: totaling - counting: - label: 显示记录计数 - type: boolean - defaultValue: true - name: counting - graphql: - label: Graphql - type: textarea - is_wide: true - hidden: false - group: JsReport - name: graphql - html: - label: Html - type: textarea - is_wide: true - hidden: false - group: JsReport - name: html - helper: - label: Helper - type: textarea - is_wide: true - hidden: false - group: JsReport - name: helper - script: - label: Script - type: textarea - is_wide: true - hidden: false - group: JsReport - name: script -list_views: - default: - columns: - - name - - report_type - - object_name - all: - label: 所有报表 - filter_scope: space - filter_fields: - - report_type - - created - application: - label: 应用报表 - filter_scope: space - filters: ! |- - function () { - var object_names; - object_names = Creator.getAppObjectNames(); - return [[\"object_name\", \"=\", object_names]]; - } - filter_fields: - - report_type - - created - mine: - label: 我的报表 - filter_scope: mine - filter_fields: - - report_type - - created - global: - label: 标准报表 - filter_scope: space - filters: - - - space - - = - - global - filter_fields: - - report_type - - created -permission_set: - user: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: false - viewAllRecords: true - disabled_list_views: - - all - name: user - admin: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: true - viewAllRecords: true - name: admin From f035ecc02d16004ff8e62e5697c8b5f6247f98ba Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 12 Aug 2019 17:56:27 +0800 Subject: [PATCH 030/154] @steedos/objectql@0.2.5 --- packages/objectql/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 282b370498..04b703e03b 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "0.2.4", + "version": "0.2.5", "description": "", "main": "lib/index.js", "scripts": { @@ -21,7 +21,7 @@ "@steedos/filters": "^0.0.13", "@steedos/odata-v4-typeorm": "^0.0.24", "@steedos/schemas": "^1.0.0", - "@steedos/standard-objects": "^0.2.3", + "@steedos/standard-objects": "^0.2.4", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", From 14afdfa07026a7cbd2bcef0fb9793282156a771e Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 12 Aug 2019 17:58:45 +0800 Subject: [PATCH 031/154] @steedos/core@1.3.6 --- packages/core/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 484ee1ab2c..59b4a8053d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.5", + "version": "1.3.6", "description": "", "main": "lib/index.js", "scripts": { @@ -19,8 +19,8 @@ "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", "@steedos/auth": "^1.1.2", - "@steedos/objectql": "^0.2.4", - "@steedos/standard-objects": "^0.2.3", + "@steedos/objectql": "^0.2.5", + "@steedos/standard-objects": "^0.2.4", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", From e4fad4663a1ae6b2da7623a5fa0eb57f0e692847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Mon, 12 Aug 2019 18:15:23 +0800 Subject: [PATCH 032/154] =?UTF-8?q?=E6=8F=92=E4=BB=B6=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plugin_config.md | 3 ++- docs/plugins.md | 17 ++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/docs/plugin_config.md b/docs/plugin_config.md index 922613af23..a330a76dfb 100644 --- a/docs/plugin_config.md +++ b/docs/plugin_config.md @@ -21,11 +21,12 @@ title: 插件配置 ```yml datasources: - name: mattermost + objectFiles: ./src/** server: main: index.js webapp: main: webapp/dist/main.js - css: webapp/dist/css.js + css: webapp/dist/main.css settings_schema: header: Some header text footer: Some footer text diff --git a/docs/plugins.md b/docs/plugins.md index 6e747cc846..bc65eb6076 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -7,24 +7,35 @@ title: 快速向导 ## Steedos 插件 ### 引入插件 + 配置 steedos-config.yml 文件,可以启用插件。例如以下配置用于启用 jsreport 插件: + ```yaml -plugins: - - "@steedos/plugin-jsreport" +plugins: + "@steedos/plugin-jsreport": + version: 1.1 + props: + somekey: aaa ``` ### 安装插件 + 插件可以以node_modules的形式安装在项目文件夹中,例如。 + ```shell yarn add @steedos/plugin-jsreport ``` ### 调试插件源码 + 插件也可以以源码的形式安装在项目的 /plugins 文件夹中。Steedos会优先使用此文件夹下的插件版本。例如要调试@steedos/plugin-jsreport插件,可以把源码复制到: + ```shell {project_root}/plugins/@steedos/plugin-jsreport ``` ## 示例 + ### jsreport 插件 -使用 jsreport 开发 steedos 报表。[源码](https://github.com/steedos/steedos-plugin-jsreport) \ No newline at end of file + +使用 jsreport 开发 steedos 报表。[源码](https://github.com/steedos/steedos-plugin-jsreport)。 From 88c4d8b02af3ef932d2dd29307a562592f4c00fe Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Tue, 13 Aug 2019 14:43:39 +0800 Subject: [PATCH 033/154] =?UTF-8?q?standardObjects=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=AD=90=E6=96=87=E4=BB=B6=E5=A4=B9=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/init/loadFiles.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core/src/init/loadFiles.ts b/packages/core/src/init/loadFiles.ts index a81b304021..af81ee20f7 100644 --- a/packages/core/src/init/loadFiles.ts +++ b/packages/core/src/init/loadFiles.ts @@ -30,6 +30,7 @@ export class LoadFiles { private static loadStandardFiles() { let standardObjectsDir = path.dirname(require.resolve("@steedos/standard-objects")) if (standardObjectsDir) { + standardObjectsDir = path.posix.join(standardObjectsDir, '/**'); this.loadObjectToCreator(standardObjectsDir); this.loadAppToCreator(standardObjectsDir); this.addStaticJs(standardObjectsDir); From f141151d0509c0805d758f46e4a80db79e35bd79 Mon Sep 17 00:00:00 2001 From: chenzhipei Date: Tue, 13 Aug 2019 16:14:07 +0800 Subject: [PATCH 034/154] standard-objects:0.2.5 --- packages/standard-objects/package.json | 2 +- packages/standard-objects/spaces.object.yml | 22 ++++++++++----------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index a28f6ed859..92827d0f1c 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "0.2.4", + "version": "0.2.5", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/standard-objects/spaces.object.yml b/packages/standard-objects/spaces.object.yml index 076a90a8a6..942bece1af 100644 --- a/packages/standard-objects/spaces.object.yml +++ b/packages/standard-objects/spaces.object.yml @@ -12,10 +12,6 @@ fields: searchable: true index: true name: name - phone: - label: 联系电话 - type: text - name: phone admins: label: 管理员 type: lookup @@ -26,13 +22,13 @@ fields: name: admins filterable: true avatar: - label: 公司Logo + label: 浅色公司Logo type: avatar name: avatar - cover: - label: 封面照片 + avatar_dark: + label: 深色公司Logo type: avatar - name: cover + name: avatar_dark location: label: 地址 type: location @@ -45,6 +41,7 @@ fields: type: lookup reference_to: apps multiple: true + hidden: true name: apps filterable: true apps_paid: @@ -55,6 +52,7 @@ fields: hostname: label: 绑定域名 type: '[text]' + hidden: true name: hostname is_paid: label: 已付费 @@ -113,6 +111,7 @@ fields: label: 允许新用户注册 type: boolean defaultValue: false + hidden: true name: enable_register owner: label: 所有者 @@ -128,8 +127,7 @@ list_views: - name filter_scope: all filters: - - - - _id + - - _id - = - '{spaceId}' actions: @@ -137,7 +135,7 @@ actions: label: 订单 'on': record visible: true - todo: !!js/function | + todo: ! |- function () { var url; url = Creator.getListViewRelativeUrl("billing_pay_records", "admin", "all"); @@ -147,7 +145,7 @@ actions: label: 升级 'on': record visible: true - todo: !!js/function | + todo: ! |- function () { return Modal.show('space_recharge_modal'); } From 1afbfe591b6b84691982e1014adc329c13d708ab Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Tue, 13 Aug 2019 16:37:32 +0800 Subject: [PATCH 035/154] @steedos/standard-objects@1.0.0 --- packages/standard-objects/History.md | 4 + .../chatter/chat_messages.object.js | 57 ++ .../chatter/chat_messages.object.yml | 66 +++ .../chatter/chat_rooms.object.js | 21 + .../chatter/chat_rooms.object.yml | 59 +++ .../chatter/chat_subscriptions.object.yml | 60 +++ packages/standard-objects/cms_files.object.js | 237 +-------- .../standard-objects/cms_files.object.yml | 216 ++++++++ packages/standard-objects/events.object.yml | 122 +++++ packages/standard-objects/notes.object.yml | 72 +++ packages/standard-objects/package.json | 2 +- .../permission_objects.object.yml | 15 - .../permission_set.object.yml | 43 -- .../permission_shares.object.js | 342 +++++------- .../permission_shares.object.yml | 93 ++++ packages/standard-objects/reports.object.js | 287 ---------- packages/standard-objects/reports.object.yml | 299 +++++++++++ packages/standard-objects/tasks.object.yml | 151 ++++++ .../workflow/categories.object.js | 71 +++ .../workflow/categories.object.yml | 58 ++ .../workflow/flow_positions.object.js | 308 +++++++++++ .../workflow/flow_positions.object.yml | 68 +++ .../workflow/flow_roles.object.js | 117 ++++ .../workflow/flow_roles.object.yml | 49 ++ .../standard-objects/workflow/flows.object.js | 369 +++++++++++++ .../workflow/flows.object.yml | 499 ++++++++++++++++++ .../standard-objects/workflow/forms.object.js | 70 +++ .../workflow/forms.object.yml | 241 +++++++++ .../workflow/instance_number_rules.object.js | 97 ++++ .../workflow/instance_number_rules.object.yml | 79 +++ .../workflow/instances.object.js | 374 +++++++++++++ .../workflow/instances.object.yml | 271 ++++++++++ .../workflow/instances_statistic.object.yml | 116 ++++ .../process_delegation_rules.object.js | 171 ++++++ .../process_delegation_rules.object.yml | 73 +++ .../workflow/space_user_signs.object.js | 160 ++++++ .../workflow/space_user_signs.object.yml | 58 ++ .../workflow/webhooks.object.js | 97 ++++ .../workflow/webhooks.object.yml | 60 +++ 39 files changed, 4762 insertions(+), 790 deletions(-) create mode 100644 packages/standard-objects/chatter/chat_messages.object.js create mode 100644 packages/standard-objects/chatter/chat_messages.object.yml create mode 100644 packages/standard-objects/chatter/chat_rooms.object.js create mode 100644 packages/standard-objects/chatter/chat_rooms.object.yml create mode 100644 packages/standard-objects/chatter/chat_subscriptions.object.yml create mode 100644 packages/standard-objects/cms_files.object.yml create mode 100644 packages/standard-objects/events.object.yml create mode 100644 packages/standard-objects/notes.object.yml create mode 100644 packages/standard-objects/permission_shares.object.yml create mode 100644 packages/standard-objects/reports.object.yml create mode 100644 packages/standard-objects/tasks.object.yml create mode 100644 packages/standard-objects/workflow/categories.object.js create mode 100644 packages/standard-objects/workflow/categories.object.yml create mode 100644 packages/standard-objects/workflow/flow_positions.object.js create mode 100644 packages/standard-objects/workflow/flow_positions.object.yml create mode 100644 packages/standard-objects/workflow/flow_roles.object.js create mode 100644 packages/standard-objects/workflow/flow_roles.object.yml create mode 100644 packages/standard-objects/workflow/flows.object.js create mode 100644 packages/standard-objects/workflow/flows.object.yml create mode 100644 packages/standard-objects/workflow/forms.object.js create mode 100644 packages/standard-objects/workflow/forms.object.yml create mode 100644 packages/standard-objects/workflow/instance_number_rules.object.js create mode 100644 packages/standard-objects/workflow/instance_number_rules.object.yml create mode 100644 packages/standard-objects/workflow/instances.object.js create mode 100644 packages/standard-objects/workflow/instances.object.yml create mode 100644 packages/standard-objects/workflow/instances_statistic.object.yml create mode 100644 packages/standard-objects/workflow/process_delegation_rules.object.js create mode 100644 packages/standard-objects/workflow/process_delegation_rules.object.yml create mode 100644 packages/standard-objects/workflow/space_user_signs.object.js create mode 100644 packages/standard-objects/workflow/space_user_signs.object.yml create mode 100644 packages/standard-objects/workflow/webhooks.object.js create mode 100644 packages/standard-objects/workflow/webhooks.object.yml diff --git a/packages/standard-objects/History.md b/packages/standard-objects/History.md index 09cf482acc..a84b43f883 100644 --- a/packages/standard-objects/History.md +++ b/packages/standard-objects/History.md @@ -1,3 +1,7 @@ +1.0.0 / 2019-08-13 +=================== + + * [标准业务对象完善 #114](https://github.com/steedos/object-server/issues/114) 0.2.2 / 2019-08-12 =================== diff --git a/packages/standard-objects/chatter/chat_messages.object.js b/packages/standard-objects/chatter/chat_messages.object.js new file mode 100644 index 0000000000..ebc2099faa --- /dev/null +++ b/packages/standard-objects/chatter/chat_messages.object.js @@ -0,0 +1,57 @@ +Creator.Objects['chat_messages'].triggers = { + "after.insert.server.chatMessages": { + on: "server", + when: "after.insert", + todo: function (userId, doc) { + var _id, object_name, ref, ref1; + Creator.getCollection("chat_subscriptions").upsert({ + space: doc.space, + owner: doc.owner, + 'related_to.o': doc.related_to.o, + 'related_to.ids': doc.related_to.ids + }, { + $set: { + unread: 0, + last_message_text: doc.name, + last_message_date: new Date(), + modified: new Date(), + modified_by: userId + } + }, { + multi: true + }); + Creator.getCollection("chat_subscriptions").update({ + space: doc.space, + owner: { + $ne: doc.owner + }, + 'related_to.o': doc.related_to.o, + 'related_to.ids': doc.related_to.ids + }, { + $inc: { + unread: 1 + }, + $set: { + last_message_text: doc.name, + last_message_date: new Date(), + modified: new Date(), + modified_by: userId + } + }, { + multi: true + }); + // 更新chat_messages的related_to表,统一记录消息数量 + object_name = (ref = doc.related_to) != null ? ref.o : void 0; + _id = (ref1 = doc.related_to) != null ? ref1.ids[0] : void 0; + if (object_name && _id) { + return Creator.getCollection(object_name, doc.space).direct.update({ + _id: _id + }, { + $inc: { + message_count: 1 + } + }); + } + } + } +} \ No newline at end of file diff --git a/packages/standard-objects/chatter/chat_messages.object.yml b/packages/standard-objects/chatter/chat_messages.object.yml new file mode 100644 index 0000000000..4a00711896 --- /dev/null +++ b/packages/standard-objects/chatter/chat_messages.object.yml @@ -0,0 +1,66 @@ +name: chat_messages +label: 消息 +icon: live-chat +fields: + related_to: + label: 相关 + type: lookup + reference_to: ! |- + function () { + return _.keys(Creator.Objects); + } + name: related_to + filterable: true + name: + is_name: true + label: 内容 + type: textarea + required: true + name: name + searchable: true + type: + label: 消息类型 + type: select + options: + - label: text + value: text + - label: image + value: image + - label: video + value: video + - label: href + value: href + - label: system + value: system + name: type + filterable: true +list_views: + all: + label: 所有 + columns: + - related_to + - name + - type + filter_scope: space +permission_set: + user: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: true + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: true + guest: + allowCreate: true + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: true diff --git a/packages/standard-objects/chatter/chat_rooms.object.js b/packages/standard-objects/chatter/chat_rooms.object.js new file mode 100644 index 0000000000..d2d42e294a --- /dev/null +++ b/packages/standard-objects/chatter/chat_rooms.object.js @@ -0,0 +1,21 @@ +Creator.Objects['chat_rooms'].triggers = { + "after.insert.server.rooms": { + on: "server", + when: "after.insert", + todo: function (userId, doc) { + return _.forEach(doc.members, function (m) { + return Creator.getCollection("chat_subscriptions").insert({ + related_to: { + o: 'chat_rooms', + ids: [doc._id] + }, + name: '', + last_message_text: '', + unread: 0, + owner: m, + space: doc.space + }); + }); + } + } +} \ No newline at end of file diff --git a/packages/standard-objects/chatter/chat_rooms.object.yml b/packages/standard-objects/chatter/chat_rooms.object.yml new file mode 100644 index 0000000000..98ec9e9100 --- /dev/null +++ b/packages/standard-objects/chatter/chat_rooms.object.yml @@ -0,0 +1,59 @@ +name: chat_rooms +label: 房间 +fields: + name: + is_name: true + label: 内容 + type: text + name: name + searchable: true + members: + label: 成员 + type: lookup + reference_to: users + multiple: true + name: members + filterable: true + owner: + label: 房主 + type: + label: 类型 + type: select + options: + - label: private + value: private + - label: ' protected' + value: ' protected' + - label: ' public' + value: ' public' + name: type + filterable: true +list_views: + all: + label: 所有 + columns: + - name + - owner + filter_scope: space +permission_set: + user: + allowCreate: true + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: true + viewAllRecords: true + admin: + allowCreate: true + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: true + viewAllRecords: false + guest: + allowCreate: true + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: true + viewAllRecords: true diff --git a/packages/standard-objects/chatter/chat_subscriptions.object.yml b/packages/standard-objects/chatter/chat_subscriptions.object.yml new file mode 100644 index 0000000000..48912f6c8c --- /dev/null +++ b/packages/standard-objects/chatter/chat_subscriptions.object.yml @@ -0,0 +1,60 @@ +name: chat_subscriptions +label: 订阅 +fields: + name: + label: 名称 + type: text + name: name + searchable: true + related_to: + label: 相关 + type: lookup + reference_to: ! |- + function () { + return _.keys(Creator.Objects); + } + name: related_to + filterable: true + last_message_text: + label: 最新消息预览(文本) + type: text + name: last_message_text + last_message_date: + label: 最新消息发送时间 + type: datetime + name: last_message_date + unread: + label: 未读数 + type: number + name: unread +list_views: + all: + label: 所有 + columns: + - name + - related_to + - last_message_text + - unread + filter_scope: space +permission_set: + user: + allowCreate: true + allowDelete: false + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: false + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: false + guest: + allowCreate: true + allowDelete: false + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false diff --git a/packages/standard-objects/cms_files.object.js b/packages/standard-objects/cms_files.object.js index d6304b139d..1a4c2e9e75 100644 --- a/packages/standard-objects/cms_files.object.js +++ b/packages/standard-objects/cms_files.object.js @@ -1,228 +1,13 @@ -Creator.Objects.cms_files = { - name: "cms_files", - label: "附件", - icon: "drafts", - enable_search: true, - enable_api: true, - hidden: true, - fields: { - name: { - label: "名称", - type: "text", - searchable: true, - index: true, - is_wide: true - }, - description: { - label: "描述", - type: "textarea", - is_wide: true - }, - extention: { - label: "文件后缀", - type: "text", - disabled: true - }, - size: { - label: "文件大小", - type: "filesize", - disabled: true - }, - versions: { - label: "历史版本", - type: "file", - collection: "files", - multiple: true, - omit: true, - hidden: true - }, - parent: { - label: "所属记录", - type: "lookup", - omit: true, - index: true, - reference_to: function() { - return _.keys(Creator.Objects); - } - } - }, - list_views: { - all: { - columns: ["name", "size", "owner", "created", "modified"], - extra_columns: ["versions"], - order: [[4, "asc"]], - filter_scope: "space" - } - }, - permission_set: { - user: { - allowCreate: true, - allowDelete: true, - allowEdit: true, - allowRead: true, - modifyAllRecords: false, - viewAllRecords: true - }, - admin: { - allowCreate: true, - allowDelete: true, - allowEdit: true, - allowRead: true, - modifyAllRecords: false, - viewAllRecords: true - } - }, - triggers: { - "before.remove.server.default": { - on: "server", - when: "before.remove", - todo: function(userId, doc) { - var collection; - collection = cfs.files; - return collection.remove({ - "metadata.parent": doc._id - }); - } - } - }, - actions: { - standard_new: { - label: "新建", - visible: false - }, - standard_open_view: { - label: "查看", - visible: true - }, - standard_edit: { - label: "编辑", - sort: 0, - visible: function(object_name, record_id, record_permissions) { - var fileRecord, object_fields_keys, perms, record, ref, select; - perms = {}; - if (object_name === Session.get('object_name')) { - fileRecord = Creator.getObjectRecord(); - if (!fileRecord) { - return false; - } - object_name = fileRecord.parent['reference_to._o']; - record_id = fileRecord.parent._id; - } else { - object_name = Session.get('object_name'); - record_id = Session.get("record_id"); - } - object_fields_keys = _.keys(((ref = Creator.getObject(object_name, Session.get("spaceId"))) != null ? ref.fields : void 0) || {}) || []; - select = _.intersection(object_fields_keys, ['owner', 'company_id', 'locked']) || []; - if (select.length > 0) { - record = Creator.getObjectRecord(object_name, record_id, select.join(',')); - } else { - record = {}; - } - record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId()); - if (record_permissions) { - perms = record_permissions; - } - return perms["allowEdit"]; - }, - on: "record", - todo: "standard_edit" - }, - standard_delete: { - label: "删除", - visible: function(object_name, record_id, record_permissions) { - var fileRecord, object_fields_keys, perms, record, ref, select; - perms = {}; - if (object_name === Session.get('object_name')) { - fileRecord = Creator.getObjectRecord(); - if (!fileRecord) { - return false; - } - object_name = fileRecord.parent['reference_to._o']; - record_id = fileRecord.parent._id; - } else { - object_name = Session.get('object_name'); - record_id = Session.get("record_id"); - } - object_fields_keys = _.keys(((ref = Creator.getObject(object_name, Session.get("spaceId"))) != null ? ref.fields : void 0) || {}) || []; - select = _.intersection(object_fields_keys, ['owner', 'company_id', 'locked']) || []; - if (select.length > 0) { - record = Creator.getObjectRecord(object_name, record_id, select.join(',')); - } else { - record = {}; - } - record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId()); - if (record_permissions) { - perms = record_permissions; - } - return perms["allowEdit"]; - }, - on: "record_more", - todo: "standard_delete" - }, - download: { - label: "下载", - visible: function(object_name, record_id, record_permissions) { - var fileRecord; - if (object_name === Session.get('object_name')) { - fileRecord = Creator.getObjectRecord(); - if (!fileRecord) { - return false; - } - } - return true; - }, - on: "record", - todo: function(object_name, record_id) { - var file, fileId, filename, length, ref, rev, url; - file = this.record; - fileId = file != null ? (ref = file.versions) != null ? ref[0] : void 0 : void 0; - if (fileId) { - if (Meteor.isCordova) { - url = Steedos.absoluteUrl("/api/files/files/" + fileId); - filename = file.name; - rev = fileId; - length = file.size; - return Steedos.cordovaDownload(url, filename, rev, length); - } else { - return window.location = Steedos.absoluteUrl("/api/files/files/" + fileId + "?download=true"); - } - } - } - }, - new_version: { - label: "上传新版本", - visible: true, - only_detail: true, - is_file: true, - on: "record", - visible: function(object_name, record_id, record_permissions) { - var fileRecord, object_fields_keys, perms, record, ref, select; - perms = {}; - if (object_name === Session.get('object_name')) { - fileRecord = Creator.getObjectRecord(); - if (!fileRecord) { - return false; - } - object_name = fileRecord.parent['reference_to._o']; - record_id = fileRecord.parent._id; - } else { - object_name = Session.get('object_name'); - record_id = Session.get("record_id"); - } - object_fields_keys = _.keys(((ref = Creator.getObject(object_name, Session.get("spaceId"))) != null ? ref.fields : void 0) || {}) || []; - select = _.intersection(object_fields_keys, ['owner', 'company_id', 'locked']) || []; - if (select.length > 0) { - record = Creator.getObjectRecord(object_name, record_id, select.join(',')); - } else { - record = {}; - } - record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId()); - if (record_permissions) { - perms = record_permissions; - } - return perms["allowEdit"]; - }, - todo: function(object_name, record_id) {} +Creator.Objects['cms_files'].triggers = { + "before.remove.server.default": { + on: "server", + when: "before.remove", + todo: function (userId, doc) { + var collection; + collection = cfs.files; + return collection.remove({ + "metadata.parent": doc._id + }); } } -}; \ No newline at end of file +} \ No newline at end of file diff --git a/packages/standard-objects/cms_files.object.yml b/packages/standard-objects/cms_files.object.yml new file mode 100644 index 0000000000..f32c6e2814 --- /dev/null +++ b/packages/standard-objects/cms_files.object.yml @@ -0,0 +1,216 @@ +name: cms_files +label: 附件 +icon: drafts +enable_search: true +enable_api: true +hidden: true +fields: + name: + label: 名称 + type: text + searchable: true + index: true + is_wide: true + name: name + description: + label: 描述 + type: textarea + is_wide: true + name: description + extention: + label: 文件后缀 + type: text + disabled: true + name: extention + size: + label: 文件大小 + type: filesize + disabled: true + name: size + versions: + label: 历史版本 + type: file + collection: files + multiple: true + omit: true + hidden: true + name: versions + parent: + label: 所属记录 + type: lookup + omit: true + index: true + reference_to: ! |- + function () { + return _.keys(Creator.Objects); + } + name: parent + filterable: true +list_views: + all: + columns: + - name + - size + - owner + - created + - modified + extra_columns: + - versions + order: + - - 4 + - asc + filter_scope: space +permission_set: + user: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: true + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: true + +actions: + standard_new: + label: 新建 + visible: false + standard_open_view: + label: 查看 + visible: true + standard_edit: + label: 编辑 + sort: 0 + visible: ! |- + function (object_name, record_id, record_permissions) { + var fileRecord, object_fields_keys, perms, record, ref, select; + perms = {}; + if (object_name === Session.get('object_name')) { + fileRecord = Creator.getObjectRecord(); + if (!fileRecord) { + return false; + } + object_name = fileRecord.parent['reference_to._o']; + record_id = fileRecord.parent._id; + } else { + object_name = Session.get('object_name'); + record_id = Session.get("record_id"); + } + object_fields_keys = _.keys(((ref = Creator.getObject(object_name, Session.get("spaceId"))) != null ? ref.fields : void 0) || {}) || []; + select = _.intersection(object_fields_keys, ['owner', 'company_id', 'locked']) || []; + if (select.length > 0) { + record = Creator.getObjectRecord(object_name, record_id, select.join(',')); + } else { + record = {}; + } + record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId()); + if (record_permissions) { + perms = record_permissions; + } + return perms["allowEdit"]; + } + 'on': record + todo: standard_edit + standard_delete: + label: 删除 + visible: ! |- + function (object_name, record_id, record_permissions) { + var fileRecord, object_fields_keys, perms, record, ref, select; + perms = {}; + if (object_name === Session.get('object_name')) { + fileRecord = Creator.getObjectRecord(); + if (!fileRecord) { + return false; + } + object_name = fileRecord.parent['reference_to._o']; + record_id = fileRecord.parent._id; + } else { + object_name = Session.get('object_name'); + record_id = Session.get("record_id"); + } + object_fields_keys = _.keys(((ref = Creator.getObject(object_name, Session.get("spaceId"))) != null ? ref.fields : void 0) || {}) || []; + select = _.intersection(object_fields_keys, ['owner', 'company_id', 'locked']) || []; + if (select.length > 0) { + record = Creator.getObjectRecord(object_name, record_id, select.join(',')); + } else { + record = {}; + } + record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId()); + if (record_permissions) { + perms = record_permissions; + } + return perms["allowEdit"]; + } + 'on': record_more + todo: standard_delete + download: + label: 下载 + visible: ! |- + function (object_name, record_id, record_permissions) { + var fileRecord; + if (object_name === Session.get('object_name')) { + fileRecord = Creator.getObjectRecord(); + if (!fileRecord) { + return false; + } + } + return true; + } + 'on': record + todo: ! |- + function (object_name, record_id) { + var file, fileId, filename, length, ref, rev, url; + file = this.record; + fileId = file != null ? (ref = file.versions) != null ? ref[0] : void 0 : void 0; + if (fileId) { + if (Meteor.isCordova) { + url = Steedos.absoluteUrl("/api/files/files/" + fileId); + filename = file.name; + rev = fileId; + length = file.size; + return Steedos.cordovaDownload(url, filename, rev, length); + } else { + return window.location = Steedos.absoluteUrl("/api/files/files/" + fileId + "?download=true"); + } + } + } + new_version: + label: 上传新版本 + visible: ! |- + function (object_name, record_id, record_permissions) { + var fileRecord, object_fields_keys, perms, record, ref, select; + perms = {}; + if (object_name === Session.get('object_name')) { + fileRecord = Creator.getObjectRecord(); + if (!fileRecord) { + return false; + } + object_name = fileRecord.parent['reference_to._o']; + record_id = fileRecord.parent._id; + } else { + object_name = Session.get('object_name'); + record_id = Session.get("record_id"); + } + object_fields_keys = _.keys(((ref = Creator.getObject(object_name, Session.get("spaceId"))) != null ? ref.fields : void 0) || {}) || []; + select = _.intersection(object_fields_keys, ['owner', 'company_id', 'locked']) || []; + if (select.length > 0) { + record = Creator.getObjectRecord(object_name, record_id, select.join(',')); + } else { + record = {}; + } + record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId()); + if (record_permissions) { + perms = record_permissions; + } + return perms["allowEdit"]; + } + only_detail: true + is_file: true + 'on': record + todo: ! |- + function (object_name, record_id) {} diff --git a/packages/standard-objects/events.object.yml b/packages/standard-objects/events.object.yml new file mode 100644 index 0000000000..e1dd0b5cb5 --- /dev/null +++ b/packages/standard-objects/events.object.yml @@ -0,0 +1,122 @@ +name: events +label: 事件 +icon: event +fields: + name: + label: 主题 + type: text + required: true + is_wide: true + searchable: true + index: true + name: name + start: + label: 开始时间 + type: datetime + required: true + defaultValue: ! |- + function () { + var now, reValue; + now = new Date(); + reValue = new Date(now.getTime() + 1 * 60 * 60 * 1000); + reValue.setMinutes(0); + reValue.setSeconds(0); + return reValue; + } + sortable: true + name: start + end: + label: 结束时间 + type: datetime + required: true + defaultValue: ! |- + function () { + var now, reValue; + now = new Date(); + reValue = new Date(now.getTime() + 2 * 60 * 60 * 1000); + reValue.setMinutes(0); + reValue.setSeconds(0); + return reValue; + } + name: end + assignees: + label: 分派给 + type: lookup + reference_to: users + multiple: true + name: assignees + filterable: true + related_to: + label: 相关项 + type: lookup + index: true + reference_to: ! |- + function () { + var o; + o = []; + + _.each(Creator.Objects, function (object, object_name) { + if (object.enable_events) { + return o.push(object.name); + } + }); + + return o; + } + name: related_to + filterable: true + is_all_day: + label: 全天事件 + type: boolean + name: is_all_day + location: + label: 地址 + type: text + name: location + description: + label: 描述 + type: textarea + is_wide: true + name: description +list_views: + calendar_view: + type: calendar + label: 日历视图 + filter_scope: space + options: + startDateExpr: start + endDateExpr: end + textExpr: name + title: + - name + - start + - end + - assignees + - related_to + currentView: month + startDayHour: 8 + endDayHour: 18 + all: + label: 全部 + filter_scope: space + columns: + - name + - start + - end + - assignees + - related_to +permission_set: + user: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true diff --git a/packages/standard-objects/notes.object.yml b/packages/standard-objects/notes.object.yml new file mode 100644 index 0000000000..d86d067124 --- /dev/null +++ b/packages/standard-objects/notes.object.yml @@ -0,0 +1,72 @@ +name: notes +label: 备忘 +icon: note +fields: + name: + label: 标题 + type: text + required: true + is_wide: true + searchable: true + index: true + name: name + description: + label: 内容 + type: textarea + is_wide: true + searchable: true + index: true + name: description + related_to: + label: 相关项 + type: lookup + index: true + reference_to: ! |- + function () { + var o; + o = []; + + _.each(Creator.Objects, function (object, object_name) { + if (object.enable_notes) { + return o.push(object.name); + } + }); + + return o; + } + name: related_to + filterable: true +list_views: + all: + label: 全部 + filter_scope: space + columns: + - name + - created_by + - created + - related_to + recent: + label: 最近查看 + filter_scope: space + mine: + label: 我的备忘 + filter_scope: space + filters: + - - owner + - = + - '{userId}' +permission_set: + user: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 92827d0f1c..3b23ecc636 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "0.2.5", + "version": "1.0.0", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/standard-objects/permission_objects.object.yml b/packages/standard-objects/permission_objects.object.yml index b01f332618..d210ebeedc 100644 --- a/packages/standard-objects/permission_objects.object.yml +++ b/packages/standard-objects/permission_objects.object.yml @@ -247,21 +247,6 @@ list_views: - modifyCompanyRecords - viewCompanyRecords filter_scope: space -triggers: - beforeInsertServerProcess: - 'on': server - when: before.insert - todo: ! |- - function (userId, doc) { - return Creator.processPermissions(doc); - } - beforeUpdateServerProcess: - 'on': server - when: before.update - todo: ! |- - function (userId, doc, fieldNames, modifier, options) { - return Creator.processPermissions(modifier.$set); - } permission_set: user: allowCreate: false diff --git a/packages/standard-objects/permission_set.object.yml b/packages/standard-objects/permission_set.object.yml index 5f1a74a004..9332f7a17f 100644 --- a/packages/standard-objects/permission_set.object.yml +++ b/packages/standard-objects/permission_set.object.yml @@ -61,46 +61,3 @@ permission_set: allowRead: true modifyAllRecords: true viewAllRecords: true -triggers: - beforeInsertServerCheck: - 'on': server - when: before.insert - todo: ! |- - function (userId, doc) { - var newName; - console.log("before.insert.server.check,doc:", doc); - newName = doc != null ? doc.name : void 0; - - if (newName && Creator.getCollection("permission_set").findOne({ - space: doc.space, - name: newName - }, { - fields: { - name: 1 - } - })) { - throw new Meteor.Error(500, "对象名称不能重复"); - } - } - beforeUpdateServerCheck: - 'on': server - when: before.update - todo: ! |- - function (userId, doc, fieldNames, modifier, options) { - var newName, ref; - newName = (ref = modifier.$set) != null ? ref.name : void 0; - - if (newName && Creator.getCollection("permission_set").findOne({ - space: doc.space, - name: newName, - _id: { - $ne: doc._id - } - }, { - fields: { - name: 1 - } - })) { - throw new Meteor.Error(500, "对象名称不能重复"); - } - } diff --git a/packages/standard-objects/permission_shares.object.js b/packages/standard-objects/permission_shares.object.js index 6fb5cd9405..4ebce601e1 100644 --- a/packages/standard-objects/permission_shares.object.js +++ b/packages/standard-objects/permission_shares.object.js @@ -1,237 +1,143 @@ -Creator.Objects.permission_shares = { - name: "permission_shares", - label: "共享规则", - icon: "assigned_resource", - fields: { - name: { - label: "名称", - type: "text", - required: true, - searchable: true, - index: true - }, - object_name: { - label: "对象", - type: "lookup", - optionsFunction: function () { - var _options; - _options = []; - _.forEach(Creator.objectsByName, function (o, k) { - var enable_share; - enable_share = o.enable_share === void 0 ? true : o.enable_share; - if (enable_share && !o.hidden) { - return _options.push({ - label: o.label, - value: k, - icon: o.icon - }); - } - }); - return _options; - }, - required: true - }, - filters: { - label: "过滤条件", - type: "grid" - }, - "filters.$.field": { - label: "字段名", - type: "text" - }, - "filters.$.operation": { - label: "操作符", - type: "select", - defaultValue: "=", - options: function () { - return Creator.getFieldOperation(); +Creator.Objects['permission_shares'].triggers = { + "before.insert.server.sharing": { + on: "server", + when: "before.insert", + todo: function (userId, doc) { + if (_.isEmpty(doc.organizations) && _.isEmpty(doc.users)) { + throw new Meteor.Error(500, "请在授权组织或授权用户中至少填写一个值"); } - }, - "filters.$.value": { - label: "字段值", - blackbox: true - }, - organizations: { - label: "授权组织", - type: "lookup", - reference_to: "organizations", - multiple: true, - defaultValue: [] - }, - users: { - label: "授权用户", - type: "lookup", - reference_to: "users", - multiple: true, - defaultValue: [] } }, - list_views: { - all: { - label: "全部", - filter_scope: "space", - columns: ["name"] + "before.update.server.sharing": { + on: "server", + when: "before.update", + todo: function (userId, doc, fieldNames, modifier, options) { + var errMsg; + errMsg = t("creator_permission_share_miss"); + if (fieldNames.length === 1) { + if (fieldNames.indexOf("organizations") > -1) { + if (_.isEmpty(modifier.$set.organizations) && _.isEmpty(doc.users)) { + throw new Meteor.Error(500, errMsg); + } + } else if (fieldNames.indexOf("users") > -1) { + if (_.isEmpty(doc.organizations) && _.isEmpty(modifier.$set.users)) { + throw new Meteor.Error(500, errMsg); + } + } + } else if (_.isEmpty(modifier.$set.organizations) && _.isEmpty(modifier.$set.users)) { + throw new Meteor.Error(500, errMsg); + } } }, - permission_set: { - user: { - allowCreate: true, - allowDelete: true, - allowEdit: true, - allowRead: true, - modifyAllRecords: false, - viewAllRecords: false - }, - admin: { - allowCreate: true, - allowDelete: true, - allowEdit: true, - allowRead: true, - modifyAllRecords: true, - viewAllRecords: true + "after.insert.server.sharing": { + on: "server", + when: "after.insert", + todo: function (userId, doc) { + var bulk, collection, filters, object_name, push, selector; + object_name = doc.object_name; + collection = Creator.getCollection(object_name); + bulk = collection.rawCollection().initializeUnorderedBulkOp(); + selector = { + space: doc.space + }; + if (doc.filters) { + filters = Creator.formatFiltersToMongo(doc.filters, { + extend: false + }); + selector["$and"] = filters; + } + push = { + sharing: { + "u": doc.users, + "o": doc.organizations, + "r": doc._id + } + }; + bulk.find(selector).update({ + $push: push + }); + return bulk.execute(); } }, - triggers: { - "before.insert.server.sharing": { - on: "server", - when: "before.insert", - todo: function (userId, doc) { - if (_.isEmpty(doc.organizations) && _.isEmpty(doc.users)) { - throw new Meteor.Error(500, "请在授权组织或授权用户中至少填写一个值"); - } + "after.update.server.sharing": { + on: "server", + when: "after.update", + todo: function (userId, doc, fieldNames, modifier, options) { + var bulk, collection, filters, object_name, preBulk, preCollection, preObjectName, pull, push, selector; + object_name = doc.object_name; + collection = Creator.getCollection(object_name); + preObjectName = this.previous.object_name; + if (preObjectName !== object_name) { + preCollection = Creator.getCollection(preObjectName); + } else { + preCollection = collection; } - }, - "before.update.server.sharing": { - on: "server", - when: "before.update", - todo: function (userId, doc, fieldNames, modifier, options) { - var errMsg; - errMsg = t("creator_permission_share_miss"); - if (fieldNames.length === 1) { - if (fieldNames.indexOf("organizations") > -1) { - if (_.isEmpty(modifier.$set.organizations) && _.isEmpty(doc.users)) { - throw new Meteor.Error(500, errMsg); - } - } else if (fieldNames.indexOf("users") > -1) { - if (_.isEmpty(doc.organizations) && _.isEmpty(modifier.$set.users)) { - throw new Meteor.Error(500, errMsg); - } + preBulk = preCollection.rawCollection().initializeUnorderedBulkOp(); + bulk = collection.rawCollection().initializeUnorderedBulkOp(); + selector = { + space: doc.space, + "sharing": { + $elemMatch: { + r: doc._id } - } else if (_.isEmpty(modifier.$set.organizations) && _.isEmpty(modifier.$set.users)) { - throw new Meteor.Error(500, errMsg); } - } - }, - "after.insert.server.sharing": { - on: "server", - when: "after.insert", - todo: function (userId, doc) { - var bulk, collection, filters, object_name, push, selector; - object_name = doc.object_name; - collection = Creator.getCollection(object_name); - bulk = collection.rawCollection().initializeUnorderedBulkOp(); - selector = { - space: doc.space - }; - if (doc.filters) { - filters = Creator.formatFiltersToMongo(doc.filters, { - extend: false - }); - selector["$and"] = filters; + }; + pull = { + sharing: { + r: doc._id } - push = { - sharing: { - "u": doc.users, - "o": doc.organizations, - "r": doc._id - } - }; - bulk.find(selector).update({ - $push: push + }; + preBulk.find(selector).update({ + $pull: pull + }); + preBulk.execute(); + selector = { + space: doc.space + }; + if (doc.filters) { + filters = Creator.formatFiltersToMongo(doc.filters, { + extend: false }); - return bulk.execute(); + selector["$and"] = filters; } - }, - "after.update.server.sharing": { - on: "server", - when: "after.update", - todo: function (userId, doc, fieldNames, modifier, options) { - var bulk, collection, filters, object_name, preBulk, preCollection, preObjectName, pull, push, selector; - object_name = doc.object_name; - collection = Creator.getCollection(object_name); - preObjectName = this.previous.object_name; - if (preObjectName !== object_name) { - preCollection = Creator.getCollection(preObjectName); - } else { - preCollection = collection; + push = { + sharing: { + "u": doc.users, + "o": doc.organizations, + "r": doc._id } - preBulk = preCollection.rawCollection().initializeUnorderedBulkOp(); - bulk = collection.rawCollection().initializeUnorderedBulkOp(); - selector = { - space: doc.space, - "sharing": { - $elemMatch: { - r: doc._id - } - } - }; - pull = { - sharing: { + }; + bulk.find(selector).update({ + $push: push + }); + return bulk.execute(); + } + }, + "after.remove.server.sharing": { + on: "server", + when: "after.remove", + todo: function (userId, doc) { + var bulk, collection, object_name, pull, selector; + object_name = doc.object_name; + collection = Creator.getCollection(object_name); + bulk = collection.rawCollection().initializeUnorderedBulkOp(); + selector = { + space: doc.space, + "sharing": { + $elemMatch: { r: doc._id } - }; - preBulk.find(selector).update({ - $pull: pull - }); - preBulk.execute(); - selector = { - space: doc.space - }; - if (doc.filters) { - filters = Creator.formatFiltersToMongo(doc.filters, { - extend: false - }); - selector["$and"] = filters; } - push = { - sharing: { - "u": doc.users, - "o": doc.organizations, - "r": doc._id - } - }; - bulk.find(selector).update({ - $push: push - }); - return bulk.execute(); - } - }, - "after.remove.server.sharing": { - on: "server", - when: "after.remove", - todo: function (userId, doc) { - var bulk, collection, object_name, pull, selector; - object_name = doc.object_name; - collection = Creator.getCollection(object_name); - bulk = collection.rawCollection().initializeUnorderedBulkOp(); - selector = { - space: doc.space, - "sharing": { - $elemMatch: { - r: doc._id - } - } - }; - pull = { - sharing: { - r: doc._id - } - }; - bulk.find(selector).update({ - $pull: pull - }); - return bulk.execute(); - } + }; + pull = { + sharing: { + r: doc._id + } + }; + bulk.find(selector).update({ + $pull: pull + }); + return bulk.execute(); } } -}; \ No newline at end of file +} \ No newline at end of file diff --git a/packages/standard-objects/permission_shares.object.yml b/packages/standard-objects/permission_shares.object.yml new file mode 100644 index 0000000000..1dca31c8ad --- /dev/null +++ b/packages/standard-objects/permission_shares.object.yml @@ -0,0 +1,93 @@ +name: permission_shares +label: 共享规则 +icon: assigned_resource +fields: + name: + label: 名称 + type: text + required: true + searchable: true + index: true + name: name + object_name: + label: 对象 + type: lookup + optionsFunction: ! |- + function () { + var _options; + _options = []; + _.forEach(Creator.objectsByName, function (o, k) { + var enable_share; + enable_share = o.enable_share === void 0 ? true : o.enable_share; + if (enable_share && !o.hidden) { + return _options.push({ + label: o.label, + value: k, + icon: o.icon + }); + } + }); + return _options; + } + required: true + name: object_name + filterable: true + filters: + label: 过滤条件 + type: grid + name: filters + filters.$.field: + label: 字段名 + type: text + name: filters.$.field + filters.$.operation: + label: 操作符 + type: select + defaultValue: = + options: ! |- + function () { + return Creator.getFieldOperation(); + } + name: filters.$.operation + filterable: true + filters.$.value: + label: 字段值 + blackbox: true + name: filters.$.value + organizations: + label: 授权组织 + type: lookup + reference_to: organizations + multiple: true + defaultValue: [] + name: organizations + filterable: true + users: + label: 授权用户 + type: lookup + reference_to: users + multiple: true + defaultValue: [] + name: users + filterable: true +list_views: + all: + label: 全部 + filter_scope: space + columns: + - name +permission_set: + user: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true diff --git a/packages/standard-objects/reports.object.js b/packages/standard-objects/reports.object.js index 6b140bd1bd..e69de29bb2 100644 --- a/packages/standard-objects/reports.object.js +++ b/packages/standard-objects/reports.object.js @@ -1,287 +0,0 @@ -Creator.Objects.reports = { - name: "reports", - label: "报表", - icon: "report", - enable_space_global: true, - fields: { - name: { - label: "名称", - type: "text", - required: true, - searchable: true, - index: true - }, - report_type: { - label: "报表类型", - type: "select", - defaultValue: "tabular", - options: [ - { - label: "表格", - value: "tabular" - }, { - label: "摘要", - value: "summary" - }, { - label: "矩阵", - value: "matrix" - }, { - label: "JsReport", - value: "jsreport" - } - ] - }, - data_source: { - label: "报表数据来源", - type: "select", - defaultValue: "odata", - options: [ - { - label: "OData", - value: "odata" - }, { - label: "Graphql", - value: "graphql" - } - ] - }, - object_name: { - label: "对象名", - type: "lookup", - optionsFunction: function () { - var _options; - _options = []; - _.forEach(Creator.Objects, function (o, k) { - return _options.push({ - label: o.label, - value: k, - icon: o.icon - }); - }); - return _options; - }, - required: true - }, - filter_scope: { - label: "过虑范围", - type: "select", - defaultValue: "space", - hidden: true, - options: [ - { - label: "所有", - value: "space" - }, { - label: "与我相关", - value: "mine" - } - ] - }, - filters: { - label: "过滤条件", - type: "[Object]", - omit: true - }, - "filters.$": { - label: "过滤器", - blackbox: true, - omit: true, - hidden: true - }, - "filters.$.field": { - label: "字段名", - type: "text" - }, - "filters.$.operation": { - label: "操作符", - type: "select", - defaultValue: "=", - options: function () { - return Creator.getFieldOperation(); - } - }, - "filters.$.value": { - label: "字段值", - blackbox: true - }, - filter_logic: { - label: "过滤逻辑", - type: "text", - omit: true - }, - fields: { - label: "字段", - type: "lookup", - multiple: true, - is_wide: true, - depend_on: ["object_name"], - defaultIcon: "service_contract", - optionsFunction: function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - }, - rows: { - label: "行", - type: "lookup", - multiple: true, - is_wide: true, - depend_on: ["object_name"], - defaultIcon: "service_contract", - optionsFunction: function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - }, - columns: { - label: "列", - type: "lookup", - multiple: true, - is_wide: true, - depend_on: ["object_name"], - defaultIcon: "service_contract", - optionsFunction: function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - }, - values: { - label: "统计", - type: "lookup", - multiple: true, - is_wide: true, - depend_on: ["object_name"], - defaultIcon: "service_contract", - optionsFunction: function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - }, - filter_fields: { - label: "过滤字段", - type: "grid", - is_wide: true - }, - "filter_fields.$": { - label: "过滤字段", - blackbox: true, - type: "Object" - }, - "filter_fields.$.field": { - label: "字段名称", - type: "lookup", - depend_on: ["object_name"], - optionsFunction: function (values) { - return Creator.getObjectFilterFieldOptions(values != null ? values.object_name : void 0); - } - }, - "filter_fields.$.required": { - label: "必填", - type: "boolean" - }, - options: { - label: "操作", - omit: true, - blackbox: true - }, - description: { - label: "描述", - type: "textarea", - is_wide: true - }, - charting: { - label: "显示图表", - type: "boolean", - defaultValue: true - }, - grouping: { - label: "显示小计", - type: "boolean", - defaultValue: true - }, - totaling: { - label: "显示总计", - type: "boolean", - defaultValue: true - }, - counting: { - label: "显示记录计数", - type: "boolean", - defaultValue: true - }, - graphql: { - label: "Graphql", - type: "textarea", - is_wide: true, - hidden: false, - group: "JsReport" - }, - html: { - label: "Html", - type: "textarea", - is_wide: true, - hidden: false, - group: "JsReport" - }, - helper: { - label: "Helper", - type: "textarea", - is_wide: true, - hidden: false, - group: "JsReport" - }, - script: { - label: "Script", - type: "textarea", - is_wide: true, - hidden: false, - group: "JsReport" - } - }, - list_views: { - "default": { - columns: ["name", "report_type", "object_name"] - }, - all: { - label: "所有报表", - filter_scope: "space", - filter_fields: ["report_type", "created"] - }, - application: { - label: "应用报表", - filter_scope: "space", - filters: function () { - var object_names; - object_names = Creator.getAppObjectNames(); - return [["object_name", "=", object_names]]; - }, - filter_fields: ["report_type", "created"] - }, - mine: { - label: "我的报表", - filter_scope: "mine", - filter_fields: ["report_type", "created"] - }, - global: { - label: "标准报表", - filter_scope: "space", - filters: [["space", "=", 'global']], - filter_fields: ["report_type", "created"] - } - }, - permission_set: { - user: { - allowCreate: true, - allowDelete: true, - allowEdit: true, - allowRead: true, - modifyAllRecords: false, - viewAllRecords: true, - disabled_list_views: ["all"] - }, - admin: { - allowCreate: true, - allowDelete: true, - allowEdit: true, - allowRead: true, - modifyAllRecords: true, - viewAllRecords: true - } - } -}; \ No newline at end of file diff --git a/packages/standard-objects/reports.object.yml b/packages/standard-objects/reports.object.yml new file mode 100644 index 0000000000..471dfa3cb5 --- /dev/null +++ b/packages/standard-objects/reports.object.yml @@ -0,0 +1,299 @@ +name: reports +label: 报表 +icon: report +enable_space_global: true +fields: + name: + label: 名称 + type: text + required: true + searchable: true + index: true + name: name + report_type: + label: 报表类型 + type: select + defaultValue: tabular + options: + - label: 表格 + value: tabular + - label: 摘要 + value: summary + - label: 矩阵 + value: matrix + - label: JsReport + value: jsreport + name: report_type + filterable: true + data_source: + label: 报表数据来源 + type: select + defaultValue: odata + options: + - label: OData + value: odata + - label: Graphql + value: graphql + name: data_source + filterable: true + object_name: + label: 对象名 + type: lookup + optionsFunction: ! |- + function () { + var _options; + _options = []; + _.forEach(Creator.Objects, function (o, k) { + return _options.push({ + label: o.label, + value: k, + icon: o.icon + }); + }); + return _options; + } + required: true + name: object_name + filterable: true + filter_scope: + label: 过虑范围 + type: select + defaultValue: space + hidden: true + options: + - label: 所有 + value: space + - label: 与我相关 + value: mine + name: filter_scope + filterable: true + filters: + label: 过滤条件 + type: '[Object]' + omit: true + name: filters + filters.$: + label: 过滤器 + blackbox: true + omit: true + hidden: true + name: filters.$ + filters.$.field: + label: 字段名 + type: text + name: filters.$.field + filters.$.operation: + label: 操作符 + type: select + defaultValue: = + options: ! |- + function () { + return Creator.getFieldOperation(); + } + name: filters.$.operation + filterable: true + filters.$.value: + label: 字段值 + blackbox: true + name: filters.$.value + filter_logic: + label: 过滤逻辑 + type: text + omit: true + name: filter_logic + fields: + label: 字段 + type: lookup + multiple: true + is_wide: true + depend_on: + - object_name + defaultIcon: service_contract + optionsFunction: ! |- + function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); + } + name: fields + filterable: true + rows: + label: 行 + type: lookup + multiple: true + is_wide: true + depend_on: + - object_name + defaultIcon: service_contract + optionsFunction: ! |- + function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); + } + name: rows + filterable: true + columns: + label: 列 + type: lookup + multiple: true + is_wide: true + depend_on: + - object_name + defaultIcon: service_contract + optionsFunction: ! |- + function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); + } + name: columns + filterable: true + values: + label: 统计 + type: lookup + multiple: true + is_wide: true + depend_on: + - object_name + defaultIcon: service_contract + optionsFunction: ! |- + function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); + } + name: values + filterable: true + filter_fields: + label: 过滤字段 + type: grid + is_wide: true + name: filter_fields + filter_fields.$: + label: 过滤字段 + blackbox: true + type: object + name: filter_fields.$ + filter_fields.$.field: + label: 字段名称 + type: lookup + depend_on: + - object_name + optionsFunction: ! |- + function (values) { + return Creator.getObjectFilterFieldOptions(values != null ? values.object_name : void 0); + } + name: filter_fields.$.field + filterable: true + filter_fields.$.required: + label: 必填 + type: boolean + name: filter_fields.$.required + options: + label: 操作 + omit: true + blackbox: true + name: options + description: + label: 描述 + type: textarea + is_wide: true + name: description + charting: + label: 显示图表 + type: boolean + defaultValue: true + name: charting + grouping: + label: 显示小计 + type: boolean + defaultValue: true + name: grouping + totaling: + label: 显示总计 + type: boolean + defaultValue: true + name: totaling + counting: + label: 显示记录计数 + type: boolean + defaultValue: true + name: counting + graphql: + label: Graphql + type: textarea + is_wide: true + hidden: false + group: JsReport + name: graphql + html: + label: Html + type: textarea + is_wide: true + hidden: false + group: JsReport + name: html + helper: + label: Helper + type: textarea + is_wide: true + hidden: false + group: JsReport + name: helper + script: + label: Script + type: textarea + is_wide: true + hidden: false + group: JsReport + name: script +list_views: + default: + columns: + - name + - report_type + - object_name + all: + label: 所有报表 + filter_scope: space + filter_fields: + - report_type + - created + application: + label: 应用报表 + filter_scope: space + filters: ! |- + function () { + var object_names; + object_names = Creator.getAppObjectNames(); + return [["object_name", "=", object_names]]; + } + filter_fields: + - report_type + - created + mine: + label: 我的报表 + filter_scope: mine + filter_fields: + - report_type + - created + global: + label: 标准报表 + filter_scope: space + filters: + - - space + - = + - global + filter_fields: + - report_type + - created +permission_set: + user: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: true + disabled_list_views: + - all + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true \ No newline at end of file diff --git a/packages/standard-objects/tasks.object.yml b/packages/standard-objects/tasks.object.yml new file mode 100644 index 0000000000..fe149bf681 --- /dev/null +++ b/packages/standard-objects/tasks.object.yml @@ -0,0 +1,151 @@ +name: tasks +label: 任务 +icon: task +fields: + name: + label: 主题 + type: text + required: true + is_wide: true + searchable: true + index: true + name: name + assignees: + label: 分派给 + type: lookup + reference_to: users + multiple: true + name: assignees + filterable: true + due_date: + label: 截止时间 + type: datetime + sortable: true + name: due_date + state: + label: 状态 + type: select + options: + - label: 未开始 + value: not_started + - label: 进行中 + value: in_progress + - label: 已完成 + value: completed + - label: 暂停 + value: paused + sortable: true + required: true + name: state + filterable: true + related_to: + label: 相关项 + type: lookup + index: true + reference_to: ! |- + function () { + var o; + o = []; + + _.each(Creator.Objects, function (object, object_name) { + if (object.enable_tasks) { + return o.push(object.name); + } + }); + + return o; + } + name: related_to + filterable: true + description: + label: 描述 + type: textarea + is_wide: true + name: description + company_id: + required: true + omit: false + hidden: false +list_views: + my_open_tasks: + label: 待办任务 + filter_scope: space + filters: + - - assignees + - = + - '{userId}' + - - state + - <> + - completed + my_closed_tasks: + label: 已办任务 + filter_scope: space + filters: + - - assignees + - = + - '{userId}' + - - state + - = + - completed + created_tasks: + label: 交办任务 + filter_scope: space + filters: + - - owner + - = + - '{userId}' + all: + label: 所有任务 + columns: + - name + - due_date + - state + - assignees + - related_to + filter_scope: space + calendar_view: + type: calendar + label: 日历视图 + filter_scope: space + options: + startDateExpr: created + endDateExpr: due_date + textExpr: name + title: + - name + - due_date + - assignees + - state + currentView: month + groups: + - state + resources: + - fieldExpr: state + dataSource: + - text: 未开始 + id: not_started + color: 'rgb(118, 118, 118)' + - text: 进行中 + id: in_progress + color: 'rgb(29, 186, 174)' + - text: 已完成 + id: completed + color: 'rgb(32, 194, 46)' + - text: 暂停 + id: paused + color: 'rgb(118, 118, 118)' +permission_set: + user: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true diff --git a/packages/standard-objects/workflow/categories.object.js b/packages/standard-objects/workflow/categories.object.js new file mode 100644 index 0000000000..78a0f56ac1 --- /dev/null +++ b/packages/standard-objects/workflow/categories.object.js @@ -0,0 +1,71 @@ +if (!db.categories) { + db.categories = new Meteor.Collection('categories'); +} + +if (Meteor.isServer) { + db.categories.allow({ + insert: function (userId, event) { + return false; + }, + update: function (userId, event) { + if (!Steedos.isSpaceAdmin(event.space, userId)) { + return false; + } else { + return true; + } + }, + remove: function (userId, event) { + return false; + } + }); + db.categories.before.insert(function (userId, doc) { + doc.created_by = userId; + return doc.created = new Date(); + }); + db.categories.before.update(function (userId, doc, fieldNames, modifier, options) { + modifier.$set = modifier.$set || {}; + modifier.$set.modified_by = userId; + return modifier.$set.modified = new Date(); + }); + db.categories.before.remove(function (userId, doc) { + if (!Steedos.isSpaceAdmin(doc.space, userId)) { + throw new Meteor.Error(400, "error_space_admins_only"); + } + if (db.forms.find({ + space: doc.space, + category: doc._id + }).count() > 0) { + throw new Meteor.Error(400, "categories_in_use"); + } + }); +} + +new Tabular.Table({ + name: "Categories", + collection: db.categories, + columns: [ + { + data: "name", + title: "name", + orderable: false + }, + { + data: "sort_no", + title: "sort_no", + orderable: false + }, + { + data: "sort_no", + title: "sort_no", + visible: false + } + ], + dom: "tp", + order: [2, "desc"], + extraFields: [], + lengthChange: false, + pageLength: 10, + info: false, + searching: true, + autoWidth: false +}); diff --git a/packages/standard-objects/workflow/categories.object.yml b/packages/standard-objects/workflow/categories.object.yml new file mode 100644 index 0000000000..41b4058035 --- /dev/null +++ b/packages/standard-objects/workflow/categories.object.yml @@ -0,0 +1,58 @@ +name: categories +icon: metrics +label: 流程分类 +fields: + name: + type: text + label: 名称 + name: name + searchable: true + sort_no: + label: 排序号 + type: number + name: sort_no + app: + label: 所属应用 + type: lookup + reference_to: apps + optionsFunction: ! |- + function () { + var _options; + + _options = []; + + _.forEach(Creator.Apps, function (o, k) { + return _options.push({ + label: o.name, + value: k, + icon: o.icon_slds + }); + }); + + return _options; + } + name: app + filterable: true +list_views: + all: + label: 所有 + filter_scope: space + columns: + - name + - sort_no + - app +permission_set: + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: true + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true diff --git a/packages/standard-objects/workflow/flow_positions.object.js b/packages/standard-objects/workflow/flow_positions.object.js new file mode 100644 index 0000000000..1f50999b9d --- /dev/null +++ b/packages/standard-objects/workflow/flow_positions.object.js @@ -0,0 +1,308 @@ +if (!db.flow_positions) { + db.flow_positions = new Meteor.Collection('flow_positions'); +} + +db.flow_positions.helpers({ + role_name: function () { + var role; + role = db.flow_roles.findOne({ + _id: this.role + }, { + fields: { + name: 1 + } + }); + return role && role.name; + }, + org_name: function () { + var org; + org = db.organizations.findOne({ + _id: this.org + }, { + fields: { + fullname: 1 + } + }); + return org && org.fullname; + }, + users_name: function () { + var names, users; + if (!this.users instanceof Array) { + return ""; + } + users = db.space_users.find({ + space: this.space, + user: { + $in: this.users + } + }, { + fields: { + name: 1 + } + }); + names = []; + users.forEach(function (user) { + return names.push(user.name); + }); + return names.toString(); + } +}); + +if (Meteor.isServer) { + db.flow_positions.allow({ + insert: function (userId, event) { + if (!Steedos.isSpaceAdmin(event.space, userId)) { + return false; + } else { + return true; + } + }, + update: function (userId, event) { + if (!Steedos.isSpaceAdmin(event.space, userId)) { + return false; + } else { + return true; + } + }, + remove: function (userId, event) { + if (!Steedos.isSpaceAdmin(event.space, userId)) { + return false; + } else { + return true; + } + } + }); + db.flow_positions.before.insert(function (userId, doc) { + doc.created_by = userId; + return doc.created = new Date(); + }); + db.flow_positions.before.update(function (userId, doc, fieldNames, modifier, options) { + modifier.$set = modifier.$set || {}; + modifier.$set.modified_by = userId; + return modifier.$set.modified = new Date(); + }); + db.flow_positions._ensureIndex({ + "space": 1 + }, { + background: true + }); + db.flow_positions._ensureIndex({ + "space": 1, + "created": 1 + }, { + background: true + }); + db.flow_positions._ensureIndex({ + "space": 1, + "created": 1, + "modified": 1 + }, { + background: true + }); + db.flow_positions._ensureIndex({ + "role": 1, + "org": 1, + "space": 1 + }, { + background: true + }); + db.flow_positions._ensureIndex({ + "space": 1, + "users": 1 + }, { + background: true + }); + db.flow_positions._ensureIndex({ + "space": 1, + "role": 1 + }, { + background: true + }); +} + +new Tabular.Table({ + name: "flow_positions", + collection: db.flow_positions, + pub: "flow_positions_tabular", + columns: [ + { + data: "role", + width: "20%", + render: function (val, + type, + doc) { + var role; + role = db.flow_roles.findOne({ + _id: doc.role + }, + { + fields: { + name: 1 + } + }); + return role && role.name; + } + }, + { + data: "users", + width: "auto", + render: function (val, + type, + doc) { + var names, + users; + if (!doc.users instanceof Array) { + return ""; + } + users = db.space_users.find({ + space: doc.space, + user: { + $in: doc.users + } + }, + { + fields: { + name: 1 + } + }); + names = []; + users.forEach(function (user) { + return names.push(user.name); + }); + return names.toString(); + } + }, + { + data: "org", + width: "20%", + render: function (val, + type, + doc) { + var org; + org = db.organizations.findOne({ + _id: doc.org + }, + { + fields: { + fullname: 1 + } + }); + return org && org.fullname; + } + } + ], + dom: "tp", + extraFields: ["space", "role", "org", "users"], + lengthChange: false, + ordering: false, + pageLength: 10, + info: false, + searching: true, + autoWidth: false, + changeSelector: function (selector, userId) { + var ref2, space, space_user; + if (!userId) { + return { + _id: -1 + }; + } + space = selector.space; + if (!space) { + if ((selector != null ? (ref2 = selector.$and) != null ? ref2.length : void 0 : void 0) > 0) { + space = selector.$and.getProperty('space')[0]; + } + } + if (!space) { + return { + _id: -1 + }; + } + space_user = db.space_users.findOne({ + user: userId, + space: space + }, { + fields: { + _id: 1 + } + }); + if (!space_user) { + return { + _id: -1 + }; + } + return selector; + } +}); + +new Tabular.Table({ + name: "admin_flow_positions", + collection: db.flow_positions, + pub: "flow_positions_tabular", + drawCallback: function (settings) { + var action, tfoot; + if ($(this).hasClass("datatable-flows-roles") && !$(".datatable-flows-roles tfoot").length) { + action = t("add_positions"); + tfoot = `\n \n \n
\n ${action}\n
\n \n \n`; + return $(".datatable-flows-roles tbody").after(tfoot); + } + }, + columns: [ + { + data: "users_name()", + render: function (val, + type, + doc) { + var org; + org = db.organizations.findOne({ + _id: doc.org + }, + { + fields: { + fullname: 1 + } + }); + return `
${val}
\n
${(org != null ? org.fullname : void 0)}
`; + } + } + ], + extraFields: ["space", "role", "org", "users"], + lengthChange: false, + ordering: false, + pageLength: 10, + info: false, + searching: true, + autoWidth: true, + changeSelector: function (selector, userId) { + var ref2, space, space_user; + if (!userId) { + return { + _id: -1 + }; + } + space = selector.space; + if (!space) { + if ((selector != null ? (ref2 = selector.$and) != null ? ref2.length : void 0 : void 0) > 0) { + space = selector.$and.getProperty('space')[0]; + } + } + if (!space) { + return { + _id: -1 + }; + } + space_user = db.space_users.findOne({ + user: userId, + space: space + }, { + fields: { + _id: 1 + } + }); + if (!space_user) { + return { + _id: -1 + }; + } + return selector; + } +}); diff --git a/packages/standard-objects/workflow/flow_positions.object.yml b/packages/standard-objects/workflow/flow_positions.object.yml new file mode 100644 index 0000000000..d426e91472 --- /dev/null +++ b/packages/standard-objects/workflow/flow_positions.object.yml @@ -0,0 +1,68 @@ +name: flow_positions +icon: metrics +label: 岗位成员 +fields: + role: + type: master_detail + label: 岗位 + reference_to: flow_roles + required: true + name: role + filterable: true + users: + type: lookup + label: 成员 + reference_to: users + multiple: true + required: true + name: users + filterable: true + org: + type: lookup + label: 管辖范围 + reference_to: organizations + required: true + name: org + filterable: true + company_id: + required: false + omit: false + hidden: false +list_views: + all: + filter_scope: space + columns: + - role + - org + - users + - company_id + label: 所有 +permission_set: + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true + workflow_admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + modifyCompanyRecords: true + viewCompanyRecords: true + disabled_list_views: [] + disabled_actions: [] + unreadable_fields: [] + uneditable_fields: [] + unrelated_objects: [] diff --git a/packages/standard-objects/workflow/flow_roles.object.js b/packages/standard-objects/workflow/flow_roles.object.js new file mode 100644 index 0000000000..2f2b66e17d --- /dev/null +++ b/packages/standard-objects/workflow/flow_roles.object.js @@ -0,0 +1,117 @@ +if (!db.flow_roles) { + db.flow_roles = new Meteor.Collection('flow_roles'); +} + +if (Meteor.isClient) { + db.flow_roles._sortFunction = function (doc1, doc2) { + var ref2; + return (ref2 = doc1.name) != null ? ref2.localeCompare(doc2.name) : void 0; + }; + db.flow_roles.before.find(function (userId, selector, options) { + if (!options) { + options = {}; + } + return options.sort = db.flow_roles._sortFunction; + }); +} + +if (Meteor.isServer) { + db.flow_roles.allow({ + insert: function (userId, event) { + if (!Steedos.isSpaceAdmin(event.space, userId)) { + return false; + } else { + return true; + } + }, + remove: function (userId, event) { + if (!Steedos.isSpaceAdmin(event.space, userId)) { + return false; + } else { + return true; + } + } + }); + db.flow_roles.before.insert(function (userId, doc) { + doc.created_by = userId; + return doc.created = new Date(); + }); + db.flow_roles.before.update(function (userId, doc, fieldNames, modifier, options) { + modifier.$set = modifier.$set || {}; + modifier.$set.modified_by = userId; + return modifier.$set.modified = new Date(); + }); + db.flow_roles.before.remove(function (userId, doc) { + var flowNames, roleId; + if (db.flow_positions.find({ + role: doc._id + }).count() > 0) { + throw new Meteor.Error(400, "flow_roles_error_positions_exists"); + } + flowNames = []; + roleId = doc._id; + _.each(db.flows.find({ + space: doc.space + }, { + fields: { + name: 1, + 'current.steps': 1 + } + }).fetch(), function (f) { + return _.each(f.current.steps, function (s) { + if (s.deal_type === 'applicantRole' && s.approver_roles.includes(roleId)) { + return flowNames.push(f.name); + } + }); + }); + if (!_.isEmpty(flowNames)) { + throw new Meteor.Error(400, "flow_roles_error_flows_used", { + names: _.uniq(flowNames).join(',') + }); + } + }); + db.flow_roles._ensureIndex({ + "space": 1 + }, { + background: true + }); + db.flow_roles._ensureIndex({ + "space": 1, + "created": 1 + }, { + background: true + }); + db.flow_roles._ensureIndex({ + "space": 1, + "created": 1, + "modified": 1 + }, { + background: true + }); +} + +new Tabular.Table({ + name: "flow_roles", + collection: db.flow_roles, + columns: [ + { + data: "name" + } + ], + dom: "tp", + lengthChange: false, + ordering: false, + pageLength: 10, + info: false, + extraFields: ["space", "_id"], + searching: true, + autoWidth: false, + changeSelector: function (selector, userId) { + if (!userId) { + return { + _id: -1 + }; + } + return selector; + } +}); diff --git a/packages/standard-objects/workflow/flow_roles.object.yml b/packages/standard-objects/workflow/flow_roles.object.yml new file mode 100644 index 0000000000..f7781427e7 --- /dev/null +++ b/packages/standard-objects/workflow/flow_roles.object.yml @@ -0,0 +1,49 @@ +name: flow_roles +icon: metrics +label: 审批岗位 +fields: + name: + type: text + label: 名称 + name: name + searchable: true + company_id: + required: false + omit: false + hidden: false +list_views: + all: + filter_scope: space + columns: + - name + - company_id + label: 所有 +permission_set: + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true + workflow_admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + modifyCompanyRecords: true + viewCompanyRecords: true + disabled_list_views: [] + disabled_actions: [] + unreadable_fields: [] + uneditable_fields: [] + unrelated_objects: [] diff --git a/packages/standard-objects/workflow/flows.object.js b/packages/standard-objects/workflow/flows.object.js new file mode 100644 index 0000000000..fec6b14706 --- /dev/null +++ b/packages/standard-objects/workflow/flows.object.js @@ -0,0 +1,369 @@ +if (!db.flows) { + db.flows = new Meteor.Collection('flows'); +} + +if (Meteor.isServer) { + db.flows.copy = function (userId, spaceId, flowId, options, enabled) { + var company_id, flow, form, newFlowName, newName, ref; + flow = db.flows.findOne({ + _id: flowId, + space: spaceId + }, { + fields: { + _id: 1, + name: 1, + form: 1 + } + }); + if (!flow) { + throw Meteor.Error(`[flow.copy]未找到flow, space: ${spaceId}, flowId: ${flowId}`); + } + newFlowName = options != null ? options.name : void 0; + company_id = options != null ? options.company_id : void 0; + if (newFlowName) { + newName = newFlowName; + } else { + newName = "复制:" + flow.name; + } + form = steedosExport.form(flow.form, flow._id, true, company_id); + if (_.isEmpty(form)) { + throw Meteor.Error(`[flow.copy]未找到form, formId: ${flow.form}`); + } + form.name = newName; + if ((ref = form.flows) != null) { + ref.forEach(function (f) { + return f.name = newName; + }); + } + return steedosImport.workflow(userId, spaceId, form, enabled, company_id); + }; +} + +if (Meteor.isServer) { + db.flows.allow({ + insert: function (userId, event) { + return false; + }, + update: function (userId, event) { + if (!Steedos.isSpaceAdmin(event.space, userId)) { + return false; + } else { + return true; + } + }, + remove: function (userId, event) { + return false; + } + }); + db.flows.before.insert(function (userId, doc) { + doc.created_by = userId; + doc.created = new Date(); + if (doc.current) { + doc.current.created_by = userId; + doc.current.created = new Date(); + doc.current.modified_by = userId; + return doc.current.modified = new Date(); + } + }); + db.flows.after.update(function (userId, doc, fieldNames, modifier, options) { + modifier.$set = modifier.$set || {}; + if (!modifier.$set.current) { + if (_.keys(modifier.$set).toString() !== 'auto_remind' && _.keys(modifier.$set).toString() !== 'upload_after_being_distributed') { // 为了启用自动催办的时候流程在列表位置不变 + modifier.$set['current.modified_by'] = userId; + modifier.$set['current.modified'] = new Date(); + } + } + if (!Steedos.isLegalVersion(doc.space, "workflow.professional")) { + throw new Meteor.Error(400, "space_paid_info_title"); + } + if (doc.category !== this.previous.category) { + if (doc.category) { + db.forms.update(doc.form, { + $set: { + category: doc.category + } + }); + } else { + db.forms.update(doc.form, { + $unset: { + category: 1 + } + }); + } + } + if (doc.company_id !== this.previous.company_id) { + if (doc.company_id) { + return db.forms.update(doc.form, { + $set: { + company_id: doc.company_id + } + }); + } else { + return db.forms.update(doc.form, { + $unset: { + company_id: 1 + } + }); + } + } + }); + db.flows._ensureIndex({ + "is_deleted": 1 + }, { + background: true + }); + db.flows._ensureIndex({ + "space": 1 + }, { + background: true + }); + db.flows._ensureIndex({ + "space": 1, + "is_deleted": 1 + }, { + background: true + }); + db.flows._ensureIndex({ + "role": 1, + "is_deleted": 1 + }, { + background: true + }); + db.flows._ensureIndex({ + "space": 1, + "app": 1, + "created": 1 + }, { + background: true + }); + db.flows._ensureIndex({ + "space": 1, + "app": 1, + "created": 1, + "current.modified": 1 + }, { + background: true + }); + db.flows._ensureIndex({ + "name": 1, + "space": 1 + }, { + background: true + }); + db.flows._ensureIndex({ + "form": 1, + "is_deleted": 1 + }, { + background: true + }); + db.flows._ensureIndex({ + "current.steps.approver_roles": 1, + "space": 1, + "is_deleted": 1 + }, { + background: true + }); + db.flows._ensureIndex({ + "_id": 1, + "space": 1, + "is_deleted": 1 + }, { + background: true + }); + db.flows._ensureIndex({ + "space": 1, + "form": 1 + }, { + background: true + }); + db.flows._ensureIndex({ + "form": 1 + }, { + background: true + }); + db.flows._ensureIndex({ + "space": 1, + "form": 1, + "state:": 1 + }, { + background: true + }); +} + +db.flows.helpers({ + modified_by_name: function () { + var ref2, spaceUser; + spaceUser = db.space_users.findOne({ + user: (ref2 = this.current) != null ? ref2.modified_by : void 0 + }, { + fields: { + name: 1 + } + }); + return spaceUser != null ? spaceUser.name : void 0; + }, + category_name: function () { + var category, form; + form = db.forms.findOne({ + _id: this.form, + space: this.space + }); + if (form && form.category) { + category = db.categories.findOne({ + _id: form.category + }); + return category != null ? category.name : void 0; + } + } +}); + +new Tabular.Table({ + name: "Flows", + collection: db.flows, + pub: "flows_tabular", + columns: [ + { + data: "name", + orderable: false + }, + { + data: "category_name()", + width: "150px", + orderable: false + }, + { + data: "current.modified", + width: "150px", + render: function (val, + type, + doc) { + var ref2; + return moment((ref2 = doc.current) != null ? ref2.modified : void 0).format('YYYY-MM-DD HH:mm'); + } + }, + { + data: "modified_by_name()", + width: "150px", + orderable: false + }, + { + // title: ()-> + // """ + // #{t('flows_state')} + //
+ // + //
+ // """ + // , + data: "state", + width: "150px", + orderable: false, + render: function (val, + type, + doc) { + var checked; + checked = ""; + if (doc.state === 'enabled') { + checked = "checked"; + } + return `
\n \n
`; + } + }, + { + data: "auto_remind", + width: "150px", + orderable: false, + render: function (val, + type, + doc) { + var checked; + checked = ""; + if (doc.auto_remind === true) { + checked = "checked"; + } + return `
\n \n
`; + } + }, + { + data: "upload_after_being_distributed", + width: "150px", + orderable: false, + render: function (val, + type, + doc) { + var checked; + checked = ""; + if (doc.upload_after_being_distributed === true) { + checked = "checked"; + } + return `
\n \n
`; + } + }, + { + data: "", + title: "", + orderable: false, + width: '1px', + render: function (val, + type, + doc) { + return ``; + } + } + ], + order: [[2, "desc"]], + dom: "tp", + extraFields: ["form", "print_template", "instance_template", "events", "field_map", "space", "description", "current", "state", "distribute_optional_users", "distribute_to_self", "distribute_end_notification"], + lengthChange: false, + pageLength: 10, + info: false, + searching: true, + autoWidth: false +}); + +new Tabular.Table({ + name: "ImportOrExportFlows", + collection: db.flows, + columns: [ + { + data: "name", + title: "name" + }, + { + // {data: "state", title: "state"}, + data: "", + title: "", + orderable: false, + width: '1px', + render: function (val, + type, + doc) { + return '' + t("flows_btn_export_title") + ''; + } + } + ], + dom: "tp", + extraFields: ["form", "print_template", "instance_template", "events", "field_map", "space", "current"], + lengthChange: false, + pageLength: 10, + info: false, + searching: true, + autoWidth: false +}); diff --git a/packages/standard-objects/workflow/flows.object.yml b/packages/standard-objects/workflow/flows.object.yml new file mode 100644 index 0000000000..b3333da3ef --- /dev/null +++ b/packages/standard-objects/workflow/flows.object.yml @@ -0,0 +1,499 @@ +name: flows +icon: timesheet +label: 流程 +fields: + name: + type: text + label: 流程名 + required: true + searchable: true + readonly: true + name: name + form: + label: 流程表单 + type: lookup + reference_to: forms + readonly: true + name: form + filterable: true + category: + label: 流程分类 + type: lookup + reference_to: categories + name: category + filterable: true + state: + label: 流程状态 + type: select + options: + - label: 启用 + value: enabled + - label: 停用 + value: disabled + readonly: true + name: state + filterable: true + is_valid: + label: 流程有效 + type: boolean + readonly: true + name: is_valid + current_no: + label: 当前序号 + type: number + readonly: true + name: current_no + description: + label: 备注 + type: textarea + is_wide: true + name: description + help_text: + label: 帮助文本 + type: textarea + is_wide: true + name: help_text + company_id: + required: false + omit: false + hidden: false + created_by: + label: 创建人 + modified_by: + label: 修改人 + current: + label: 步骤 + type: object + is_wide: true + blackbox: true + name: current + current.modified: + label: 修改时间 + type: datetime + readonly: true + omit: true + hidden: true + name: current.modified + current.modified_by: + label: 修改人 + type: lookup + reference_to: users + readonly: true + omit: true + hidden: true + name: current.modified_by + filterable: true + current.created: + label: 创建时间 + type: datetime + readonly: true + omit: true + hidden: true + name: current.created + current.created_by: + label: 创建人 + type: lookup + reference_to: users + readonly: true + omit: true + hidden: true + name: current.created_by + filterable: true + current.steps: + label: 步骤 + type: grid + readonly: true + is_wide: true + name: current.steps + current.steps.$._id: + type: text + omit: true + readonly: true + hidden: true + name: current.steps.$._id + current.steps.$.name: + label: 名称 + readonly: true + type: text + name: current.steps.$.name + current.steps.$.disableCC: + label: 禁止传阅 + type: boolean + readonly: true + name: current.steps.$.disableCC + current.steps.$.allowDistribute: + label: 允许分发 + type: boolean + readonly: true + name: current.steps.$.allowDistribute + current.steps.$.can_edit_main_attach: + label: 允许修改正文 + type: boolean + readonly: true + name: current.steps.$.can_edit_main_attach + current.steps.$.can_edit_normal_attach: + label: 允许修改附件 + type: boolean + readonly: true + name: current.steps.$.can_edit_normal_attach + current.steps.$.distribute_optional_flows: + label: 此步骤分发时可选的流程范围 + type: lookup + reference_to: flows + multiple: true + omit: true + hidden: true + name: current.steps.$.distribute_optional_flows + filterable: true + current.steps.$.cc_must_finished: + label: 必须等待传阅完成 + type: boolean + readonly: true + name: current.steps.$.cc_must_finished + current.steps.$.cc_alert: + label: 弹出传阅提醒 + type: boolean + readonly: true + name: current.steps.$.cc_alert + current.steps.$.allowBatch: + label: 批量审批 + type: boolean + readonly: true + name: current.steps.$.allowBatch + current.steps.$.oneClickApproval: + label: 一键核准 + type: boolean + readonly: true + name: current.steps.$.oneClickApproval + current.steps.$.oneClickRejection: + label: 一键驳回 + type: boolean + readonly: true + name: current.steps.$.oneClickRejection + perms: + label: 权限 + type: object + is_wide: true + blackbox: true + name: perms + perms.users_can_add: + label: '授权用户: 新建申请单' + type: lookup + reference_to: users + multiple: true + is_wide: true + name: perms.users_can_add + filterable: true + perms.orgs_can_add: + label: '授权部门: 新建申请单' + type: lookup + reference_to: organizations + multiple: true + is_wide: true + name: perms.orgs_can_add + filterable: true + perms.users_can_monitor: + label: '授权用户: 查看所有申请单' + type: lookup + reference_to: users + multiple: true + is_wide: true + name: perms.users_can_monitor + filterable: true + perms.orgs_can_monitor: + label: '授权部门: 查看所有申请单' + type: lookup + reference_to: organizations + multiple: true + is_wide: true + name: perms.orgs_can_monitor + filterable: true + perms.users_can_admin: + label: '授权用户: 查看所有申请单,并能执行重定位、转签核、删除操作' + type: lookup + reference_to: users + multiple: true + is_wide: true + name: perms.users_can_admin + filterable: true + perms.orgs_can_admin: + label: '授权部门: 查看所有申请单,并能执行重定位、转签核、删除操作' + type: lookup + reference_to: organizations + multiple: true + is_wide: true + name: perms.orgs_can_admin + filterable: true + app: + label: 所属应用 + type: text + omit: true + hidden: true + name: app + historys: + label: 历史版本 + blackbox: true + omit: true + hidden: true + name: historys + instance_template: + label: 表单模板 + type: code + language: handlebars + is_wide: true + group: 模板 + name: instance_template + print_template: + label: 打印模板 + type: code + language: handlebars + is_wide: true + group: 模板 + name: print_template + field_map: + label: 映射关系 + type: textarea + is_wide: true + group: 归档 + name: field_map + events: + label: 相关事件 + type: textarea + is_wide: true + group: 脚本 + name: events + distribute_optional_users: + type: lookup + label: 流程被分发时分发对象选择范围 + reference_to: users + multiple: true + is_wide: true + group: 分发 + blackbox: true + omit: true + hidden: true + name: distribute_optional_users + filterable: true + distribute_to_self: + label: 分发给自己 + type: boolean + group: 分发 + omit: true + hidden: true + name: distribute_to_self + name_formula: + label: 标题公式 + type: text + group: 高级 + name: name_formula + code_formula: + label: 系统公式 + type: text + group: 高级 + name: code_formula + auto_remind: + label: 自动催办 + type: boolean + group: 高级 + name: auto_remind + sort_no: + type: number + label: 排序号 + group: 高级 + sortable: true + name: sort_no + timeout_auto_submit: + label: 超时自动流转 + type: boolean + group: 高级 + name: timeout_auto_submit +list_views: + all: + label: 所有 + filter_scope: space + columns: + - name + - modified + - modified_by + - auto_remind + - state + - is_deleted + - company_id + - form + - sort_no + sort: + - - sort_no + - desc + - - modified + - desc +actions: + standard_new: + label: 新建 + visible: ! |- + function () { + var permissions; + permissions = Creator.getPermissions(); + + if (permissions) { + return permissions["allowCreate"]; + } + } + 'on': list + todo: ! |- + function (object_name, record_id, fields) { + return Modal.show('new_flow_modal'); + } + design: + label: 流程设计器 + visible: ! |- + function () { + return true; + } + 'on': list + todo: ! |- + function (object_name, record_id, fields) { + return WorkflowCore.openFlowDesign(Steedos.locale(), Steedos.spaceId(), null, Creator.getUserCompanyId()); + } + standard_edit: + visible: false + 'on': record + standard_delete: + visible: false + 'on': record_more + designFlow: + label: 流程设计器 + visible: ! |- + function (object_name, record_id, record_permissions) { + return true; + } + 'on': record + todo: ! |- + function (object_name, record_id, fields) { + return WorkflowCore.openFlowDesign(Steedos.locale(), Steedos.spaceId(), record_id, Creator.getUserCompanyId()); + } + designForm: + label: 表单设计器 + visible: ! |- + function (object_name, record_id, record_permissions) { + return true; + } + 'on': record + todo: ! |- + function (object_name, record_id, fields) { + return WorkflowCore.openFormDesign(Steedos.locale(), Steedos.spaceId(), this.record.form, Creator.getUserCompanyId()); + } + export_default_template: + label: 导出默认模板 + 'on': record + visible: ! |- + function () { + return true; + } + todo: ! |- + function (object_name, record_id, fields) { + var ref2, ref3, url, workflowUrl; + workflowUrl = (ref2 = Meteor.settings["public"].webservices) != null ? (ref3 = ref2.workflow) != null ? ref3.url : void 0 : void 0; + + if (!workflowUrl) { + toastr.error("settings.public.webservices.workflow.url", "缺少配置"); + return; + } + + url = Meteor.absoluteUrl("/api/workflow/export/talbe_template?flow=" + record_id, { + rootUrl: workflowUrl + }); + return window.open(url, '_blank'); + } + exportFlow: + label: 导出流程 + visible: true + 'on': record + todo: ! |- + function (object_name, record_id, fields) { + var flow, form_id, ref2, ref3, ref4; + console.log("exportFlow", object_name, record_id, fields); + + if (_.isString((ref2 = this.record) != null ? ref2.form : void 0)) { + form_id = this.record.form; + } else if ((ref3 = this.record) != null ? (ref4 = ref3.form) != null ? ref4._id : void 0 : void 0) { + form_id = this.record.form._id; + } + + if (form_id) { + return window.open(Steedos.absoluteUrl("/api/workflow/export/form?form=" + form_id), '_blank'); + } else { + flow = Creator.getCollection(object_name).findOne(record_id); + + if (flow) { + return window.open(Steedos.absoluteUrl("/api/workflow/export/form?form=" + form_id), '_blank'); + } + } + } + importFlow: + label: 导入流程 + visible: true + 'on': list + todo: ! |- + function () { + return Modal.show("admin_import_flow_modal", { + onSuccess: function (flows) { + if (flows.length > 0) { + return FlowRouter.go("/app/admin/flows/view/" + flows[0]); + } + } + }); + } + copyFlow: + label: 复制流程 + visible: true + 'on': record + todo: ! |- + function (object_name, record_id, fields) { + return Modal.show("copy_flow_modal", { + record_id: record_id, + onSuccess: function (flows) { + if (flows.length > 0) { + return FlowRouter.go("/app/admin/flows/view/" + flows[0]); + } + } + }); + } + distributeAdmin: + label: 设置分发 + visible: true + 'on': record + todo: ! |- + function (object_name, record_id, fields) { + return Modal.show("distribute_edit_flow_modal", { + flow: this.record + }); + } +permission_set: + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: false + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true + workflow_admin: + allowCreate: true + allowDelete: false + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + modifyCompanyRecords: true + viewCompanyRecords: true + disabled_list_views: [] + disabled_actions: [] + unreadable_fields: [] + uneditable_fields: [] + unrelated_objects: [] diff --git a/packages/standard-objects/workflow/forms.object.js b/packages/standard-objects/workflow/forms.object.js new file mode 100644 index 0000000000..f0e29ea774 --- /dev/null +++ b/packages/standard-objects/workflow/forms.object.js @@ -0,0 +1,70 @@ +if (!db.forms) { + db.forms = new Meteor.Collection('forms'); +} + +if (Meteor.isServer) { + db.forms.before.insert(function (userId, doc) { + doc.created_by = userId; + doc.created = new Date(); + if (doc.current) { + doc.current.created_by = userId; + doc.current.created = new Date(); + doc.current.modified_by = userId; + return doc.current.modified = new Date(); + } + }); + db.forms.before.update(function (userId, doc, fieldNames, modifier, options) { + modifier.$set = modifier.$set || {}; + modifier.$set.modified_by = userId; + return modifier.$set.modified = new Date(); + }); + db.forms._ensureIndex({ + "is_deleted": 1 + }, { + background: true + }); + db.forms._ensureIndex({ + "space": 1 + }, { + background: true + }); + db.forms._ensureIndex({ + "space": 1, + "is_deleted": 1 + }, { + background: true + }); + db.forms._ensureIndex({ + "space": 1, + "app": 1, + "created": 1 + }, { + background: true + }); + db.forms._ensureIndex({ + "space": 1, + "app": 1, + "created": 1, + "current.modified": 1 + }, { + background: true + }); + db.forms._ensureIndex({ + "name": 1, + "space": 1 + }, { + background: true + }); + db.forms._ensureIndex({ + "_id": 1, + "space": 1 + }, { + background: true + }); + db.forms._ensureIndex({ + "space": 1, + "state": 1 + }, { + background: true + }); +} diff --git a/packages/standard-objects/workflow/forms.object.yml b/packages/standard-objects/workflow/forms.object.yml new file mode 100644 index 0000000000..8fd1bea419 --- /dev/null +++ b/packages/standard-objects/workflow/forms.object.yml @@ -0,0 +1,241 @@ +name: forms +icon: timesheet +label: 表单 +fields: + name: + type: text + label: 表单 + required: true + searchable: true + readonly: true + name: name + state: + type: select + label: 表单状态 + options: + - label: 启用 + value: enabled + - label: 停用 + value: disabled + readonly: true + name: state + filterable: true + description: + type: textarea + label: 表单描述 + is_wide: true + name: description + category: + type: lookup + label: 表单分类 + reference_to: categories + readonly: true + name: category + filterable: true + is_valid: + type: boolean + label: 是否有效 + readonly: true + name: is_valid + instance_style: + type: select + label: 样式 + options: + - label: 表格 + value: table + - label: 默认 + value: default + name: instance_style + filterable: true + historys: + label: 历史版本 + blackbox: true + omit: true + hidden: true + name: historys + approve_on_create: + label: 是否同意审批 + type: boolean + name: approve_on_create + approve_on_modify: + label: 是否修改审批 + type: boolean + name: approve_on_modify + approve_on_delete: + type: boolean + label: 是否删除审批 + name: approve_on_delete + enable_workflow: + type: boolean + label: 是否启用工作流 + name: enable_workflow + enable_view_others: + type: boolean + label: 是否查看其它表单 + name: enable_view_others + current: + label: 当前版本 + type: object + is_wide: true + readonly: true + blackbox: true + name: current + current.form_script: + label: 表单脚本 + type: code + readonly: true + name: current.form_script + current.name_forumla: + label: 标题公式 + type: code + readonly: true + name: current.name_forumla + current.fields: + label: 字段 + type: grid + is_wide: true + readonly: true + name: current.fields + current.fields.$.code: + label: 名称 + type: text + readonly: true + name: current.fields.$.code + current.fields.$.name: + label: 显示名 + type: text + readonly: true + name: current.fields.$.name + current.fields.$.type: + label: 类型 + type: select + options: + - label: 勾选框 + value: checkbox + - label: 日期-时间 + value: dateTime + - label: 日期 + value: date + - label: 邮件 + value: email + - label: 选择部门 + value: group + - label: 文本 + value: input + - label: 多选 + value: multiSelect + - label: 数值 + value: number + - label: 密码 + value: password + - label: 单选 + value: radio + - label: 分组 + value: section + - label: 下拉框 + value: select + - label: 表格 + value: table + - label: 网址 + value: url + - label: 选择用户 + value: user + - label: 地理位置 + value: geolocation + readonly: true + name: current.fields.$.type + filterable: true + current.fields.$.is_required: + label: 必填 + type: boolean + readonly: true + name: current.fields.$.is_required + current.fields.$.is_wide: + label: 宽字段 + type: boolean + readonly: true + name: current.fields.$.is_wide + current.fields.$.is_list_display: + label: 列表显示 + type: boolean + readonly: true + name: current.fields.$.is_list_display + current.fields.$.is_searchable: + label: 可搜索 + type: boolean + readonly: true + name: current.fields.$.is_searchable + current.fields.$.is_multiselect: + label: 多选 + type: boolean + readonly: true + name: current.fields.$.is_multiselect + company_id: + required: false + omit: false + hidden: false +list_views: + all: + label: 所有 + filter_scope: space + filters: + - - is_deleted + - = + - false + columns: + - name + - category + - modified + - modified_by + - auto_remind + - state +actions: + standard_new: + visible: false + 'on': list + standard_edit: + visible: false + 'on': record + standard_delete: + visible: false + 'on': record_more + designForm: + label: 表单设计器 + visible: ! |- + function (object_name, record_id, record_permissions) { + return true; + } + 'on': record + todo: ! |- + function (object_name, record_id, fields) { + return WorkflowCore.openFormDesign(Steedos.locale(), Steedos.spaceId(), this.record._id, Creator.getUserCompanyId()); + } +permission_set: + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: false + allowDelete: false + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true + workflow_admin: + allowCreate: false + allowDelete: false + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + modifyCompanyRecords: true + viewCompanyRecords: true + disabled_list_views: [] + disabled_actions: [] + unreadable_fields: [] + uneditable_fields: [] + unrelated_objects: [] diff --git a/packages/standard-objects/workflow/instance_number_rules.object.js b/packages/standard-objects/workflow/instance_number_rules.object.js new file mode 100644 index 0000000000..7552e4f0c5 --- /dev/null +++ b/packages/standard-objects/workflow/instance_number_rules.object.js @@ -0,0 +1,97 @@ +if (!db.instance_number_rules) { + db.instance_number_rules = new Meteor.Collection('instance_number_rules'); +} + +if (Meteor.isServer) { + db.instance_number_rules.allow({ + insert: function (userId, event) { + if (!Steedos.isSpaceAdmin(event.space, userId)) { + return false; + } else { + return true; + } + }, + update: function (userId, event) { + if (!Steedos.isSpaceAdmin(event.space, userId)) { + return false; + } else { + return true; + } + }, + remove: function (userId, event) { + if (!Steedos.isSpaceAdmin(event.space, userId)) { + return false; + } else { + return true; + } + } + }); + db.instance_number_rules.before.insert(function (userId, doc) { + var rules; + doc.created_by = userId; + doc.created = new Date(); + rules = db.instance_number_rules.findOne({ + space: doc.space, + "name": doc.name + }); + if (rules) { + throw new Meteor.Error(400, "instance_number_rules_name_only"); + } + return console.log(userId + "; insert instance_number_rules", doc); + }); + db.instance_number_rules.before.update(function (userId, doc, fieldNames, modifier, options) { + modifier.$set = modifier.$set || {}; + modifier.$set.modified_by = userId; + modifier.$set.modified = new Date(); + return console.log(userId + "; update instance_number_rules", doc); + }); + db.instance_number_rules.before.remove(function (userId, doc) { + // if (!Steedos.isSpaceAdmin(doc.space, userId)) + // throw new Meteor.Error(400, "error_space_admins_only"); + return console.log(userId + "; remove instance_number_rules", doc); + }); +} + +new Tabular.Table({ + name: "instance_number_rules", + collection: db.instance_number_rules, + columns: [ + { + data: "name", + title: "name" + }, + { + data: "year", + title: "year" + }, + { + data: "first_number", + title: "first_number" + }, + { + data: "number", + title: "number" + }, + { + data: "rules", + title: "rules" + } + ], + dom: "tp", + extraFields: ["space"], + lengthChange: false, + ordering: false, + pageLength: 10, + info: false, + searching: true, + autoWidth: false +}); + +if (Meteor.isServer) { + db.instance_number_rules._ensureIndex({ + "space": 1, + "name": 1 + }, { + background: true + }); +} diff --git a/packages/standard-objects/workflow/instance_number_rules.object.yml b/packages/standard-objects/workflow/instance_number_rules.object.yml new file mode 100644 index 0000000000..5346b29de3 --- /dev/null +++ b/packages/standard-objects/workflow/instance_number_rules.object.yml @@ -0,0 +1,79 @@ +name: instance_number_rules +icon: metrics +label: 流程编号规则 +fields: + name: + type: text + label: 名称 + required: true + name: name + searchable: true + year: + type: number + label: 年份 + readonly: true + defaultValue: ! |- + function () { + if (Meteor.isClient) { + return new Date().getFullYear(); + } + } + name: year + first_number: + type: number + label: 起始序号 + defaultValue: 1 + name: first_number + number: + type: number + label: 序号 + defaultValue: 0 + name: number + rules: + type: text + label: 编号规则 + required: true + name: rules + company_id: + required: false + omit: false + hidden: false +list_views: + all: + filter_scope: space + columns: + - name + - year + - first_number + - number + - rules + label: 所有 +permission_set: + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true + workflow_admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + modifyCompanyRecords: true + viewCompanyRecords: true + disabled_list_views: [] + disabled_actions: [] + unreadable_fields: [] + uneditable_fields: [] + unrelated_objects: [] diff --git a/packages/standard-objects/workflow/instances.object.js b/packages/standard-objects/workflow/instances.object.js new file mode 100644 index 0000000000..9131d187a4 --- /dev/null +++ b/packages/standard-objects/workflow/instances.object.js @@ -0,0 +1,374 @@ +if (!db.instances) { + db.instances = new Meteor.Collection('instances'); +} + +if (Meteor.isServer) { + db.instances.allow({ + insert: function (userId, event) { + return false; + }, + update: function (userId, event) { + if (event.state === "draft" && (event.applicant === userId || event.submitter === userId)) { + return true; + } else { + return false; + } + }, + remove: function (userId, event) { + return false; + } + }); + Meteor.methods({ + getRelatedInstancesOptions: function (options) { + var instance, instanceId, instances, pinyin, query, searchText, selectedOPtions, uid, values; + uid = this.userId; + searchText = options.searchText; + values = options.values; + instanceId = options.params; + selectedOPtions = []; + // Meteor.wrapAsync((callback) -> + // Meteor.setTimeout (-> + // callback() + // return + // ), 1000 + // return + // )() + options = new Array(); + instances = new Array(); + if (instanceId) { + instance = db.instances.findOne(instanceId, { + fields: { + related_instances: 1 + } + }); + if (instance) { + selectedOPtions = instance.related_instances; + } + } + if (searchText) { + pinyin = /^[a-zA-Z\']*$/.test(searchText); + if ((pinyin && searchText.length > 8) || (!pinyin && searchText.length > 1)) { + // console.log "searchText is #{searchText}" + query = { + state: { + $in: ["pending", "completed"] + }, + name: { + $regex: searchText + }, + $or: [ + { + submitter: uid + }, + { + applicant: uid + }, + { + inbox_users: uid + }, + { + outbox_users: uid + }, + { + cc_users: uid + } + ] + }; + if (selectedOPtions && _.isArray(selectedOPtions)) { + query._id = { + $nin: selectedOPtions + }; + } + instances = db.instances.find(query, { + limit: 10, + fields: { + name: 1, + flow: 1, + applicant_name: 1 + } + }).fetch(); + } + } else if (values.length) { + instances = db.instances.find({ + _id: { + $in: values + } + }, { + fields: { + name: 1, + flow: 1, + applicant_name: 1 + } + }).fetch(); + } + instances.forEach(function (instance) { + var flow; + flow = db.flows.findOne({ + _id: instance.flow + }, { + fields: { + name: 1 + } + }); + return options.push({ + label: "[" + (flow != null ? flow.name : void 0) + "]" + instance.name + ", " + instance.applicant_name, + value: instance._id + }); + }); + return options; + } + }); + db.instances.before.update(function (userId, doc, fieldNames, modifier, options) { + modifier.$unset = modifier.$unset || {}; + return modifier.$unset.is_recorded = 1; + }); + var ref2; + if ((ref2 = Meteor.settings.cron) != null ? ref2.instancerecordqueue_interval : void 0) { + db.instances.after.update(function (userId, doc, fieldNames, modifier, options) { + if (doc.state === "pending" && this.previous.state === "draft") { + return uuflowManager.triggerRecordInstanceQueue(doc._id, doc.record_ids, doc.current_step_name); + } else if (!_.isEmpty(doc.record_ids) && doc.current_step_name !== this.previous.current_step_name) { + return uuflowManager.triggerRecordInstanceQueue(doc._id, doc.record_ids, doc.current_step_name); + } + }); + } + db.instances._ensureIndex({ + "space": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "submitter": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "applicant": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "outbox_users": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "inbox_users": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "space": 1, + "is_deleted": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "state": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_archived": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "created": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "_id": 1, + "submit_date": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "space": 1, + "flow": 1, + "state": 1, + "submit_date": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "created": 1, + "modified": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1, + "state": 1, + "space": 1, + "final_decision": 1, + "submitter": 1, + "applicant": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1, + "space": 1, + "modified": 1, + "outbox_users": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1, + "state": 1, + "space": 1, + "modified": 1, + "final_decision": 1, + "submitter": 1, + "applicant": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1, + "space": 1, + "outbox_users": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1, + "space": 1, + "modified": 1, + "submit_date": 1, + "outbox_users": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1, + "space": 1, + "submit_date": 1, + "outbox_users": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1, + "state": 1, + "space": 1, + "flow": 1, + "modified": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1, + "state": 1, + "space": 1, + "flow": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1, + "state": 1, + "space": 1, + "flow": 1, + "submit_date": 1, + "modified": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1, + "state": 1, + "space": 1, + "flow": 1, + "submit_date": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1, + "state": 1, + "space": 1, + "submitter": 1, + "applicant": 1, + "inbox_users": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "is_deleted": 1, + "state": 1, + "space": 1, + "is_archive": 1, + "submitter": 1, + "applicant": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "modified": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "modified": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "cc_users": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "space": 1, + "state": 1, + "is_deleted": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "keywords": "hashed" + }, { + background: true + }); + db.instances._ensureIndex({ + "space": 1, + "submit_date": 1, + "is_deleted": 1, + "final_decision": 1, + "state": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "traces.approves.type": 1, + "traces.approves.handler": 1 + }, { + background: true + }); + // 全文检索同步字段 + db.instances._ensureIndex({ + "is_recorded": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "category": 1 + }, { + background: true + }); + db.instances._ensureIndex({ + "record_ids.o": 1, + "record_ids.ids": 1 + }, { + background: true + }); +} diff --git a/packages/standard-objects/workflow/instances.object.yml b/packages/standard-objects/workflow/instances.object.yml new file mode 100644 index 0000000000..338c376dbc --- /dev/null +++ b/packages/standard-objects/workflow/instances.object.yml @@ -0,0 +1,271 @@ +name: instances +icon: task +label: 审批单 +fields: + name: + label: 文件标题 + type: text + defaultValue: '' + description: '' + inlineHelpText: '' + required: true + searchable: true + is_wide: true + name: name + flow: + label: 流程 + type: lookup + reference_to: flows + readonly: true + name: flow + filterable: true + flow_version: + label: 流程版本号 + type: text + hidden: true + name: flow_version + form: + label: 表单 + type: lookup + reference_to: forms + readonly: true + name: form + filterable: true + form_version: + label: 表单版本号 + type: text + hidden: true + name: form_version + submitter: + label: 提交者 + type: master_detail + reference_to: users + readonly: true + name: submitter + filterable: true + submitter_name: + type: text + label: 提交者 + hidden: true + name: submitter_name + submit_date: + type: datetime + label: 提交日期 + name: submit_date + applicant: + type: lookup + label: 申请人 + reference_to: users + name: applicant + filterable: true + applicant_name: + type: text + label: 申请人 + hidden: true + name: applicant_name + applicant_organization: + type: lookup + label: 申请人部门 + reference_to: organizations + name: applicant_organization + filterable: true + applicant_organization_name: + type: text + label: 申请人部门名称 + hidden: true + name: applicant_organization_name + applicant_organization_fullname: + type: text + label: 申请人部门全称 + hidden: true + name: applicant_organization_fullname + code: + label: 公式 + type: text + hidden: true + name: code + values: + blackbox: true + omit: true + label: 审批单字段 + hidden: true + name: values + inbox_users: + type: lookup + multiple: true + reference_to: users + label: 待办处理人 + name: inbox_users + filterable: true + outbox_users: + type: lookup + multiple: true + reference_to: users + label: 已办处理人 + name: outbox_users + filterable: true + traces: + type: '[Object]' + blackbox: true + omit: true + label: 步骤审批 + hidden: true + name: traces + attachments: + type: '[Object]' + blackbox: true + omit: true + label: 附件 + hidden: true + name: attachments + flow_name: + type: text + label: 流程名 + hidden: true + name: flow_name + category_name: + type: text + label: 流程分类 + hidden: true + name: category_name + category: + label: 流程分类 + type: lookup + reference_to: categories + hidden: true + name: category + filterable: true + state: + label: 审批单状态 + type: select + options: + - label: 草稿 + value: draft + - label: 进行中 + value: pending + - label: 已完成 + value: completed + readonly: true + name: state + filterable: true + is_recorded: + type: boolean + label: 已归档 + name: is_recorded + is_archived: + type: boolean + label: 已归档(旧) + hidden: true + name: is_archived + is_deleted: + type: boolean + label: 已删除 + hidden: true + is_recorded_creator: + type: boolean + label: 已归档 + name: is_recorded_creator + related_instances: + type: lookup + multiple: true + reference_to: instances + label: 相关审批单 + is_wide: true + name: related_instances + filterable: true + record_ids: + label: 记录ID + type: grid + omit: true + hidden: true + name: record_ids + record_ids.$.o: + type: text + hidden: true + name: record_ids.$.o + record_ids.$.ids: + type: '[text]' + hidden: true + name: record_ids.$.ids + company_id: + required: false + omit: false + hidden: false + current_step_auto_submit: + label: 当前步骤超时自动流转 + type: boolean + omit: true + hidden: true + name: current_step_auto_submit +list_views: + all: + label: 所有 + filter_scope: space + columns: + - name + - applicant + - applicant_organization + - modified + - state + inbox: + label: 待办文件 + filter_scope: space + filters: + - - inbox_users + - = + - '{userId}' + outbox: + label: 已办文件 + filter_scope: space + filters: + - - outbox_users + - = + - '{userId}' +permission_set: + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: true + admin: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: true + workflow_admin: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: false + modifyCompanyRecords: false + viewCompanyRecords: true + disabled_list_views: + - inbox + - outbox + disabled_actions: [] + unreadable_fields: [] + uneditable_fields: [] + unrelated_objects: [] +actions: + view_instance: + label: 查看审批单 + visible: true + 'on': record + todo: ! |- + function (object_name, record_id, fields) { + var uobj, workflowUrl; + uobj = {}; + uobj["box"] = 'monitor'; + uobj["print_is_show_traces"] = '1'; + uobj["print_is_show_attachments"] = '1'; + uobj["X-User-Id"] = Meteor.userId(); + uobj["X-Auth-Token"] = Accounts._storedLoginToken(); + workflowUrl = Meteor.settings["public"].webservices.workflow.url; + return Steedos.openWindow(workflowUrl + "workflow/space/" + Session.get("spaceId") + "/print/" + record_id + "?" + $.param(uobj), "", 'width=900,height=750,scrollbars=yes,EnableViewPortScale=yes,toolbarposition=top,transitionstyle=fliphorizontal,menubar=yes,closebuttoncaption= x '); + } diff --git a/packages/standard-objects/workflow/instances_statistic.object.yml b/packages/standard-objects/workflow/instances_statistic.object.yml new file mode 100644 index 0000000000..5650e946b9 --- /dev/null +++ b/packages/standard-objects/workflow/instances_statistic.object.yml @@ -0,0 +1,116 @@ +name: instances_statistic +icon: metrics +label: 审批效率 +fields: + user: + type: master_detail + label: 用户 + reference_to: users + name: user + filterable: true + year: + type: number + label: 年度 + name: year + month: + type: number + label: 月度 + name: month + month_finished_count: + type: number + label: 已处理总数 + name: month_finished_count + inbox_count: + type: number + label: 待处理总数 + name: inbox_count + month_finished_time: + type: number + scale: 2 + label: 已处理总耗时 + name: month_finished_time + inbox_time: + type: number + scale: 2 + label: 待审核总耗时 + name: inbox_time + month_finished_avg: + type: number + scale: 2 + label: 已处理平均耗时 + name: month_finished_avg + inbox_avg: + type: number + scale: 2 + label: 待处理平均耗时 + name: inbox_avg + avg_time: + type: number + scale: 2 + label: 总平均耗时 + name: avg_time + owner_organization: + label: 主部门 + type: lookup + reference_to: organizations + name: owner_organization + filterable: true + owner_organizations: + label: 所属部门 + type: lookup + reference_to: organizations + multiple: true + defaultValue: [] + name: owner_organizations + filterable: true + company_id: + required: false + omit: false + hidden: false +list_views: + all: + label: 所有 + filter_scope: space + columns: + - user + - year + - month + - month_finished_count + - inbox_count + - month_finished_time + - inbox_time + - month_finished_avg + - inbox_avg + - avg_time + - owner_organization + - owner_organizations + - company_id +permission_set: + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: false + modifyAllRecords: false + viewAllRecords: true + workflow_admin: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: false + modifyAllRecords: false + viewAllRecords: false + modifyCompanyRecords: true + viewCompanyRecords: true + disabled_list_views: [] + disabled_actions: [] + unreadable_fields: [] + uneditable_fields: [] + unrelated_objects: [] diff --git a/packages/standard-objects/workflow/process_delegation_rules.object.js b/packages/standard-objects/workflow/process_delegation_rules.object.js new file mode 100644 index 0000000000..7b194a5ddc --- /dev/null +++ b/packages/standard-objects/workflow/process_delegation_rules.object.js @@ -0,0 +1,171 @@ +if (!db.process_delegation_rules) { + db.process_delegation_rules = new Meteor.Collection('process_delegation_rules'); +} + +db.process_delegation_rules.helpers({ + flow_name: function () { + var f; + f = db.flows.findOne({ + _id: this.flow + }, { + fields: { + name: 1 + } + }); + return f && f.name; + } +}); + +if (Meteor.isServer) { + db.process_delegation_rules._ensureIndex({ + "space": 1 + }, { + background: true + }); + db.process_delegation_rules._ensureIndex({ + "enabled": 1, + "end_time": 1 + }, { + background: true + }); +} + +if (Meteor.isServer) { + db.process_delegation_rules.allow({ + insert: function (userId, doc) { + return userId && db.space_users.find({ + space: doc.space, + user: userId + }).count() > 0 && db.process_delegation_rules.find({ + space: doc.space, + from: userId + }).count() === 0; + }, + update: function (userId, doc, fieldNames, modifier) { + return userId && doc.from === userId; + }, + remove: function (userId, doc) { + return userId && doc.from === userId; + }, + fetch: ['from'] + }); + db.process_delegation_rules.before.insert(function (userId, doc) { + var ref; + if (doc.start_time >= doc.end_time) { + throw new Meteor.Error(400, "process_delegation_rules_start_must_lt_end"); + } + if (db.process_delegation_rules.find({ + from: userId + }).count() > 0) { + throw new Meteor.Error(400, "process_delegation_rules_only_one"); + } + doc.created_by = userId; + doc.created = new Date(); + doc.from = userId; + return doc.to_name = (ref = db.space_users.findOne({ + space: doc.space, + user: doc.to + }, { + fields: { + name: 1 + } + })) != null ? ref.name : void 0; + }); + db.process_delegation_rules.before.update(function (userId, doc, fieldNames, modifier, options) { + var ref, ref1; + modifier.$set = modifier.$set || {}; + if (modifier.$set.start_time >= modifier.$set.end_time) { + throw new Meteor.Error(400, "process_delegation_rules_start_must_lt_end"); + } + modifier.$set.modified = new Date(); + if (userId) { + modifier.$set.modified_by = userId; + modifier.$set.from_name = (ref = db.space_users.findOne({ + space: doc.space, + user: userId + }, { + fields: { + name: 1 + } + })) != null ? ref.name : void 0; + } + if (modifier.$set.to) { + return modifier.$set.to_name = (ref1 = db.space_users.findOne({ + space: doc.space, + user: modifier.$set.to + }, { + fields: { + name: 1 + } + })) != null ? ref1.name : void 0; + } + }); + db.process_delegation_rules.after.update(function (userId, doc, fieldNames, modifier, options) { + // 撤销委托 + if ((this.previous.enabled === true && doc.enabled === false) || doc.end_time <= new Date()) { + return uuflowManager.cancelProcessDelegation(this.previous.space, this.previous.to); + } + }); + db.process_delegation_rules.after.remove(function (userId, doc) { + if (doc.enabled) { + return uuflowManager.cancelProcessDelegation(doc.space, doc.to); + } + }); +} + +new Tabular.Table({ + name: "process_delegation_rules", + collection: db.process_delegation_rules, + columns: [ + { + data: "from_name" + }, + { + data: "to_name" + }, + { + data: "enabled", + render: function (val, + type, + doc) { + if (doc.enabled) { + return TAPi18n.__("instance_approve_read_yes"); + } else { + return TAPi18n.__("instance_approve_read_no"); + } + } + }, + { + data: "start_time", + render: function (val, + type, + doc) { + return moment(doc.start_time).format('YYYY-MM-DD HH'); + } + }, + { + data: "end_time", + render: function (val, + type, + doc) { + return moment(doc.end_time).format('YYYY-MM-DD HH'); + } + } + ], + dom: "tp", + lengthChange: false, + ordering: false, + pageLength: 10, + info: false, + extraFields: ["space", "from", "to"], + searching: true, + autoWidth: false, + changeSelector: function (selector, userId) { + if (!userId) { + return { + _id: -1 + }; + } + return selector; + } +}); diff --git a/packages/standard-objects/workflow/process_delegation_rules.object.yml b/packages/standard-objects/workflow/process_delegation_rules.object.yml new file mode 100644 index 0000000000..9835bd4dbf --- /dev/null +++ b/packages/standard-objects/workflow/process_delegation_rules.object.yml @@ -0,0 +1,73 @@ +name: process_delegation_rules +icon: metrics +label: 流程委托 +fields: + from: + type: lookup + label: 委托人 + reference_to: users + index: true + omit: true + name: from + filterable: true + from_name: + type: text + label: 委托人姓名 + readonly: true + defaultValue: ! |- + function () { + return Meteor.user().name; + } + name: from_name + to: + type: lookup + label: 被委托人 + reference_to: users + index: true + name: to + filterable: true + to_name: + type: text + label: 被委托人姓名 + omit: true + name: to_name + start_time: + type: datetime + label: 委托开始 + required: true + name: start_time + end_time: + type: datetime + label: 委托结束 + required: true + name: end_time + enabled: + type: boolean + label: 启用 + defaultValue: false + name: enabled +list_views: + all: + filter_scope: space + columns: + - from + - to + - start_time + - end_time + - enabled + label: 所有 +permission_set: + user: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false diff --git a/packages/standard-objects/workflow/space_user_signs.object.js b/packages/standard-objects/workflow/space_user_signs.object.js new file mode 100644 index 0000000000..c01e3da879 --- /dev/null +++ b/packages/standard-objects/workflow/space_user_signs.object.js @@ -0,0 +1,160 @@ +if (!db.space_user_signs) { + db.space_user_signs = new Meteor.Collection('space_user_signs'); +} + +if (Meteor.isServer) { + db.space_user_signs.allow({ + insert: function (userId, doc) { + if (!Steedos.isSpaceAdmin(doc.space, userId)) { + return false; + } else { + return true; + } + }, + update: function (userId, doc) { + if (!Steedos.isSpaceAdmin(doc.space, userId)) { + return false; + } else { + return true; + } + }, + remove: function (userId, doc) { + if (!Steedos.isSpaceAdmin(doc.space, userId)) { + return false; + } else { + return true; + } + } + }); + db.space_user_signs.before.insert(function (userId, doc) { + var userSign; + if (!Steedos.isLegalVersion(doc.space, "workflow.professional")) { + throw new Meteor.Error(400, "space_paid_info_title"); + } + doc.created_by = userId; + doc.created = new Date(); + doc.modified_by = userId; + doc.modified = new Date(); + userSign = db.space_user_signs.findOne({ + space: doc.space, + user: doc.user + }); + if (userSign) { + throw new Meteor.Error(400, "spaceUserSigns_error_user_sign_exists"); + } + }); + db.space_user_signs.before.update(function (userId, doc, fieldNames, modifier, options) { + var userSign; + modifier.$set.modified_by = userId; + modifier.$set.modified = new Date(); + if (!Steedos.isLegalVersion(doc.space, "workflow.professional")) { + throw new Meteor.Error(400, "space_paid_info_title"); + } + if (modifier.$set.user) { + userSign = db.space_user_signs.findOne({ + space: doc.space, + user: modifier.$set.user, + _id: { + $ne: doc._id + } + }); + if (userSign) { + throw new Meteor.Error(400, "spaceUserSigns_error_user_sign_exists"); + } + } + }); + db.space_user_signs._ensureIndex({ + "space": 1 + }, { + background: true + }); + db.space_user_signs._ensureIndex({ + "space": 1, + "user": 1 + }, { + background: true + }); +} + +db.space_user_signs.adminConfig = { + icon: "globe", + color: "blue", + tableColumns: [ + { + name: "userName()" + }, + { + name: "signImage()" + } + ], + extraFields: ["space", "user", 'sign'], + routerAdmin: "/admin", + selector: Selector.selectorCheckSpaceAdmin +}; + +db.space_user_signs.helpers({ + signImage: function () { + return ""; + }, + userName: function () { + var user; + user = SteedosDataManager.spaceUserRemote.findOne({ + space: this.space, + user: this.user + }, { + fields: { + name: 1 + } + }); + return user != null ? user.name : void 0; + } +}); + +new Tabular.Table({ + name: "SpaceUserSigns", + collection: db.space_user_signs, + columns: [ + { + data: "user", + render: function (val, + type, + doc) { + var user; + user = SteedosDataManager.spaceUserRemote.findOne({ + space: doc.space, + user: doc.user + }, + { + fields: { + name: 1 + } + }); + return user != null ? user.name : void 0; + } + }, + { + data: "sign", + render: function (val, + type, + doc) { + return ""; + } + } + ], + dom: "tp", + lengthChange: false, + ordering: false, + pageLength: 10, + info: false, + extraFields: ["space", "user", 'sign'], + searching: true, + autoWidth: false, + changeSelector: function (selector, userId) { + if (!userId) { + return { + _id: -1 + }; + } + return selector; + } +}); diff --git a/packages/standard-objects/workflow/space_user_signs.object.yml b/packages/standard-objects/workflow/space_user_signs.object.yml new file mode 100644 index 0000000000..41788ab329 --- /dev/null +++ b/packages/standard-objects/workflow/space_user_signs.object.yml @@ -0,0 +1,58 @@ +name: space_user_signs +icon: metrics +label: 图片签名 +fields: + user: + type: lookup + label: 用户 + reference_to: users + required: true + is_name: true + name: user + filterable: true + searchable: true + sign: + type: avatar + label: 签名 + name: sign + company_id: + required: false + omit: false + hidden: false +list_views: + all: + filter_scope: space + columns: + - user + - sign + - company_id + label: 所有 +permission_set: + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true + workflow_admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + modifyCompanyRecords: true + viewCompanyRecords: true + disabled_list_views: [] + disabled_actions: [] + unreadable_fields: [] + uneditable_fields: [] + unrelated_objects: [] diff --git a/packages/standard-objects/workflow/webhooks.object.js b/packages/standard-objects/workflow/webhooks.object.js new file mode 100644 index 0000000000..5bde54deef --- /dev/null +++ b/packages/standard-objects/workflow/webhooks.object.js @@ -0,0 +1,97 @@ +if (!db.webhooks) { + db.webhooks = new Meteor.Collection('webhooks'); +} + +if (Meteor.isServer) { + db.webhooks._ensureIndex({ + "flow": 1 + }, { + background: true + }); + db.webhooks.allow({ + insert: function (userId, doc) { + if (!Steedos.isSpaceAdmin(doc.space, userId)) { + return false; + } else { + return true; + } + }, + update: function (userId, doc) { + if (!Steedos.isSpaceAdmin(doc.space, userId)) { + return false; + } else { + return true; + } + }, + remove: function (userId, doc) { + if (!Steedos.isSpaceAdmin(doc.space, userId)) { + return false; + } else { + return true; + } + } + }); +} + +db.webhooks.helpers({ + flow_name: function () { + var f; + f = db.flows.findOne({ + _id: this.flow + }, { + fields: { + name: 1 + } + }); + return f && f.name; + } +}); + +new Tabular.Table({ + name: "Webhooks", + collection: db.webhooks, + columns: [ + { + data: "flow", + render: function (val, + type, + doc) { + var f; + f = db.flows.findOne({ + _id: doc.flow + }, + { + fields: { + name: 1 + } + }); + return f && f.name; + } + }, + { + data: "payload_url" + }, + { + data: "active" + }, + { + data: "description" + } + ], + dom: "tp", + lengthChange: false, + ordering: false, + pageLength: 10, + info: false, + extraFields: ["space", "content_type"], + searching: true, + autoWidth: false, + changeSelector: function (selector, userId) { + if (!userId) { + return { + _id: -1 + }; + } + return selector; + } +}); diff --git a/packages/standard-objects/workflow/webhooks.object.yml b/packages/standard-objects/workflow/webhooks.object.yml new file mode 100644 index 0000000000..360afe7d6c --- /dev/null +++ b/packages/standard-objects/workflow/webhooks.object.yml @@ -0,0 +1,60 @@ +name: webhooks +icon: metrics +label: Webhooks +fields: + flow: + label: 流程 + type: lookup + reference_to: flows + is_name: true + required: true + create: false + name: flow + filterable: true + searchable: true + payload_url: + label: URL + type: text + regEx: ! >- + /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/i + required: true + name: payload_url + content_type: + label: 请求数据格式 + type: text + defaultValue: application/json + hidden: true + name: content_type + active: + label: 激活 + type: boolean + defaultValue: false + name: active + description: + type: text + label: 描述 + name: description +list_views: + all: + label: 所有 + filter_scope: space + columns: + - flow + - payload_url + - active + - description +permission_set: + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: true + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true From ab4d7cb8e6cdc6cca277cba2110909b4fa96cf9f Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Tue, 13 Aug 2019 16:40:05 +0800 Subject: [PATCH 036/154] @steedos/objectql@0.2.6 --- packages/objectql/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 04b703e03b..6c98b2f3cf 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "0.2.5", + "version": "0.2.6", "description": "", "main": "lib/index.js", "scripts": { @@ -20,8 +20,8 @@ "@salesforce/ts-types": "^1.1.1", "@steedos/filters": "^0.0.13", "@steedos/odata-v4-typeorm": "^0.0.24", - "@steedos/schemas": "^1.0.0", - "@steedos/standard-objects": "^0.2.4", + "@steedos/schemas": "^1.0.2", + "@steedos/standard-objects": "^1.0.0", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", From 41c18bc4f1ebaf1477d8a3bfab36fe24b596d387 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Tue, 13 Aug 2019 16:44:07 +0800 Subject: [PATCH 037/154] @steedos/core@1.3.7 --- packages/core/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 59b4a8053d..d625363f59 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.6", + "version": "1.3.7", "description": "", "main": "lib/index.js", "scripts": { @@ -19,8 +19,8 @@ "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", "@steedos/auth": "^1.1.2", - "@steedos/objectql": "^0.2.5", - "@steedos/standard-objects": "^0.2.4", + "@steedos/objectql": "^0.2.6", + "@steedos/standard-objects": "^1.0.0", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", From 6970a360035ea152daaf69deb6aca9067cc0d35d Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Wed, 14 Aug 2019 09:35:18 +0800 Subject: [PATCH 038/154] =?UTF-8?q?@steedos/filters=E6=B8=85=E9=99=A4?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/filters/filter.js | 134 ------------------------------------- 1 file changed, 134 deletions(-) diff --git a/packages/filters/filter.js b/packages/filters/filter.js index 26a8969421..14ddc74d8c 100644 --- a/packages/filters/filter.js +++ b/packages/filters/filter.js @@ -182,136 +182,6 @@ class SteedosFilter { }; } - // private isUnaryOperation(crit: any[]): boolean{ - // return crit[0] === "!" && Array.isArray(crit[1]); - // } - - // private isConjunctiveOperator(condition: string): boolean { - // return /^(and|&&|&)$/i.test(condition); - // } - - // private serializePropName(propName: string): string { - // return propName.replace(/\./g, "/"); - // } - - // private serializeDate(value: any, serializationFormat?: any): any { - // if (!serializationFormat) { - // return value; - // } - - // if (!(value instanceof Date)) { - // return null; - // } - - // if (serializationFormat === "number") { - // return value && value.valueOf ? value.valueOf() : null; - // } - - // return getLDMLFormatter(serializationFormat, defaultDateNames)(value); - // } - - // private serializeString(value: string): string { - // return "'" + value.replace(/'/g, "''") + "'"; - // } - - // private serializeValue(value: any, protocolVersion: number): any { - // switch (protocolVersion) { - // case 2: - // return this.serializeValueV2(value); - // case 3: - // return this.serializeValueV2(value); - // case 4: - // return this.serializeValueV4(value); - // default: - // return this.serializeValueV4(value); - // } - // } - - // private pad(text: any, length?: any, right?: any): string { - // text = String(text); - // while (text.length < length) { - // text = right ? (text + "0") : ("0" + text); - // } - // return text; - // } - - // private padLeft2(text: any): string { - // return this.pad(text, 2); - // } - - // private formatISO8601(date: Date, skipZeroTime: boolean, skipTimezone: boolean): string { - // var bag = []; - - // var isZeroTime = function () { - // return date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds() < 1; - // }; - - // bag.push(date.getFullYear()); - // bag.push("-"); - // bag.push(this.padLeft2(date.getMonth() + 1)); - // bag.push("-"); - // bag.push(this.padLeft2(date.getDate())); - - // if (!(skipZeroTime && isZeroTime())) { - // bag.push("T"); - // bag.push(this.padLeft2(date.getHours())); - // bag.push(":"); - // bag.push(this.padLeft2(date.getMinutes())); - // bag.push(":"); - // bag.push(this.padLeft2(date.getSeconds())); - - // if (date.getMilliseconds()) { - // bag.push("."); - // bag.push(this.pad(date.getMilliseconds(), 3)); - // } - - // if (!skipTimezone) { - // bag.push("Z"); - // } - // } - - // return bag.join(""); - // } - - // private serializeValueV2(value: any): any { - // if (value instanceof Date) { - // return this.serializeDate(value); - // } - // // if (value instanceof Guid) { - // // return "guid'" + value + "'"; - // // } - // // if (value instanceof EdmLiteral) { - // // return value.valueOf(); - // // } - // if (typeof value === "string") { - // return this.serializeString(value); - // } - // return String(value); - // } - - // private serializeValueV4(value: any): any { - // if (value instanceof Date) { - // return this.formatISO8601(value, false, false); - // } - // // if (value instanceof Guid) { - // // return value.valueOf(); - // // } - // if (Array.isArray(value)) { - // return "[" + value.map(function (item) { - // return this.serializeValueV4(item); - // }).join(",") + "]"; - // } - // return this.serializeValueV2(value); - // } - - // private normalizeBinaryCriterion(crit: any[]): any[] { - // return [ - // crit[0], - // crit.length < 3 ? "=" : String(crit[1]).toLowerCase(), - // crit.length < 2 ? true : crit[crit.length - 1] - // ]; - // } - compileUnary(criteria) { var op = criteria[0], crit = this.compileCore(criteria[1]); @@ -391,9 +261,5 @@ class SteedosFilter { } } -let formatFiltersToODataQuery = (filters, odataProtocolVersion, forceLowerCase)=>{ - return new SteedosFilter(filters, odataProtocolVersion, forceLowerCase).formatFiltersToODataQuery(); -} - module.exports = SteedosFilter; From 964a4f80f08fef54d18975a1488b90e8fa553f1e Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Wed, 14 Aug 2019 09:49:51 +0800 Subject: [PATCH 039/154] @steedos/standard-objects@1.0.1 --- packages/standard-objects/package.json | 2 +- .../workflow/instances.object.js | 184 +++++++++--------- 2 files changed, 95 insertions(+), 91 deletions(-) diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 3b23ecc636..b3fbdec956 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.0.0", + "version": "1.0.1", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/standard-objects/workflow/instances.object.js b/packages/standard-objects/workflow/instances.object.js index 9131d187a4..4a14be5635 100644 --- a/packages/standard-objects/workflow/instances.object.js +++ b/packages/standard-objects/workflow/instances.object.js @@ -18,106 +18,110 @@ if (Meteor.isServer) { return false; } }); - Meteor.methods({ - getRelatedInstancesOptions: function (options) { - var instance, instanceId, instances, pinyin, query, searchText, selectedOPtions, uid, values; - uid = this.userId; - searchText = options.searchText; - values = options.values; - instanceId = options.params; - selectedOPtions = []; - // Meteor.wrapAsync((callback) -> - // Meteor.setTimeout (-> - // callback() - // return - // ), 1000 - // return - // )() - options = new Array(); - instances = new Array(); - if (instanceId) { - instance = db.instances.findOne(instanceId, { - fields: { - related_instances: 1 + try { + Meteor.methods({ + getRelatedInstancesOptions: function (options) { + var instance, instanceId, instances, pinyin, query, searchText, selectedOPtions, uid, values; + uid = this.userId; + searchText = options.searchText; + values = options.values; + instanceId = options.params; + selectedOPtions = []; + // Meteor.wrapAsync((callback) -> + // Meteor.setTimeout (-> + // callback() + // return + // ), 1000 + // return + // )() + options = new Array(); + instances = new Array(); + if (instanceId) { + instance = db.instances.findOne(instanceId, { + fields: { + related_instances: 1 + } + }); + if (instance) { + selectedOPtions = instance.related_instances; } - }); - if (instance) { - selectedOPtions = instance.related_instances; } - } - if (searchText) { - pinyin = /^[a-zA-Z\']*$/.test(searchText); - if ((pinyin && searchText.length > 8) || (!pinyin && searchText.length > 1)) { - // console.log "searchText is #{searchText}" - query = { - state: { - $in: ["pending", "completed"] - }, - name: { - $regex: searchText - }, - $or: [ - { - submitter: uid - }, - { - applicant: uid + if (searchText) { + pinyin = /^[a-zA-Z\']*$/.test(searchText); + if ((pinyin && searchText.length > 8) || (!pinyin && searchText.length > 1)) { + // console.log "searchText is #{searchText}" + query = { + state: { + $in: ["pending", "completed"] }, - { - inbox_users: uid + name: { + $regex: searchText }, - { - outbox_users: uid - }, - { - cc_users: uid - } - ] - }; - if (selectedOPtions && _.isArray(selectedOPtions)) { - query._id = { - $nin: selectedOPtions + $or: [ + { + submitter: uid + }, + { + applicant: uid + }, + { + inbox_users: uid + }, + { + outbox_users: uid + }, + { + cc_users: uid + } + ] }; - } - instances = db.instances.find(query, { - limit: 10, - fields: { - name: 1, - flow: 1, - applicant_name: 1 + if (selectedOPtions && _.isArray(selectedOPtions)) { + query._id = { + $nin: selectedOPtions + }; } - }).fetch(); - } - } else if (values.length) { - instances = db.instances.find({ - _id: { - $in: values + instances = db.instances.find(query, { + limit: 10, + fields: { + name: 1, + flow: 1, + applicant_name: 1 + } + }).fetch(); } - }, { - fields: { - name: 1, - flow: 1, - applicant_name: 1 - } - }).fetch(); - } - instances.forEach(function (instance) { - var flow; - flow = db.flows.findOne({ - _id: instance.flow - }, { - fields: { - name: 1 + } else if (values.length) { + instances = db.instances.find({ + _id: { + $in: values } + }, { + fields: { + name: 1, + flow: 1, + applicant_name: 1 + } + }).fetch(); + } + instances.forEach(function (instance) { + var flow; + flow = db.flows.findOne({ + _id: instance.flow + }, { + fields: { + name: 1 + } + }); + return options.push({ + label: "[" + (flow != null ? flow.name : void 0) + "]" + instance.name + ", " + instance.applicant_name, + value: instance._id }); - return options.push({ - label: "[" + (flow != null ? flow.name : void 0) + "]" + instance.name + ", " + instance.applicant_name, - value: instance._id }); - }); - return options; - } - }); + return options; + } + }); + } catch (error) { + console.log(error.message); + } db.instances.before.update(function (userId, doc, fieldNames, modifier, options) { modifier.$unset = modifier.$unset || {}; return modifier.$unset.is_recorded = 1; From b512c792907d0d376c1abdec167f9d93c3859a8d Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Wed, 14 Aug 2019 09:53:08 +0800 Subject: [PATCH 040/154] @steedos/objectql@0.2.7 --- packages/objectql/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 6c98b2f3cf..84ba51e820 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "0.2.6", + "version": "0.2.7", "description": "", "main": "lib/index.js", "scripts": { @@ -21,7 +21,7 @@ "@steedos/filters": "^0.0.13", "@steedos/odata-v4-typeorm": "^0.0.24", "@steedos/schemas": "^1.0.2", - "@steedos/standard-objects": "^1.0.0", + "@steedos/standard-objects": "^1.0.1", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", From 21787c07a8271c25591d254866c40bb5055d3c55 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Wed, 14 Aug 2019 09:54:20 +0800 Subject: [PATCH 041/154] @steedos/core@1.3.8 --- packages/core/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index d625363f59..c2aceba2f0 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.7", + "version": "1.3.8", "description": "", "main": "lib/index.js", "scripts": { @@ -19,8 +19,8 @@ "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", "@steedos/auth": "^1.1.2", - "@steedos/objectql": "^0.2.6", - "@steedos/standard-objects": "^1.0.0", + "@steedos/objectql": "^0.2.7", + "@steedos/standard-objects": "^1.0.1", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", From 1a9d0471f1158f94293df957a22141bf56ea7233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 14 Aug 2019 11:25:01 +0800 Subject: [PATCH 042/154] =?UTF-8?q?=E6=8E=A8=E9=80=81=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/assets/notification_list.png | Bin 0 -> 48649 bytes docs/assets/notification_unread.png | Bin 0 -> 6298 bytes docs/notifications.md | 39 ++++++++++++++++++++++++++++ website/sidebars.json | 2 +- 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 docs/assets/notification_list.png create mode 100644 docs/assets/notification_unread.png create mode 100644 docs/notifications.md diff --git a/docs/assets/notification_list.png b/docs/assets/notification_list.png new file mode 100644 index 0000000000000000000000000000000000000000..c62952cd6a6af103afdf3e2ade7ecc57a9eafe11 GIT binary patch literal 48649 zcmZ_01yGzz6E2KvaQDS61b26LcXti$8r(u~3l70;f#4Q2*y2ub4-#DOCOPNauj>9k zRa?6|+SAk1Z}&6L60M>nje5*K$)S{x|)J(ejd&YbE0pCmp0G~4q z41VCF|L70K@^2sPK`3NC4jq&G_2e^C+T{O&%T=4{szuHB^*RL7OU~{+8#FW}{KwoJ zwVWJei+zYCz7beSYLS~a0R5JZVu)`-kQTAnkR%8e8<6!g^&GMCnjwOQ~pGAl5fQ=`uSSuwMn{OXa1J|>K@u zj8OqNxIlZj2*-US%vj7#RO_cfu_)slD+d_UUp%ZVb?c9>uZ@Jz(2rDb5#3m?udkg4 zudm&)Ave(5CnBg2R9?0};_NZeARwS%Y&CS;brco&%$*(InOZoTS-$gjbOG-Z1cZP$ zANZrArMoG>+tIP2BATDRdN70OHQBmH^Io9Pd~tgpdFL zfPkxo6`z`f)IZ(9-vlXa+}&OHn3=u2yxw`SzjJoAW@hE(23ReXL54;XIbC{ zGXJh&W_`!P{QuR>-PY>=r`zwEzuo?<>+f^|zX#(}vGule(3P-tv~+RDTT8H#eyc)=Re<^bDf_3r0P}A>{g2-M zZpxoh@U93U2{8Y+!$L@0{A%C>D*_=aA*$gGd146fuc3J(BumqID<*~ngJ75?*917C zs0nrSkTmpQs%&p-Yx}to`jeq1pt{oDaAAERw6ZWN_=;4I4)L(__C|PvvO<#gbfLS!!-+ zQ56qh+I8zhIbKj9UdU!Kg(@j7zB0Y~%#Blc%4;<(_FGy=(H{r^6*V=n?`cd$^Yflr z{#&vNHIRZ?lHvg<)%uND0s^ZCDe6iEQBhH(O=pglX2SN;z>U4Ql3gCT8lf4Q5IXDq|6 z#G5trY7K=88(Kte&3c35U9PtV1bWi^qrbljC=OGjAEPA5wO7L(%R=g&$jEzV^R z556z;BVJ1inDDd}T@9#K*Iy?W7j-VLuS-Bh(lcLFi+op&2oazrC?GynS5y=rs+X!M znZi1*r^>GzeNM?j7iCQf+1cJTP+jMi9KSF7!}vp?222O4c+=f$} z57S?WU`*ac(D477Wk;Y{JSDil`nAk-Vt$>UwTywSNi0zmDWR?soLEAe+tDq)=~1NR z8xx0@~(m;sHf*I74I_p1O-!MA2w<`B`z*5-l2WOjGxDOB`ii0%_qYM zZq>ok6Gojmu3>FiFb?WmIQ0v%-sESDU{4KZytKp;VHnp#>#a@>c#BTOp)WJvDo%N~1$VIHM=0`%*IX?Bl#Qi&h!F&>B1}ksxQMcU!&KKf@9K0i?{YSgOm&%FRdv@C z{KHW!HZJaTWo_4TxCLncv!LIsVD;{`C9(A~;SlR*{+Z?$50;6}+w~Q2HQ9X4a{I!{ zg+o(6pYGeuLu|vb54!_t$U=0GAx*%hWjm+Fs`BzohRO=2+o|=L#xN*W+`(^)HE9W| z25XI1v|v9Ji35qQU@W^=r?kj|KQ^$2$Po{VjO(tgXxp@=)u0ZU^_GKIn)&V5TaYwa z`CAFkw)e6ZZ63#MSLT&f@+CspBFO=Fn~{h#=6<1mU_G-HI0YdhkQ`gYPY*6z%eVkw z-8{=6f{Y1;Y2phh`rd{L7`8Y`7q%7T1d>GA@wXP~=);#lUD|qr%=pf#B{9bEo~qTc`8YT(rk3XB z3j2@r{Nyo^(JpusuYH}#@DUsy?&vg!chJqc1=1*xg@e*de{r0s(=5gJ0I`DFYb}r!K z+hx+|>rOkU=X3bi!0UGcfWFXaJ25~C?%R>2wtz&6rQs-a!q1q}OFq;ZYDS7E@#9C{ zH}qHsIWx2%w94k0ZsC{DqYM?i*(vGMF5C`EWx6wEbjfTF4qMkPfXiOiDfi7=kCv~d zR~Z4kX1Yn}j>hOI&7nP}QaxYhZ1N1f)FH@4_+1Bc-n{1B;4L5H3ExdzS=I)4?PgRK z_0Z~PR*9%gT|KCa_zr&gIg(7LLM;LBmcFQ0yLM@4 zGS(G?GLu zTo?H|_#OVKfyXX{=1{IsvRhAlJ_!gQwrGPY2zBA?J>tb*!T+96;wC{PzC876{cKgisheBWiY9*brTjW;>4jw>RH3qBOtoncz~~>uq8+w# z(J68jkW++GlN*pEmL2lWdvhwQWC?PG)f|SKoPXBGP038LC5k3wu_$l%c!*%xQL@KI=Hc) z)U>xSJ=%RGLGpaOxa3f^&_P$sPLb;Ww5{^n%CX*&4UZCLnyx<;;J^Mso! z!a*U&T=QsDH3p&QtC_Vna)+iN0T6CLKC`xrg#{Jo>;mc0Xgp^_v(Ah0eEgiXD5nWC*_a4#zvM{fXSliXTtj*i@lYTQSreZOq#kfzHpl z1m8t_?hf#Xt96Nve-LMJJsiXb(;13>Jb(^}$7e0%o;jGMAtw*HWU<7Q%VCnlh5HKUO zDg*pFGtG>X0asRIA+vBgH@EU|Kuv$?yBd)Uz^!xl^L$~e9@g8VA01iv=$;z3K*`qkALO6%u z5fY1-OH+B0>#o-Be!%9vr>-DXm{@*8GPqPwaXdzZ3AnxZq4R5+6u49uh+^n5r^(|H zEmD+bLYFQ=p9_wE$RKU_AEX!V#F6{LmC?S7R*lC+2Bl5JN96$5cIiBCbf?lQVesv- z1jYuROXdoV%{N%)%pEdf;>`?@9oGhRCYRjMcXD{$a;gJ$j>v~x3=D{~UF><@hx4Mn zS2LiquWr)N-}q*=fp6#NMJqvNjyTDFYy7=64#U!ac*HJ)I<&+}nM|2AiM;CGkKvcA ztRxd>(^t1=u6Z-w*Y{>Hwe_5@*}WO~E2%yStjr6~u^a+9IY>~UBCnJXOv9g>OPZ)` z1f|2MXlcD3)l8TPmmcna3rtuvh^|94GNoz0csw+(vutNt8_)RtV)eX}a5n^=wC>S) zLZ`NNfAQ9HEo-iW{Lx_!$G?H{Q<2R~jX?tHo`X{BE;bpK5+Z9aLs@<2MSk@=o|O({ zbf{7}Mmw9Ow$9NOWW9tf6xgl$z#A2Ke7DP;=$p1sQQljCc%2? zhQWu4S=RZp@zx?6$;gX1ovkOAadK+vaKzd8iptTs zqELjQ{zZu#!hTRcX~(y+%(R+yMg5zddY`Z5`aDNVW!XuZ62`TQk~ldK(DH$16i~J& zQ#$hK*n@q)H3cRA zm8w;(Cn*CJbTNRZzjk&ww;|){}wegoCcXKDmuEpYwg%x;^8Qmy(*70 z>%ec#7LAZ_NZ5eNT2Qb^$~mA`xVGK`;c@+4$5D$wobJAZr3Y7X(~@E4p20U30{Ht! z72O`#Gfg;NQ*#!FjN845yC|kXMalE$sJ2wmn6j&FVahHWY%6oaGZjdmy9$ zf`Ylt&Kot&EZ-+5!3i}Me0F+`1qWcPczx}_%P zz2qCsm0j{!bz^Fdsq{gV#9bQ;=jA$299US`sj*D<$K~p^8#BIUxZm(90}WA9Ra;|@|eE=V}qUh{UMR=lmSDfPngj^X>g z5=2B;vbOyZi*a%ZZ`_Lvv(xC^F1+ztg@{eb39BjHcRv4tB8KRpWNuW(Atgi=>NHQ_ zQQn+y3L11K(h(wj)N6Jic(f#DvN9=hsd2X91Q4A=>v19NTW)ZQ}fEtN#!>*-;$K&K~ zQM2_K4+iM_3qIbSX%mqXk4+TZ?IZ!2vu_K=nbqB@%GvkhrRKjZenIE+F(dQ=&Z$p? zkZ@#B-qlMj%*lHbKPQXUn3L;CBaHk8C(vOM*kOP)m9kpGFCvusW0h@fSvRLEWoa2W zczBgh>%+fLL{V*uX$RmShYjOq6Kclpis9a0CZbm-i^y{R9l!(TB&jO!XNXL*uM_k= zU1kB?WecSn)*pz7g?x%+#Eg)IQhX*{m*85mO|T2YyK<_9CH#u(Tl6m(|FcVd%X`rt6EsX-61P} zeq?*_`zmyum>Vc2E>6$Ot6O4sqHgU;c#8~jT4|2|=*7mw6kk|a=$%dROX0hL zIX}li45Jb5Z+_|*G;+>EjxkYH#W-DURo|5)Ww%mrZf{tb*p)z5&f0Qp z(BSdeBK{Qq-Yy^jAmIn}S7%fHJ5opyCM5ZC(WQN|Eb{OD1RxNjAY93_%!1B;uu1hp~q3o~q!dQkTXM7!*~Pk&!85YyHPPx}ZQgo=P~a;xKwV z)A%(a4}YJL2s5W}NVu3uTXVlW&|vc+&RpDpECEGCL`?ggbt`jkxMQWJq)as}7*)#D zwYFw{4!F@pvJ?|IK50BGr_C$QcIwJh61<*$m)~_gudkt@Bg3dwl|MbL788@8h9e~&D@PYZ>~W3OI;ib-KTbks z@o{{7$3LPFD!VE4j(W{d*T?;ZMEN5cqhX$aD$XsrFOhKRT zyV7wE@NrVeCjS2Z2LtIw;NwaWJ~Le+Kli>j6!z+rdt-_@!zRyXk3j6F%qo$PKhMC> zP$l2-d`(GR9gA8Hy?$vbnOUche;dCS4^63xnQ9O(!{&=#_0EkP0!(K=C zkrV_duhO;7Xsvb5h=`#(y|$$+b!j{y=L8%`#M0H)B!7XmLp7T0p{|J{#xlty+T@+& zjU8PCg!tG>{kJ&E$<&gM_TPqTF694#s01=3@-P$J& z8Sd_YVA34nj29kSrRy~8P4R6!#{y|)Ig3*^tt95CH#_k0x8G7k>?|J-1@nlDjdN{i zmi_hyW{_y|Cb=I~#4=i@jb5KjaY^3V7wd0~7gv@_gT#^HDib^D6XS1-PJ>94(Vn=o zDWDXtHskyGHJ=^S2?QHCHq^M@E~j_hi4%4<7e+bpvnTkY+7_lEY0=gi3#J5VM?(cT zBp2>C347Uv+!wz(3Oqko8kB%up8F&`UQN45367=rKciRF*b}Z8$N|&y1aoDZLr8s} z*%`{KtWM_@n!j`X)W~`Z7mt9d0pm|4gS#Cz0|x`r($oa`opna?(*FjSintQV1iV=c zU3y_Fsy-_A!QY&<7)VP>mfNpZ)z+467ge_U8eA7e-JuDS;lniPJWuvv z9z|!QpJI=L46+6@Tv)Hdc&PQjMlUFKFBUeV1G#avKBhhnEN@#<-=)-;^I;ElL z!TJ0c&ppeTc1Jus1~fR9vGP!V`Fq<34bxmt?@j*5W$M{^+Nm(t&@kcPi(=*WZf6rV zdh}Lr@MR^{uX2e@Puc!PdxnI}g1(Rh`$*EcmR{9^NPpR8q}kOsLKYKqP-1P-!P9b= zom@H*(NuBni9cOcrxqdbNX5-zBs{rKGkakX`;k4d@sim*W#eY)?AM{NaQ34#>{T-1 zY0=SxPpkSPqxu~0%j%>ai$Vvp@semESq*au?P7`}c1F*2PWhf=uERqy;m5X5*%8T#du(>Rj9bJvH zm!OONt0^KFT%}Wlx>nCp-X1lqpWAq}9*3A8pj)?3M31}?v*XAe5qd2}Auyn#MG};a zK2<3IV}-tJ-L9Lmkz(!^DS*zqfA02_ka=m-pL(f8;l-O`F~RKZf^HqO_U{@w+Y?N> z!q0SKI|0?yD-0Tsc)Y=fZMu8=A@i|67>ar(A2%ORFS*vUxrI_hexSpMY+||25PCch zi8E7nZ?zWh&zCnK1+wb;_nKJhX~RCB4=uF+Vn_+ZFVr^tt%1&^ezeDL+liGcnpO2? zhSgo`LsmQV$+VSzQ-NiQ*;a>pnh7jIVb85a(%IvHG$L1u-@%p$Gls~H(|7U)iH~R& zry+zM5+>M%;p8m6g~U|0DUCYnbC-j2<=Ae=d~Lr@yi4w->Ra(&RPMO)9=McK6=hM2 z0mhAk9TY`!w$03ZEW4!x5166F#E2Bp+;zIQoyU=&ua8`eTm9dmDZ-(vLQ^Iz**pf_ z9R$}qPr|y6<~nx{H%sdlCoE!z&HW$b<3f~u-xN*W$YdqJ&+_S^BwS>qq)6dr0$uQF{(nZ2S0238AR*^J>AUM#v_b%ye3hvYzgwJU+@!``ve9x!7Nt@Ab&!CmXs9mr1V}sE?g* z45KKTPd-FT^~LR;@=wwr2xG#u-v7Z8TLMtzkB60~Dupj|F3SZO)B)08llqvFHi(OE zl^bIsrG{vK|1nwF1QETsu%>9uz$ov5UYfFOoO6Tmi(TPBhriWGwe3}Jo7%&N^s5}f z!H#7pD)_!ZHp;g%y$0v5=N#}R z8@1BQRCNT^+52?5Ffp%PY)0AK#b6+CzP1{=v)(2K*Y~zKt4zkGqiK&ued9qozi!T~ z>yv3tmMT@T$?s;2^lYmI2fO=t;UOFc)kXkwhKw;uXPbE9pSIXXgOg49eq#q-=DpuzSAop%`Ha#2!N zE^PJ`{m%WY1EvIpl6;V}_Eepq^6J_65ShB4g}3kxfJh8dM`GHk6Q)$eqO3JO1%aLT=|8NRup^8H~{zPEQ#?;SXHcaDnFJ z;+hWcSid>-S}%ZMWWw<{50SlZJFab^YPj22FjjxFuT0AAWT0Hi;PEHpI>3dr=>X_e zqwHO{5@kdd5KzXZD2>>hAXu#zBRI?J^)uYm_TAc(6k9lKpYXD2EFG2ARp{(cr4NSx z0wgdYl;OcX0~bkzhJ!f&5_1yX!+fwwykOQLRsJW-9HuaFeJu0gr_@&5E~3-Erh5MK z1pJd4lR;`wo??Sw#T+kSbNZ&UNhUP|8vw zb|}QcQUvlEb!JaH@h*OH;k`mVf$c#Nov9(%5Z$XJY!(o!>RFWS_&qi66D3xt9G*0p#)ByaJ z&kn_@czV^pZpBdLRFu5PmxF5?X#;wL*vS5U`AczWwA4U`jRg=MCH6AE30~jE-iWc4 z!`Xb_XEgP1+78Z@XDJ|#&v5rfIx4ubIKNdsn$Yd(>h7fj4%T}!dS!n}7^ZpL22^k2ClU_$*@>83Xj3$M3eMS6uKcvJftE|sPKn#CXV)5Ms&B!AgJ+WzF*w>IY4 z4LBu}&8n02*8ZgmwSUY<1f7QlL!@-TbKSX9ztC|PwyAooetm8Jq{r5KS*8LUu}^PN zRBW63W!v&#u;XmGK%i-(`Nil3YMdOB1q-wme4iD9`msg`)JB*1o!tN1OM@K{BQurGu{yrtr z7*I8P@2X~(J}sOOgK+18AgA@8)>d-b)i*Fo7WFQL+@}_emyg-J#+0$`88L~4L3(VO z|G-6nDYDg6qaVdmD-(O$XWq`8F!MG;-!h}P`)uv?~cOlclsbZ2 zh_pPSr_Yg^mNreDZXo8h5x_m3#VNnWojC>-v zCKS*8>C-2hs{_zr;k$kOW8jQZk?_+d+Ew<(Q|b2r^Im1)XNlLRec?ke6^#vdX0_Gr z5KIs(a+?%vQRjV^_EuM{y85Ou91IwiU$k=wXw=!x(6rqw+aH4IX@!VbG>er|-4AoM zHtQWe?%=X%Fh$D-3}+f1DSZ~mj6fr+8TIKov!mkS z;Zeq>kC&8`gpGk=+M1f1tJt#UNwntwYy5-Xozd&r>r0{%&nApK37A9(6A}^)@zgl{ z;m)3moHn9uW`g3e+j>HvH<*QFCCes29IJZW^J9!013e$x2h43TdU~#umbK&aemh^T zX=;SFu4u<&c=__eQm|NKgQbJ#gIz|=5r^-Wz&srV{T8PtU}a@x5vTq9IcbLn(Cf@d zo>vLX=#;g!wapz}4}5g=1;eLImVlDRNud?jPM1xw@4N`KU~Zz&!vUovUm6jrQsCpt zh9~(lnC!XS;+$79_Zv&4rl#IGJd_2zw~tOtEc^HoT{9;yPZ>;IZLARk6H&F8;SHT! zdYM{Q#W*=Ro1MxVQc|!ZC03@UMDSbc>p@OrU+ewvU9))J7gqcNCkQjYA<*ri#1>#L z@dajaH16c{ZTIV%>&C;*)33=hF`(DFPuci>i<94^;O*4)g0VAw*Xzrp?e1vm)k))I z1s>s3d+TvcI~@ndtQtHmbH{lo?6DH}&TnQd_#jGho~EeJNfnt1JjehAWqQ4N^6+8w z3^yc*nokM^9~*3BT%qP>QA%Ped?KSKY7Ai7(f+K_0ekU^uOBi0<`nNVpCCRFQkFI0`3g z(K6kzl%rcR7FX5Ml3MV7C)vFh7VpbDp{H~4?5zZhN57bOuFzR8^DOz+?;Mnf9|T`*NgDP+IMtr)pHOM3q|A zg}>Q;bC6OQv@lvw=+&y{n63jj+Eb5b-L((*FOO$n)~Zye`;QWtVo|Y|@^)UQ1ItRcKv9&uAQcC)4-kkuNdXL-8q}XgozxQSoZgJdwVzkxNjo z1qBsVOAqxSxEZEzd~~!y1G?8P1n#OIP53}w6V1X@UWD|<;$W)aYJ@iL%Svt61B2+} z76$Kt19>T<9K-oh91N{Nx<9iwY zPwn-%WMpK0@RP_P^9g6r#qc2n8+uZ4_@;&uQ(yDEw-9}Qw(h6QK{3OypoyEo2j(FOg!NQ$Cx0r4<<3Sx%ex2vM>3rab? z8cCC}GowVA(CJ5+A)-B10W_X$aB)*Bj!VX{+1QyXM$A~Hrm-(^ zx$H5xt#D0@f%2fRXan6z?q9F&rabd;`fsDi3~U7MSm&3ipAzmw;+BbP3aWc2qb8$i zKYtM#w4be~26%Kph$KUeh&_IA#X;40|^btCe!GSULhjD=rIZD zVJ+OoN!v64RM9IqM~-~Krb8NVzngyaYnU?e%hnKC(5f0&(2KueD(+hylMA;E-{b1h z$hd44?f$A-;WRic+Nmh=I&=|{1oXRb>#+>e8M6Y0b24<^^Zwg_$J3UXpqF1{$RmZQ zzzZ-JU6Um1U6;KMtV!QIb0nBg+u$4GeFc)%6#SEvLnDU_LujpMkl6D;Zykj(jR^*1 zZ}iOC+-I5~p}sjUdWevk&r-l9nY-9NyGvRdp4lk}Zg|q@z!1aU-Saq2hqddeL$%s9 zR?N47>HqZ1%*xk$$HyxJWRXOASP?-OWKSyHcU!S(Kggf%!q7K|u5NCAaP>FcAW;{1~U$Ow+@H2MwcHNLA%j4CR2^?KK zCqe*q9kP-&2j7i$p$-vN%SX?1M(7G?^5dk9JLbeSZLNILuH;=PPnIjay z*K2)0B>bXkdmN<|!3BrepU9%nf}V1iPqjwsVKN_nk9oPBD9m8yA_4po1d_y~4-IC< zgh?dxjY8F%h7>m+jH~B$*35hjmJuOEhk5t`ElR~X)~?5{9UdVppZ<>8KQ6R~MG+V^ z7$JoWl0bN6JdZfQL(bW@lzOzhFoVitF`{xn1bWz{@?jDY(m#FkW`!`_l9Yzee?D~% zQa8-;*~@HhJJPUv?!p+>GeSZ)MU{uE!t;h7SxT%i?1%+q`X`g-&7Cy%xZB6Bs zefE{h4dEf5+G1c}cxxrAX>$#)M>s5rJoZ&DIg}UgTS;wGt?ELP$2a7`+Ms894`eHI zn+WueJP0#-pOTa3w)jRUUdD(v5G_Q^+o zbTIyy)(qxg0fI{e_Y-dl>+4B@4nf(M3pbv{o-grd>>$)c_cGr8P8bn|w+O01^`j}OYv{=P zp2&9o$`6BRiMt59U9BbcHJEycq0Z<1h@j)Q1)PU$9{q!4A6flB>NJFrZKDa@iQHcU zBPzy0Hb|JWA)H^~>di9|EWlyTQ52b*L~Y-hwemS;aFm{ed|1b(^PG_O$F~ZV2xG2P zQ!lG%rtnZRgj>r^_DtjFYUa!_xEAJT>vg962kG5U)P_F0sTIsHwB!fK$2Qjj#(t-q zIF4~hUyvCg6o7z{uU~m~?FX}rPSpeVGOe+r$1~Zb?;A9So}}%6+T@^Bi_|quwCwDJ6EJ*jiG@??~DpSM|f#n3G}C6kf_H4A?256UAC*f zjZ_1z;}3I5GOiFWw|yMefZQzjUun#@m?Q^EvK@8luD%@EA;wUG0lEK*DVxODYm5C)!8cMI;{PJDFHR1y;FUz#wSh=pz5T9nZ=K*7?MN+yH-qp~N`SiBk z)$=*5P*HN}UL;BNW=ys105bj4I7@^=u^+17u)lthdViTMpFeDpAe6ES9=%9b&%XHx z?lnZ0V9&v(?R-Qmn5hcsyxZ=6E0%c{8C3>1P$wfhsTc|hiw~%vuLZNVo=N%Ax#e>X zRm^D)BiYNGFl;XIzP~K)?2R7pUSS?6^QGiB!G)L96~6Y`Gq>H&UZhWk6WDkW{D%f8OZ*ondAF5ru)_@~9IvG0L8mE-hPg{HC? zf}<>!{+Kqx=r+28!4xpVB3%zhjPfklHKN0ObZ`sk83`UhMj+wSRG)S1E;~4;M%S@} zW>RMs7v)EXd}>=Jj$tbjnVEmlGH_f=%YHFYQSScyR zVKd0pu{g9XfOM$Fg=>?TWg;rl4C59KR|Xr=*Q>wdQFtnOq=P(n2@^A)sL3{C2=|CviD2?{MU5!!zhR3#0?UXpASo3d-Md-1-VKMWyv;j6v;5nW$rBhc-2TIU`6cQ21h9?5k!L#oyW86n)ds zk3VXOcqa3@7a`TQM%-@Zuyw`jd3bSoRc8Z~DapXc6SWoJPBq54kKYUmpTr@v7tO3i ztDJvpJwd2E*K`duTT{9gsNmxkHM01Rw$?)ml^=cM$*otv(F&krwo*H%F(_|V_@+>8 zML@dSi=p+ILtr|rP{;h*e1;`Tdj@l&ph*dTN0job6a7j}B`?q7qOE4wh1~7Q69)e; ziEs~#+mP1DfAajKp=2R&Wi z{l(}22>2KXCS7h^ub;RZ=^A8kE}MPnF~(wvs|^reb_7P^tI#7|;7pJ~Vqt5aHslC$ z+@Uf*gTYVwoJ5eqcN2$`ZNt&>FI@Xg>I{useDFz|+j4E!zb=Z0(SsP?R+mDoZ%wT1 z6h)D~%(?O4Gf)j1?}~DThPrjU2?j^!op1HNrnjI;Mnsn1`!qTwlKA^J_;g(3{|WKI znYqge<ni?X7!(6|$J3e01UEk*^Wf zN*`erx27vpY@LZP-{}ske>_vH$XPD+=kyzaz+26o$zJ6Q*3d#vYh1=p;b&YvDsX9b%*~H!l z@iR(xnE6N??umU?N{WRnX~FmR-_$6Bf`ZJG_@t);s#qnr5Q_k&P@j}_YN4fE-+w#6U+i{y>1FFlY>_|``QrJl^A6U}LaK-`Vrg9FtNzoQ5zBG~iq{{n!ZDINetkoa`` z1SX|bugQ;GY`Tjr10=rzw5pf-9O8&arh;c~ai%7o7g;_ljtG?B9iS6VEag9BZGUZ< z3@5Sq*g8x%Jov#Qe{g*MJ=q9mT@%r~1H}LZCee?Mx;hn0tiCq26x-g?eE|A)>G1<8 zrlLu=jssnA{Io}CVCVO7BIk~R3bS~685n!ZBw}b;hPoGQd)*{C^#8-vImhMs{_nr# zTDF#rW!qjYZP|6_WpmlKxomUUTD;S;-SXP+>aEZB@#~-d>2Y=4=Y8UZ<9VF2q>+UA z6dz&YwMjFu**FZRJ_}I9v-xFS>XI5lN0aIvM?u~^-=L3B#@1}(cHaldiTOv$E*vX} z9_;7%c6of**3w)H5!y<-#P|wS$nAU0;D&XP0_J%0xviISYZjr)R<=TG{js5s-Qrpx zkM-hs5%CK$m%oT|CJVo=CRC}<`8D@9EPJ`qhl@f=v+Ko0=N;NJhS6yS zE6WTlO)*1T(@L}R??$7e3jb(ZpM%!Q(?O*^aHt1-(-l5s~`R6Wd z0FtsyJ?(4vWrzgwOFcO;cR@oGre@1WL~YmFI;V9RrAH^v`dJ5lWeal>rsmJ-GZGu8 zoAA0-M7aHGr_ju$p(fNj79H)PDzxMcKidTh*Igo~%j?ZPe2=rQ39P#sYiHaQo!qJm z*P<_%D3cQW=wo^PC;1XW!bP-5?gKi;0rTvQ^kG~1|;r6t*AGGLEB`&65m>PA17yrMkj*iykXVc)LND(D~VdWh2~ z-sCpscxxY zVjZv$o&p^SMO1U?hf}BcbTsSW<{ z;lemZr*&!Z7tnlArIt%IFkBDRMa%;hmCeJZ_uyiv5^ONO4)0?0=KJ@;a1#CJ9{q_7cX9Flm;8HHxCj3R zWw?MWdlAN^`{!)Wvpkv{FBSCnV38+6UI&wu(jKSC+Q?#KkRNI1a=m#uDgibYmecYK z95duFr`NJ+3LO(l*QZ#4^@<9ZVsp>{%e)vxP&dvLM8JB3MZ)Nhw^2%Oho#<*f18%s zvF^V>8nXt6I|wT9l|o&BOPzO)HoGZUgXqB$)xEbhoM{2tJ~qe{rmwqg zCTXnt`smYq9TnqJ7MmOq!?$8ZcP1yWvQjj$S%Nhxck@IQsDP?Hy)<)0H0j0Om!0W^ z0AhvdM2`q|t=A01c*q<3V_wJlBp2{>Sg>9ymeIhJ_AzA5Vrhzk9m?QjH}?J_&k3h$ zSUS~W`0kF?%nn*eNTQM)5ywouvX#6Cfm%xjNQ>Ey0Z|t9&XOLozv#5X42lH2dlpo5 z4JHx?B`652h8Q1kYih$6Y=;e9h5#jD(CM5V&9QJTx^WRF7Qy+*W9R{UD4HN1{~M0j zO(f0hBdVGD{YOzJJSb-P=2eG?EBUPl(ziH_$|R}rn=u0su;cA+vOT;CGiaIOxlu<^ zC;meK>80LUDSTno*Z-E)@)xP7fj7{yEb}CFfi`iLZg9)%8G~vtg695ihxCVK{Ew8s zJVbgGj={G^&sYHt!?l+GR&RL@-LzLCLZ#sZeV(x9eDOCu&QY#5q9%p9kR`$zE^jbKJT7RvEQko*r(P5t% ztl8_&(nRoJC@)i$4|-lsMTs9s?L-HqlJbHofF7oiL}J;?We5ot0paleAfa7@L`Sa# zf|AI5K$0$0)iD#)cRD%hDdEx)0+%pJMROw!Qyo5Xr$ zKl%J5#b1>O(RR>1z6|W{t$QYRjfy9TlXQlvO9K|YS~*J1+%vnForjT|*+f_aZ&;Im z)pKPmGxhg$VoQ8MmWNj-k@nW%;GdW|_34JI3%rG6!a5ep)BU~*uTS-y5C7sHhWjEH zizg@H+U_%%Grq7?%rP2-x>_lwd3 zsQG?mEMY4cKZ8B5_a;;~;!r+_>w@N|i!a%7^%Iq&;Y~l2p*_QpFnRU6;X|@+^AEU2 zJ@l&Cc196{|El3!20=6h|2C4w{2gBqRoib42 z_2&1~Qgz6d64&?+1FB*S=m8Dh2-I`?8p5!60;EEY)QtbfK{jucN*${J+P*77XerSQ zjz>;IVku>;N1xke^Q1qTa1w`II_|(uuGM8v7sI+F7X!nHt^mu<8c@f=4IdBc=?=%m zuh<;8L-@lBUF-q6{EUm_KZTPFd*5H%Do_DmBh%v=iHrXGUHRzMs|YEY0Xm?Ax0BpA zJk^?er*Wo(LkV#|%2lH_If4>LigoQv9WOz1(iplRC)Yw@Z({fM@4E%_W@Sf`2DNRG zp;6ujzSyJJ#;{lV{pEZB1YxSiDFTK7=u~B~wkYmHN@Lt zQ*)nDjq~h4Bk&8o9-mUP8oSY*8#O{5=im%`?ZQZzDo|l%#i4?O5&qDVSJ=YIopLMV!*wcy8e01_ljiyis55PB#`zA45Y;ysQzj-^^^F zrJgy*;%CD^)-&&+IPx{~fdE~UYn^x-gqzN0yg<@+7MjlUK(tw-onNu`k2fxRK8^KZzVKo7 z0+&8j&xBtaMZVl14!QikgH+vCRT3=Xpa*fIp}m90A|M?e)`KOxH~JORb+&x)b>5Uz zy3io>jW$QGpeC%}+nNpp3}-xG61;C3X4p@ROgFLr zak`vyyrQqaaZu+qfJ*tkXxX}oUk`dG#FX{^dt*_S1<}v$K;{KLF+4NH`xmENl%ua$ zXl~GsjKfIsy1D4R`l0sIF*tLL(kE>w(H9v3GU$OYj?6MRzYjRe2HV!M`koQvCDhow z@)nAXR)++=SnQajylOZ=Tm50WdT7eHJ5e$qL2l?I|H4g@=H2$7g(%d=MP@1w1)@Cr zZK218AnfrSkKZf}M)zP<6_vSrH`tEUgQqrq?Xj{OL0*6y1=7nNS0ZyqyJTY&sF7^` z*@%&btganoc%lIs$;bADm19Bzu<+`F1RNUc2_)}&=mJcvEG}?vzlzhKpx>B>;;3ff z+2to-3Lb0_rq4<7-xj0hJ5TLp4zlyKV_HxCt(E^vC^jt!`6Rb&GCog@WTagyZb5UG z<94cKo!joPg}BToA#eK^$@=2}S^f+&?H?@vWp5)mS-?!IIXE^>3s z>bRWgu@7kP+N`QuPwGd$LyToorF4O%!UZ_&#ip4EVeSja)onNd_rG~r zATIC0hmPGBE+|ZrbCX5AMdk@I&i?RjtCUT`X0H=E`P7OPlZlU?ccieX73#1zGm`1T zfk7LA5N?ixmpyY1Xi5IVVlqQ3WD2>xfb0mcdY|gp56`wL&1!@6J_Mx+$K~{5yvH7X zYa`hDoj-%1G<4ozUH8NIz|dkhuDjMh>Mvq)h+U3wReWQm+o>ND^4^j7*c8t^N1yLn z)9SVTbiR7I;l3l&M2;Z(2mXY9(+*GSeK|UACU$0Q9c@gh$>HF5cR;FjZ{&I*bw*Qb z#}%IP6#Ab6FhJxE{>1F8;+tK8#YpzfdC+_#?552XV`Mm%N`_lRj?_B&c_JA#;$3r@ zHHfC`DlIpvfOE)Q~D9$Y>GO%k9D+=QhzS0cIZXiRy9(z zK`AkL&TPIzIz7|$J+c6frZNWl6Fqvft(K1`-u2=?*=x^+$;?`T5B z@Vml8x@;`?cJ__FE>C5L?{iEFZKl5pxhU^#?I`B$9U_j!XCgxXm0N!CB7-o+mN(h} zFG-9To>^}DFLyKnDt)U!=)jCm%OCz!T9g0ypu%PD%lO9Vm<8v6i=$cfoq6Xs=|Hx{ zp!?cnd9emFmYwRqpV#v-3<66w*31qDzu@-511vb8$PubI>=L%X1EFR_sXRCo$MJ3{#7gMx)|_A5%Anby>(iN0oKX;kxwBNd*vJJgq5fkNiL=MSJ}ZiZKoXPb#MxjrJ) zuzjK)+!gdbmeu-)Rt6G!SjcjB-0bgUXHK{9N{E-I4D);zd_r8g2_^qZ%SA(tOH@jP}3pYd}hRF$$Jy%veiG=%6E;%X-`^ z!j5tw^(uLv1Eqld@4nP2PFi0PwZ6w>e0LFi*3I`lf}A(R-cC|ss8g~kmg`@SkGtIRIAI&J;l@4cjp{XM(KL9iTub; zd=9HUMgl&kZ*BVOnvxR}9fEir% zqG4ucPG>id&MSI#PI=wYdBhAL?PA#lM*FF^U9{3?6!_fQUVhzTirG8fx8mi_ZfI(nRsG`@J}Laii-6N1u??_DkiNzpFTvIKihBXHo7b?& zdu|Qq-G8!GLW=1FBqb9!UP@NfGa?1?Z^qfDVspAl6am@e`>q2cdIpC2*z?{o+%gYR zXFF!QUT0I&BKqsg%a79k&^M$%i69H|1wnQe<>X88T9YXAG%!2jYzDi^z`1e#;-d za=1RI9U?A}CiV{8%Ms2wIywePKcYDM0J!?;2HN%jp71oOYOod@C7H4c2%Nq2vLYo zRbur;Op8phh=>#lq+^;uMUTsyG@YlnE1>>R^l;LM@bDX^vCBb1+rm3xx16)bG2NS` zf*86=SIV&Y#EZ6s0E=Lyhp@-k$ND7aRj%@v{Ev@qd z0wC3^o0^(d9@`+j+NI(pd7nFu7b*+z+070t|3(#lwn+4tQhLI70v$WY(9t*eQ|_d$ z7u3zzzfL)XCcnPN+n(P?B9QLmegv0SJE!lR|GDsd1V|Uq%kx9lsAySi$)8IOQ!~?9 z5}!YC9xtu?Np!76MM0A<1ItGOWJ03zo`8bP;N%UZ{Y?y3=-G)$zs(zgbf?^J0!r|Or zjPG*+8#1#_OYFM)(>qIRYc;Js-I*VW_Hr}6yZqWSVcWpjoiv-T=ydx<39LRV zwRD;rT2LQt>i=*D=*84$x~3`F+1L{Cm(fLc_x3Op`aeS!!U$={W_?8C2tpmkEH;6r zUh|yl9OXVfK9)DkGj!StqnWLK|BzIKuQ2qPIUFj@GKl1vehB9c8N_=m_p z@?77kdpEl>;b*Kt8z7~cXG+Z`BQ-`7URcX#_JsVwHU9H6EEXD?!A#TXe2T-rUmw{| zju{6BBm(?x(V~h*Vp^-BWUhRq1(O1()zZ4}3N=Gq6Bv>J8g7C~Dp8?1z}cXr9iX6m zx8_N*=JRw)-*W(n+KQEgpVTBF#l^jUzQDC{FwoKE)ou^Y-d}F3@7Sjxx*(o)?c0jo zmIB_P%F4>I;X3QB#x(w+P*6~(4Q#k~{W~W$6s`ZDO9oK>E)ImhB!X0*@qV64eNwzF zCb{EesAu(vxNt4Ngms@Dg>tDT8EQ(0IfVP%1;kHNt%*at7UR&0`ao!2V#oBCcCt9EAvfj2_?zHl%DG# zC7|D4@@at!4TFLEaw{KPi~@s4x%%_DES}=3hwa;ckx>hpf!;1vH8o!XR1iS^A70-` zt$Z936|&`^SndZ~wS!Gx!o!3*GKUJE>)vsAwiGjM{}+);!$HGWZY37> zPp^iPOQ>przrA<@dTIk8c&fP}n;ERTBsp!8D}Rj=3ba`^EcwIjZF`ja_e^fEEPId! z%KgXIpg}Xj`w?`e32XC$TGmrLMi#i-mm2-B^{Cb4J)I%3TUucAl<)sf?CuBirg%`} zMdahaRW?fPsB;B}re4>N-eV(iuZLpnWfzV__J6}F5wsf89xu(I=P)9~??O_=Hs=>J zgRtrB!c>7C%DmDF12y8f{vZF1u3qDN5`WoCVy6cQX1z*d>J=Uo0xtZP1q^2a!GQz} z9xzXQ^LHz=D4gPL-44T^$$X6n)x{SUhyO^i*Mg?b4~x?5ipI8?=Z|M|{m=N5Gee$k z%zho>X;|3%kDlm7m*C}?Ce9yE9cOSEt#Gx6_k|Lel8*(g{{^|E@SiDS`w{4$-5-v} zGDYnX;E=elcxFc;{7=qaO5({KO-jIx01LO zp0%1Nbv%HwY!)p)I7`g5Wapx9G4w&O?LQ;0zmlh(1kHxaX|7rV%!-0F4TJRsl(SE} z1(g;i6G=AX*}=4QYa;&|f4%-ap?|tmKIyvDLKl(NI#h-OL`G;_$;baQb27zA%PW#< zjAQJ1V``}shU7w+s%%PBqB)2$tu#-KD`@ur3KjoaWx$rDJ5Y%=${UStVJ*M9ijo#x zD?X(Jm#$vOy71@!%r77}Osvaq>#T_~L%yV}C_SYQ3CR0Gk@c?GShFB2&1lQ!Qj3p9 z@(es{DC?tF)%WD^5BUicv^CJ~4ec;>xxQymQ>TIi&&4AQjF^(Y8Dnu=*a`}tSrxN~ zxX&hjr`8%v;y)G1)#kO2j3V5TU@HBO@j_yRo^?Gtx(p0=bDtVjXhIyy_!gWpbY|wr z#>OZX`?R!`I6y#Jk)fNgCWhIRkgT~o-wTdze&$R?pIW+eFf&hOyt#sQNcSm zshjs~(+gi!2GuH3Cw5PT;$>-E$f+lP*46Cg5{XdzbC$zyESpBBPj01@#L}SeR zs8(ewWWbUQfqJL%p;E1{6z}6h$Bf>MqXzq_kva1%_*IJhcis=}UjT5?8+X#@~tr0X7Xe;i+eU=aG+_%AzERw{3KI!bm_z7zp1?c zHom{s2h$F^>L69trkObtOeVZ-8$G}R01H%2WzDA7R+9EopBJY<)Z{f!X%{WGcj{*X z6U#JQr~uST|9TT;+a>F0_s3A~g9lr?dhh)C&twX`A&pDSE*z?F6PO*yDZc#Q{l}UD zB3)t?bG52TRr7P>S6EM2<|omzL1&^cMgc3BSe^g&MlQ6A-J8J==r&Hdgi$+Dn6f9|{OK+>@d8Q?86! z6!4h_*Uism{g4nXx7lfI{7q*wz8yuhwK}V)fg~ZYGOAjnL3F7zKQk$zJ}K*i$BZeQ zpt^3s|4z2{-;-+^8FFc&q;gHljP}@tROm}ibIGrFi@IM;j?>2p*oUX%QtkMww!eA5 z?bdC$2rv?6c2R!2%oiZ{Zzg>6<_)Fq)zAK+H5En7YAE_@tCD+z48l|A^Z-<=@Xk1D z#%V!7p*$!s9z)yrugpvodh~b&VSKsr5D%**;|FVW^xzfo2Q9-s^|wD9)cp7r_dBgi z^Y@itn0{y(klR|?vaU1>u8#C?YO@&gGuW(}Gn9|APoZfzKdlJKprTT&N4>3d7Q_ARspvj9RYa4PAO-eFD3$%%E_ zY17I9AcZa-9+vr~@aN9=k2Fo@mw-N(mIt7aI}6y0(lRnex&R2@t8`(_c~RHWYYors zr!f3Dk;piN;gInVCd@s5>Q{{R<1?*=FnI z1Au`k;j@wH%UTi8oc2Z$)QI2znebN0uX>#DL4J=c&(=_&&$kwrs+J>&;PL z|n>l4%+U|OKVyB*Dy#wR6F0fcEC(2l;F z7!eOfiaY#KQf@_NaN(Z`Kwy@4&#r6EDFVOdRI#gAz3#s>YXpg|utFpGYs5hC?YLUK zwUTboo^uk=|KUlx@@rW#zU0&|wy=eExt&`V(a6-_g*LTlVypU0&(~U0kfvLC&!=0) zM=$w3)YDzuYKLfiBa=StufvmoJm8~46_F;H8Yg-gCn?W(uscuoni86hE!bT31q{q` zQE9e06VO-)sxnwKI=B8n6@FGG_B^STE1Ap@*1r!#^d0UCy9Eq4?0xUay4WXq#DNEz z00oTrtSlxVGt0?znw7N;0~UsQGPC|!XtF<-4VZ@V$@&<>q{KyJGj288!0`C?^e@=Xg`UuA2UVfmU;y#i}d=n4i2` z+pb;DxijK5KZ6FtayP{-fqqauk;g$^d}ij!AamEfQ7bSZOuK*ICj3wm)&+1j;xty{ zU?c(#nLmoqFE(uUS34uUjvjl!N(g)n@ZUr~z8~Sc}qHdFU;vtCrhq5lfnsxw0 z2d(=ClXgDWgduNsp87GBSSW!OdG1paNw6Q80em1u4P^n&cje6fjjA*-K+Oqa?tB72 z?psl*Vb~AdM8&PO4~*i1HD5xU!5_Qw>j-^1!RN=n!W(6Fz`qFJ@iOYSYVj4he4+js zSt0NVlI;eS{*78{Fe?)--5a~9v6N~v-;(}Vn&mKr_*zcsFdTs8zpMOx8aNergTt&x zMD(7KF%j6aR?yeFp3Vq~Vj5<;ygj8s750F^GGD#5hlj@(dgx;qCYD6n)Q~{}Sv{YJ zU75b`wZD!R#{dj@pQF04u<&Qg#=%;9^M=y~+DPku_VLBOUMFmr)LGa_4g~KDKp`an z9Pg?{Pb3XB^(fH6-jqo&23V@rXMpE?brl%{;8|wxr(0x<{W{aJ9U{&V+vU1}v}nOM z#=U!OXutZyFn0ma(TQ^8S7$KF2syymy6ynz$)`4NAGf+2C^TUL=6>X5A;8M=42_wu z1C;47O6OyFL72eJ{5FKhA=K;fu;gr+%;S#=q^7>pjO6!+CPR2U$Y2p#NPdoKS>*1< z1g6%TWrlcGFqd6MdZ;P~x@&5(X=W+qQvp}RCm$2S7qT<1xd*2SZDt58A~)E14t_^`vU)dI4ses zRDSeOsLdFGE+Obj)>WF3mc_uC`1@yoV2zh1cJEJ9=Z((6xTfzK2n>V{4(P2{$l#ht zOPhg=18TmDFerxW6;UTmE4Gbkdyx5JvdF@$iz1F8NSz4yia!#@0ig4MLwI}%K5%Rd z(q{pkjP9*vl(eL=_Bkgl4;MVU`1ueF_1+RuFvRopnQ&0(n{nZ7OY#_H< z;4oi@sSV!gLs8=nriwLYgzme!pg#7*8rj_|TZ)`;z&AGrX?&~*mJi6ekeY4E(m z*!qg5NMs3ni#fA?aagI#F~e`B)Y`=|5A-tUK78(Wkmnp;w7khCb5Ct_zW2)R%gX+qbjT);G`Pg|0i5TZpFcY zih^C9%Nm>?*Y%K2pqihq-_c;VIGC2q?*ytw9}JsqlrMV{=@?ruky)I>l9gR(gp{9u zpwY4h?)k~w+nH#RATrhqj}!90ej!qA!}V&2b^mtG`|~cw0b1C6l88(z4Rz%{zVl(J+F!l5 zoAiP8i3>Q}_rgT9O7JvWO4Yb5*t3FT4}w1zk}c9|@ZVfxrC(=x zz0B)GQNJudSmTe4ZEQBI-^?GI-Zo$FCQO-+wGz+9H1XA{5QQxNd z z%f-Z%QE!OV#TyFYK|wUriLuZy;8<-yg65-?l9lu76C8VQ)qw1JILbhmGkW_>zMM?R z62S%)Ww#cr$fiHy9P;v!Mg%eJQ}?N;ad3Gs0oB`N=qsBDPW9r#LJ=G$-BQQ5ruQ|X zlN}>%5)Aw2v?{(flHDcR70JS+qT`9s-{;haBZ49?2ja5>xWc(2s3YhS=P>jc$pl#7 zZDyWqI`_uCe{$b!bFSf2->!~`~F$I(s&z)Gp4=J?%ibLtcNY|Y&0T-=Y)># zQ~W|@wmAvwbvS9O;6!Z~;I~?@aazVuNoJL}Y!^beo*_$iZ_j2lqlHWwV9)x8RjbEi zV}zbQAU1rKY}lKx(&^NQ=YY2y?%~*9ku2A(x6eS5J?@alE*8rnBq103`F3Y>z=~b% zd_sQXt9%$h;qK>^Jg+ zNxlAb+~>IK1=OMqXKWyg@u5wPbmp64u1bdE6q{Ft!A4&|ni>IH6cd!c7}LdufoK;& z;z~aUm~FYk+4F*1a_*uIyF62){rp>=Lmw3lZ@g|hnK)Dyo5^n5MBUH*c{Z~-1KvM# z2(#s$G-3Ds25>Jag8#%_?k`bg%k zFc}9OK+yuPn9i#cv#JshNQ%pRPvLGT0xxpqFOB8dBRn<+mCpA$s4JF*WFpm(CF=4m>Z)L@9H7x+WMixsAg}MN{7_hYeKK( zQ@7IQ+fbYYfsgY<#w6X0%zT-IkDg?|;7=5g-iYU#l79K}hv$K;R$|Y>8(yZ_C*Ngp z^UiGEH3{*KrFFw8Ef+nzoxGJFlHS9Af$PO-(!nMPcZp`nV$fW_JzU9Lk%)OnacRh+ z{N8%T1%0(fFJVMg@h;DNBZb|^vu4$4>blOwxEM+1n91`DUB)6TEG!vH>Q_S3?%p<6 zSo>N2;69#gJL0P1gfPOFUNs^)ofpREEIocRB%=@k7VUWYZSU_sKKI;O1ibl;ikk?+ z!d^L#qkxsnX5VDWD60$#`E|POy+k$@$3duhSYqF(JS^C-TCZ~z1GJx7iyq4KOf>81 zhVEC>xu*bu?W3d6W)O674tebN=k7b_1u~`}kzQ_J7TPA977w#RUa_IV4j_E}au+Gf zk0FJgTu1gAD8RydRqTEej^vY*`V|?cl#Dwc^(`t2Ua^Ad_s=?(PWVWGq~489aK9*Go?TUH6Hso1 z6RGM;|6S2*{b@)0;qJyRAa3Y;Slb%}bF*E(sN~BtUB1z!PM3r^6q~iy$QdsPo5gSK-EE7&{8~9=F!<^&w z%h-SsiR`)dlR`H2pRC57397HjN*h9Nx=DU`I@_E-cUous^Wu1racDBppN_w|l&s{! zFtjz#`|QP0&pRN!we~J;OHL{K-LTWob2v*T$z`@9Lug~4f|hZh;(k$0T>f489k{54 zZ+Mg8iUpdVit5{8%d>%(SiaL?;!(Ib4QN}3@BT#Y`u@UdsS6mQ*R*3y`sc;>S`}sT zSt=?mqeSIIpQFsPuk!UH=uClp)*_#l(-W$BYX{PgGf0=UddM5S>moON1FfEk!x%lS zET;syGa2Xzo&(>@E6;5uWxN}?%Kh!>tX6NI;JKRohj}4;`gOqk&4PP!Ct2$R>Luzp zDa=gwCK*%OgrpP}DXKHn785A4TtOk&@BgsR)|L$-M!1^c(b2&2-GLA%lPgZOTJqFp zxj`R_&s;$ng#@K#mwKkinrI}p`LJT5y@YH{BQ*6XZBmz!cdCjm$~hm73Mvocqhq3K zl!w!iTV=_7X63*6D_p`I9mU5y{rrmBrbcr0r7x)Wsqpz8g#+sYX=Shx3YOIp;ML8L zDMo`otKl_Cw@8_jxT+pVq-P1Kx-~6-z^i7MFY=Z74gRB|mP*M7etufTbdC|2bfCHV zP;|2L_h*dhabWUor?anlF0=q_wn;5bi(xm<3cu<4bS2)yq6Aygf&*mQL709seI9&{ zU-b0+y~_F@mREPn)?hhw9c<`^hC@VX8#ajMz04<+Qc$}-Q>HDuzlSeVx{GF0D;Et) zIC)>7?gKeMIDA)eC|*>c+Ruo!lfByYLTi7CW zRQdFm6s%>**N5W>s;2zj&(#?Ws*n?FdI#h|5l&PA`N>sa#=~Q_BHauLiv+B5@=(^d z`{ijo%-z#zsc#z(U?4S74;LjLe<^oYST-V4CE|AMrCaIXrV!e;#dH;R z#X>FyF&;jOy)%HeS@@KkAN^iEXj1S_N7@XH#gypKUyfHCky^RNf0Fa09>B6nKeEN< zqt87T^=|=Y8YglDdVu42)fSd|F0C*8vRE`4lXD=MM;WhuOs06LB)! z+Bqd;V;O?V)KL{ZFBqylkGwd+q`VepM6-+WSjTU-C;Q;$zt)fwuDTEML_6xHe<+-HGvUy)Bol8^x2R~hD}U>*V}J^BzxTfYVj|8*e06 zi1kvkn8)96HZJk7=%U%1jnS7SD8vFw%-GMx@7cgig&u%; z!DwCx@lk^jbxqVEUR1mYHHR{MJnS(Cdkv1x3KyUZPGd7^m}mP zsywb}w%HZcyca18b$JiOf?X=)iL&h8@g99BHtd`Ss#Gl3C&w!PBSzZsP_N=JR>Kfc zBy}k7;@hZM)@F|=OfhO6#NI)Z2-Ku14hhsJ>Jz8=@7>`eIGamA36JKr-ntUfG89F) z-*gxa)%xTO%PJd^)5kLvc%G8~P%*$|W)Qj@fw~jW!D?QAKJ-lV_lA_)O3osB4f@es zCRM(=P$HgdAZapRjidC9QjI2G68{8Dt#zx`ZEe>XhE4FY`hkCzgi|ez8|^|XqWnBl zY(X(TSOm^vLmU zNiZs;Y(BpD?ER;Qdt9WZatuDCOEOXfhY+=yFNfy@FOX<$u-`RwVj9Td7wooUq(Yls z0Jpl6v#;wF#zWE0PekI{+&~E(h-+IZSjx;RZa|;tN6MBh-%%c!-Y0*b9(;X0C45ev%-nf1i>NC5TeN_xE{)3} zj~Nl08XW!C&N+eP@620twWj49A(hm+MEuKgL0pVOYg8eR)UwB}aaPvz_?-aD2Tm}p zyQgUFa|iEqIdgNa!ppT|T;z$y=^@h=X&}tuDNyHa^dMFml{nh!>paMh(D^cZ?sLaq zGOq_{4zU;f1t<_iWnwv?rE9Px2hyHXUql`# zR)#8r5+Bq!(I-K(J14XI^KW0Y7yJ)qrdj1(Pr>u=sPhRF-A=)cK5gEFuW{yd1=@6~ z&T>^|lZkxT_CUH@aZr*ChpwbUZ&7^0ImJ?Cf6;_zW?+!F?RqeCKdx-f zR7!!M=Fs*khc`3KDc-IY{fRz6>g9pD0xx7ZK3xbF$%WrH4p;}e468!I7yDc1ukdCT z_4wxlUL917L1_g!bocM6;Rv(j(l{!6;7n9}$LCR`s2E>8-9@%wP8PlYtB*k&0>`iCi(=g-wo9Me$yzd-N6|u<-KpZnOcjW`Qoae z(BqjSNVtWB^j=k~xSY?x6;SP?N>~ZGvlxfMK!fT1(PFhCMAFpA0M<$KndX`fh5bn-;HO*|izozdT9ag(C;fQw<0G>JEd%mOC0!WSU} zJpxi44m%F*D@Vn@B6yH3ypv3%hN&b)o+Vk>Xg)>T(69$5Hwic6hqv4VBZI4Kn$3#X znDgQMw60Rf-P~ifyHs%0quf>;V08wg8xSrN6h~oeO!2Wu7mG`@WqAZw3ZLp_msUDr zQ%-He=O(L$FSKhP&bW1{4@kht^w7*7gXrQ#0#o(GIdvOEgi;MzOO1>w>BUlx6tmjc zj36NRNM$8N)j;u}0#HY4S|@&*_d-k}UpQ1aqawXjF%il$Rerkw`d(mR5 zHE*XyE+%IWfnIXRJCJCC~pj)i#Yn}RK$9dBb5S0-6un5s&6( z;*58TNCpAsm)jNHdDlzt zRppIN?B>JT-P_Z-I3v?WKlIIidg^e(8N zh6nwo1{Gs$bte>;wW`YeY1QZvRvC|r>o3K!O7MSaA^@576v&P?X>)?ytcXdrzDV5u zILUIc6ssbwQq0c2jKayvy->1L$-RJn5a*PQo?Nc_0Ji^atosXT60bBVUxHKbe=k@> z?x%@Az@axWs9%iRUd(5*SEIB%7@mJ9NJoG@Po}9uj~X}dt%vhR1k^&X6gid0#o2EKLXGm$LuP{D8eH9?g$pk>Stj2DdUCe$;|R-Fq|2@PB{c~v$9T>!9a`fBN{`t^V ztgFDhnl6s@DCIO2i%n~6!uhDgTcs~|@rau#Na%A#p4Q(x%xm`fR+?1&YbdT2_5dJc z*V*S|JjTdUp0Fp?%tB=? z1?L@&Mw(j?IOA?6Y|gEJzfFZf99>g~(ATCY$mXAE0hCDc;FW6v+Ay;kGv3X~F@;lb zPBccGF)t|}t(Nk8F+n3q-P?P!-T^8IL|P5=FFLM_TFplwQ3CS z>?-nE|CD}E;d8FO%&3w`9Fkm{`WIyCyeHRdoG~n@yjtmas_{kBG6H-)ygKtWH9I!= z2l@+sH_pY(s?xvQkD&RK9tbp@l)3utv@nV_)v)Z zhJ!{VyFVW>=JsytNT^%ImR>a#Xxt@W`4#^Cnwj3n$e2CKSt7w!j#p9dsg)W0WtZe~ zq(bt}>*xu-7i#6KPFKr7>{g#5W0OrS1|$>MW`w|w-d$ha`94sv{5!~KUIG{Cqvh`O zhICaUpK_x)Rwahu<&jJ|&d9b)OOFvmii;RCdyXMBhkJAI1a34RE;j}kb~)Rss&mNi zJsgi)(xHT#+ZuYk-1{xh4i5>_&+6Rn8->H>Y@h^{_M0P;D^KV&A>s_J%eMVclqNpG z%1Le4(7se|&Sf`zwm&0E=&iHNo!UgxDAM0ySgAIsUh+aEkr9DU(@^{6g>g0gXtVL4 zE_2el63NeaouEoWM$~3o?CYOJS`7jL^>6C236EE!<>GXkT~uBka|0^fu``y9GM34< z$@p6{`DN1e79l&W3%4VMN|gLEwsv-FfGByCF9x4_9GwoyBanSLz^3RTScq$u2??R$ z>fr~Zx~b{t#`Yu)EA_v^JMUC<&hnc7tP@=CPo`W!e?d&3)2VBsVlu5dPZHF8YF23dHS;n=IJ}g z7fbu-VxOSNQAp$ZQ#&2n3cV!=3k|lFU0l5Yo20*Nvi~%f!0aCI%6Tkuq)}~uk(Gj+ z5~)_0Q}Q|NI)9$=o=oy&!M%=qtjbs}(P>%4c{NgO6(HzGZ)|ueyzBUk%i=VoFIF!7 z;ijm#%oa*_=^V^+vFIC>5=D2tQx$%*7qcK?WMmZKHpq2M$BCgR7bJ&yR#jCsr~dvu z?L}@KW%X}v2pc^763PcZ_qxaj1y(A8b0ubw6}d_WWSX$Y4~3bf>O>D*TtI@5#1vD3(45-@V^}%tSL%a8d&v*H4s(vov^U6@IeWnq<~|=ok`7fQOB}jjAe8 zX-NS4s#)((@`*EET+8BhL{ampA{&2!k}X6&ZMdKIQLD&qPsINEZtm8~j~i`@74F)b zg}#7Od@@#2B|zbw5nvmM$l3h^xO{pwSj&j zOXSx5hSTj2fTDj?3ysdeUHfHJdRdveN*AC2PZG{|20qw00OVWGsB5`LFwmz1er<^* zm~exEd&9i@%t6Xk;lB(q09*w0)hU;F#BY?xx1#o$2 zKMNOiAt-?&VmE2m7~^4Y39q2S12Nj#+H_(dJIKu5Xk&Qt$4Q-!-8*lp$bno;mT&FD z8-Uc7>ezF&NjsW)nGj5R_Ht?c8pIbH$Zkf9i;IhuU#eBhuv~|R_bWk6!rUkY zq*U8)#q+RFP`1-HQ7UQSdnx(R^!JC@;SV>EqWqp-f~k3`ubs3C44JLEEcFhmnSpj>*XD za$+p*Wh3W#fp7JLn;>bWUkucH}padKQ|-VXz94AL0-!8zT~n@8v!jH)YV08 z{K3k#bnv6pZHfM^JK#3117S>BjUtyy!L8@=(QI@q(I=rm>O$qy>S9nvPFhBAelJPE zw3&x*W!o~9lS3x4n?M5yNJoy!^3pru_Snx4crfV#CeFG z|vC0c<@GKZi=W6>ptg>fN)*{N*xi|BFSqc>X*v!GhB%RM2BM;&R!KY zoi+H+x}Gox=i?Gi9Wo}ot<_e!Qu}GZr0c_K8mZw}fda!(-H0E}L(96uhnZJn056CN zs3O=!_M&=fQeoQ6)ZiVdhVF!P*C!e7MEv?j=^w&Xn%koEka4$;#VXqiwneyfyeF3Bmb!`^D)e`C=g{d$K9;FF%=kFrFzV}g7J*%=uJEm#8*>uP*1 z->|c*5P=yH`Ac-0HLuS1_aTbN{N&_62-dm4kccmgK}&-`W$|}dQG|8jbY<^Mb!?6E zKpHFmhQ!u9=B0w!c3U_bc8~*fb81h^bL?a5){K>oSk}ppAJKGjvYO#?yHhG;B(Wd; z)QL67v}t8zW#`AGe!Bg+rY$1)XV~Ry4OAA1M2_iUdjh%^hb6J+Q(ob!IA!|2rJXIX zyk9x_Jyx{-S-|_sSi($3zEVbhh17&^Ebd@$TxVHIr2$@{GXz;WbnKkFJOuV9c3?tG zqJ%%lIL{m5n_x9ay|Bp_m0}KQdm2{gP*!@~|4g;f?Dt*32@`oeAVVcpgvlo#6gU|@ zG2f@*e<)<6flYm9tE`*uUYh{>1MUIW1i{M&qqXk392jJXX9h+xIR96Ue*Ziwr22Rk<3E4? z7b&+Os~Z+vk$|E9&KW1l*yQ!*a31d~?9Dvgo|sr;->D_|RBHk4s>f*RLP2t9;d zf70nS(sKQ!tcRZBr~#(d;ueB`-$KSKIH~;#Pn5rdAV5l@Umb>zr41;Y{TY9G#6ElT zyC?sqgs5#)>l9Hzs1`r!dbBIXsW^IjP5j3{o8JFbUr{UvvxlsH5=~4nNtBFayUO*6sOikB0 z7YG~`G6P908MSJpRm*gD!+w1K-c@I_l2ccw&S5oA2kgKpv$nnTwmU*9w=Et3 z+fVP&S}$oS4&Q72wg*!{UA{e#cE@U}^6lB2F{plh+H5WB6GM?Tof|Y-jxX|2o@^}V zyj#_`Oks3Bb%y30mN$prfsM85c)xZbZaFGSa>av)ocwLr>t*Cttxdom%Wf6$qG{#< z0?^9AmTOh6y+CQ|wmFV7zoUo0OhZ7tIT|*S&zi`|K@X&O+r@6y*WC z>b~XTS5__2BnO(kQ3*oo=1R0UH-Ylh!Ox--`+7k6bFEBGhx}FJR+(pPcQj@1d`ROj z78V0ylHca*D30XTZ26Y7R!I(v?l?;wF7ehh0`d|uF$X%~RJg-5?bbmm#8f?XvR+j~ zaaGHf@6?H*uV!_kqL+IIY53!V9U=fiwonVeo?T3Io~i8xsKeBNCu!vcG~IW_{4%IO1b#_PH%5V{?FU37B52Yj_n z$g|ew0TAIS&o1nI-tIeLz6g47pwvQ(doED+w{)7DuD+)x2g*ePl9DKX1QHB&i}2n3 z{h{_TMhsbL%IIpBcr|q;_EQnmG!3EX|p3wpjo4GQr8t}aEWkV zJ zXjJU*!P9d$z{y4&&@r$^$Cu-U*<)^_JTkvu12mt&%lLrXhyCE~j!+Hv&Ofa}4L4cJ zJwe_5_+%P0M~3q01B!WffU7%~qQArc=jo3_8)ZDy%heImqjI(KZK5VvtD{u$J?5r& zTCWGVk6Q1pTVwMEk~!rr{CY^k`80#UcST8PNwj2c1NBhJVAHDF1)IPRhKAj{N_kx- z`Kjx1PD}ncAAlJV2F3-C=7o+8wz)SmUPuM!Ma%iGcI0*9vC^$b+M zs1rkr*6YE;B=>e3OYznVcgMA@Z*dkN1Y}N5l?02|2 z*|fZ2C9i504R@T;XWPs0o#m(#f@B^+r5GZQ?=Hlg0dD^)*Z8_|@%k)4<^Q-l+0TK;Bfx`Aq_o;o~ zef>p~170Qyd`YYG1y0dy(ke!g{f^;(8T#j9Jj$pPNiRp4^43Vm7k8a6kH&ZQm5Y0# zcfKQb4+#{rjR%nzpib_`_kd1L@i`E2sO9^&RbjqvK(oHuNRUr-4=0!X2GRMfYZ>W4 zvQ>))I`4_RMj_cMlFzAay{Wie%Vo!Yk8SGtHR}NKUZ7>u@m^zQBX&(7Ispv`2IaTh zc{hG_A2ii(?=_~bHv+vh`Jwr_xk!We2^`aayC4zR2&UYtQ){UMOgV5P_(#_UrVNXQ zOnc_hR&iNRuB0typPK11+T_s!;3PtjX_qeU=vZ^T?hHEvr1s}7F?WG(4 zL(Q(|i>MMd3X%AX!TJrdl9EsP04X*P95<#r(uBiy!;6EZCE=*_bVk5-Y=aNRd-Uz( z=SsNLWU0;^kMu4y#l2=mR$AP8eVKNw#B1sz3zgA6&y49c0I?t`IlNYlWiUbjwvwSH ztRTf&Vu9KAos>e0kwFGe%2QfyEi>JcMsr0i1P+4g3>MdN5a2-6T&T4KfJz8 zzqu%hd^PbUWs^t(P+S)!tv(fhFjFB)Z&WeuytI!QwDNhVi>x?0@G~r zMn-&pK3gMGxw=m^#FnDIIZ>^YV}jL@rQ920H*J;3M+7Hk5%r9;uXrY6GRCn0G<;3v zUM_7U8t_G!&$7GaRObs@LU` z1yiqYZWBjy?TU7|U2<4?4QxC7Cgr0tKZFz>0gV{Z&)ApQm6<@tf=t3K`FLh^Hwx~4 z_w6XGy|;k3QIsOP4PowZ55Q-ied*~J_yl)Zws)8r6tg<1QE!_&n#80>azXRByf6&R zjBuw}t&R+@1f`Tbn2dQ=g`v5XIp}8%6F=WY-@@376(C=ocipoA)eJLvs(M zUkCupcd}$t8W^yWrLc+<<6u-TZ<8VQLTl()03*#X+aUOvK=g_Hph7RO8Vv@Lv992pL6D98B5)12g}4{utzMrUe(3DeaV zg_c}XV8y(U81n4ta;|$L$4Iso&S`!1B=U;L<}~@ZJJGzM8B30tX-E#)wq_Hjxj)Ru-*%LPSLjBgl-%yD51#77YpLz&G49>71 z`PR-Ckz%tEt+L5A7KUa#@HoJc2 zm@UL9@`EWGv&T;_)lV2|qt0VZpVu2*b|12{c6PUUG#egduo-i#Umh$m$S#m%2b>Kd zuU*yWb{D@YQ7FZH+9LZsIgD73e;r-qLU4dmp*8{S(m)!K&VyHaIEYiM3T8$ARUYk7 zA@u#NP&LnYu`wYM5pFf8T9fvuq`2=p*+^6S3$5lshmt6|JQet=qUc;xk`DXO444br zVR2atN?M1Mj1cw&f_2%}%T3N4_Q)50n31j&&XBt+HKwR5EcdSmEh_6-8qbhIMQ62w zk9fz;yEo^wN|3sE@pfW!lE{;IZp|4#lis8u`z4hYN_`0g;nT1-RFrH<5prfhtG2oeD{0*Wq=0=r{g(6FGgn5^vGsx5pobtz;4?d=24fZ z9*)kjh~mVDHWju*2}?zpqTN2^-fmhqDdglxmEcXuR4uCZKs4L$z5kg0bNyWrMC%<3 zY1TfCfekkYh@subUI-X5C0gv(QrY^<&x8~1%RHh70gup^YR^7ko6gT#0F~8CJK_CM zyCBQbu+PF!v1y8+kT%jXEYT#TNoFhD188)I??LG41HtR#Wp=IBa1C5Lj-)+-aS|+_ z_HvpFaiflTdC%93uOsNz9sBxWBO|X@k35E1nCU0QF3x*Uhl!fQ9kXajC3~nh*N(Dof;ZS7g1L~o*>Uh-8N%R zH*x-{I*nlJR=^m(+0{NS8w0n*n}PXgjFxpZd$47ctK;p{66b1KwKA1Z3Wb0t(snI6 zkZE@O+U^L*K%??IniDlBD$Y*+G_gXCE`W~txVteuzow)j&K~zeagODi#x4oqzq&BL zE;16uL|aYH^SqHz>Q;+};J6jiR!_@^+u9X?&KJPb^9x&@MOPH>Icj-+7=~SOa)OH# z!Is-LNl;X*8?kC$kc7-F1DU8kMvG{fb08G`+N_d7P)p@f7S`0@R%Ka0{mSB1Xbg{v z9-9x&3+dW~1qrlouiPq?RiE4}f*VI68UE*JYPF>V00?#8XA{jz zU_4M4IG5rXiM=TT~Gwf2Cg=3Y2Ab|}>oI0Y9Ls9WE+PMS^UOk^S9E>_7n z%y$Jm&!bGgx!Z+b7X~{gnjQpAKA#eGJwe>=m0%&HNoXDhj0uc{yWgL3f^>EBSY+%J z?$ojat;TRbDCYX6ciIT!_ljkY7z0~hRB>M1YUw@gQd##8WQmw8j@#=cSx*09>~Y=>>7s!Zoc zeicPn{0ha+3Pc4N*8*qQ7+I7QT9|h|RJGrW+sdnM*#LFcXk=D;m~$G(d;YV(KX?5Q zF8fMi#`f4|(2`*8qV%RsT0$_e0VPjDl4Ke51m^~l2`3+cpozUnl{2EO21=+FxBIHs z4Z0Q=D#yx`>FcV-7LN_m@I;?>0@3R(^-qI8&FVSz8=%NsC{r9s6n@p#T1whCg+piC z7B^C1x)NmHvD~6vcdj6@4s{v_H)F=4r7eagzFgonvfA?%H_A#O9areklNqz4>aL_P zJN)9G#M*!S%vl$oxD(IfCn^$ao$;^M!6f8GibiT!`NPI~25Om5aP{K%{DmE|>DW!P z4`LprDefaqr_FI)1#{PrB-o##U@}=8Jbkvjx;e=gJ2{_RSST3GvJ_FV#{+NM@p*%k zUfDf5^LU_x z5-W$M(MKZUP;B)GM7icTIxdh$Y$!|Ed85o~Z<`|>+Rt2W(r=nf^! z#a|y7yER!vlx=1ldrDF6EjX~Vni@_cRi4M2@JkDvd)|Zs z1v!RUSm`?<6{AOV)1tfM@-ZVho$RfggI}~g|^Q|PEu}5 z?EQkttW0ugl5&)=H-Vl?ML{JC7dG#}>1R5_kJ%UYD zq|_|pP8X2u;`&f ze1&d)0g?zOLq1r_k9=15)49fDNmFvx;Hgh>WGg)Z5dk%ct_8|f5$3D=cKOV}SIYr! z0+|`vsL!jzVd@*4&1PjoThe33c~MGnFCv{JX-S+j@y1`1JDQ>?#rR~sWTVaKhWkMe zIO}4Wmk+$b+(sl{l458cqle3E!0XZ+z*O8X0+ge85B+$)#Fknnv;631;;Yu7+{iX2^~bU7DoAi5pB_YD;G9s)OzFEQvDd)!Nm?EezNA^@uNB zwlJG{&*QypLxOhKK}G)%hjyfAOzeKd@{;_bPf<36lg7sUzn3*!nNDUtQeujY1zQS? z+LWPB96rPPGkm`$nFsEzMC{)FHTDf$mxH8i2@YEmo%I(4dNcoSOFwK7je zSbA;x8<49%A6B%KI0ObhA)qO1ISSz^;2Q$^>U+EMQ%J(W&=+{$$|fqkR^diV{8@Yw z+=<14cEw97q~LDCW4geFqL<$qduD1cU9%YWoh9{K+|xkN>vK)Jk2Oi}Osa4SJ?Y3F zQ)gg2W|X%`rr6{+2{rWNYK3$pe<`_YQByo|aAF)Ixza}MkMpQcg_sk&Yc@9(RVSJl zL$#(Z4-c$LIk~<>3SGRK`Gq260EK_;Q8MYyoOw+0&w8;GyKEkmRvb|RUH43Q+t3%m z3wv8LXIoP$t~rh+fY|oqn;Oh>-Ntjr7M;N|?J5SLcX#}zUc+goHLwy>r*6C;5ns5z zuIRhlkI=>(bcXd0D95CqM{}WD#ih1MYrCehb5hmX4KTMtm^Slp0BYXKpo$$jJAuKL zyC&)?s03;Ik|@E|-Pf-5q5o;&+a_stsie$Ny0okd`_)6CNkTw?%Z^`JD9;QHaYy9q z)u89?3P<6cR#p;Z;XJ8aZ_v{-AF4Q(u4)ssKYyHXWlOywml6AWKPh?a-B2NeKsv@j z-d$Zwnrr+csb_t8s2AH5ze&Rm${ls8d2kh)yrxDfm20(67|W*8#UbWfD1JI+C%*W4 znr`yTr^Uu5b(sqL`Fl+qpCnp1S&87B7f5}D2@br&e5EBrOjA!^`p0db;LZ@!Gb*tmBFz>0#U#zQWy6CY`relLLBgvlX2U;I$UK zAvSexIRC4Uqt$Ekv|GvUGN@qEizxm{fdc55`IAK9oP<($HBjHznbWizK0F&TXK~m! zM1`eRUctuAl-!aBGu0Nf@up@CMSZi86BW$AP#H}`_#VzXPa&K3p--b%9jV+kcJAQj z4qOiMI_~|>x7gxw2s!O^<3MfIgzA>8i-VL~E@X^O=5YsrWzb~)xM*)Y2@QDsZm1}9 zz5*O% zcP4!DwKJB$r?j(+6`$6#F+j^=xKjk@SkR1Lm))rqB!LRmoW&2F+8M`fi?Rjr(kV#G{#GXEJHdJIMG!5CwUSQR)Y%$F_+9ZVdX(wvQ`$}}ao4~svp`)02l9nm|Z;JQ7ZKNu=O zsB}Som6FgqtiO$CuR7|mTlXuP>xc6$09$+>ePs!uo?DT?vw6~;RyMt=VCvy6<(oaE zZo=xUO4h+#V67&+vUhSS9#^;rpxUyS|miF;%Q zGgo~hYpk1l`E#_zKlJWuWU!-jG&2EbydJzJ9yL!yarn)T9TaCpOn6onZ^=kM0n(fF zOrM9i40hum+)mjik*V3AyS*$j5kaQd%!XWz@GF1n5JUA=6o5}JKgSL%`%&+vzKzAM z2lN|F+J>8^i`&{((yD$v<4w{3bx-bSWn-fh=Xh7feCaqczatYVlkz<~5 zBVvbII|O(xu?Rdw%|hfUNhdz(@H;? zAqJbLUX=_t2}|(=$W-b4S{IU@!z(xbP6hHAs6`=Y5A*0h{6<*s3${)`-aetbtT{p=4e%cg>u1<5s2YUXTY{D%lnkpk$l zD5U?k7L4)tQubJ2lIpNz1_4LoKapyHfIB7?YiJGM!BqXfLk`G8h6B=_B*swO->~vacyGMrr zWf(*MJBLVLL<>Q{@#kOAyMPrwZeGcFV@KrQm5mU;OxX0loO<%_2p@97W*y(g{|rDi zvU5@tCqryg$KlgorO01u^qKCX;%24IFtLc0?t~U3X-AuI?P#Pw%IrF@`)=T6% zy_M|z#aUSioumzAjfjt@1XQe|%%>sLPB#ESB?4%kAgi;&|1;E~L0%7qe{d`x(K~Kt zWs#6K7v3YbxJ>#22XCaLq}Bj2mzYG>)(C(K^ya85d-b3l1A`D_LI0M%c9!JPE2as8 zt@-A_zNFLYG=8N{^a3UrAhi??Am`2-nVvlW%DXxw+}XI|>^wu;XJ8DJ7b*c6HqNw| z7&>4*2>eXo>IFzzb4T%B@7N*wh}N|NN<$46*T1xrfQfg2{Bn2#?q0JwlxPaCMr zVh?x##Je?s_!mc8TBlfJHF(boRmsZEUIU=KVy40Ud!@Co8(HpMd(P(o9SzX<3Z3=1 zevS(mcttz_$aXaMQh16jD(?*pa>T;ZY=P~7DzS8Y(DdV8U!tC*si_!2s|=v)OU}yL z9tyG_dVRioes|Hyulh4^=l3GSgoyVTplN(0_({O+*wv14m#z(nMM=7FFDShfOHSoF zg%gYVk`f(FE5{GBC(rVqCG@y>N4|Df5O5Xo{rh)Bs}BqA=MKk%-22+~`z_ZwANTo= zrp?NFY&r=T0nIg=V=l)XDt_2Ww6>ErR!zTd8|_a4ea?;1O7kr6Ymk+C$9Oo+6!*SX!$0Djz1AKYRn6z)A{B~ z$^n5l=(9P4a9$tUFg$iiK&mT8(@etpbLhRjR?D47nsnL?1~m;$9N_n&cJa#d#>#IH zka?m8Shx<~=KwAKH)}D`sT6=Fxpu8CAgY%u9EiR*3UsibOkQkcW1Keeu4VY5$Au9n z&7IcWn?nutw?EOz`%(ID1Tnl>RK7SCeF*)S`l5>E>)UXiqo7&)(SBJ}ojU7Cw~M7f zS%m(c9z~(;4e1}Z-ZRyx7ksrAGwWfOhtK4A6dLU7#erJVr@0}3)-Y!?Am(v%DAqiX zeFRX3>kqTT`8q;94}VD4A9f_?$fffg0Ub#76okztq*4Q)8U(*}IfRxi%PD*2EU9{i`c9Ar zL(|O0MgfWS}6_FDgT7C!d5%4?Cs^C=flBw*~Wu}rmA}dEz>1Ykrlb$nC~_G?nNAc`bPOl znvT$A828>6raOQ&5)E*A^#EFfASa*Wjyjr$i)3lTmg%@X>KZT|99t$(DE)Uyn%tNTf>f z$hh*{4~&`LJ=Xzki~(LM0Y#K!3X)z5U)h7;17^{=&6{2UKQC!ZZ9DJ=iWnYf2{hme z-X6vGY7;Wx7017^TSxYmNyrjLf*{7DDE>FCKB?xfI|kQDxHsw@|~Yzy^=r<mbm-M z_$i}X6*`L6`Mx*KYronKI)IH%53qc$&UUw@eoB2Z74r6)$JviK^DS`>iO(Ehc+xow2Def+Ys5;U$5RiM1Qrxak%;Z+ZlZDK1$^E z@js>#InqKnA;nV_8^uRsO9g1qh^K4rNSnr5aQI+cg6O=M#O*Q--KLGn}&@ZA}P^8R1D&Cg2mkH$b!T)ULMPdNaZG6Q* z?9a=2;_X6=iEXIRc?v%y`{zSpLNpa>^T{+7>I(ZuVsj7$f`I?OQIqJ$W}5nS{S^&) z3GX1*HsZP!mYQnv@0K3I0YSk-@??X5N3ejPfD7I@|KH=WlMGR9@+vS3k=p$$CuY1M zUaXUP^F=V1*_6OIt~xp;#RAPGz2;996xg(WBDd*Ss|!n+3p2hpkdm7+=tjZ)StdUX zv7mhX`0-N$ix*n~9a9s3+fMl50l5i){7Y0XS=l=>iSlZqT#*7z7Q%17&tS!%N%O3R zF;WobBB}5$^ML3-5}A_lgSSi!e7bRYWzpekl#gFcWMt*7JfzgLJV>SY{h)ID5H~%M zp-{n8lz}zf!uNLB{C86L#5+Jxz`Ziz6F^N%`A{#67GU~3%h1BIPQfzi$KS;nkoNHL zdLx(I&Ddi(`a6=z!2LBC{g{s$4gbY06_`w+H5C!n4u4*mCNI1p-V<|?nXNnAmk<7i z82$pv_MfpV47~q`ruW|BXb0r|yK)SSSpu^9%6W&#3_Y_i$(P z&$HrTc~b$0MC>h0{*H&hJ@xQE`eOEdxF+g5@#5d)70Jq?+xmG+@F!}12_G8Lc87pG XOZcR1-k9Y9@F($BR-{x&-{=1TKSIth literal 0 HcmV?d00001 diff --git a/docs/assets/notification_unread.png b/docs/assets/notification_unread.png new file mode 100644 index 0000000000000000000000000000000000000000..c0edd4d973b8879617f16b6e583104e8d6720cc0 GIT binary patch literal 6298 zcmZ`-cQl-9w;xQHAdC{dj2Z-^m(g3IM+>79y|>YO4Z;XPh@L_8h&FnO5+T~?M506q zLDWRQa*}htbJut8`^UV`?7e@_ZtGop?O&Xh=KWjvH244j;FgNAq7DFnwQ+ss1>s)* zuB6A4TnmC66cn^n6civ@o^G}d&Ncu5N3xZL1(ympN57?|g+>3+T~2&YU!B<41RaZx z?#`jkZb*+sFC;g^#AJ~Qyx1K^7Sz($33>_Liuj;fP=$=_cSM4Cp(+KdL1wedw)ZTP4<`&VvKGr1oTK_SwA7iq6b-j#(Fc(^oVN-0E${~iW zAo8$FTn3$A$6Bv^ze^Bm_~3q5f9EKmkciw4jFQ0%*RUg(NCFR<_jg*9e(3D{7ztK; z(briWOpFuR!x@z^Ac>0`;)EOHvW`#sgmj6>?z~Sv);!zR8EAPR#?M#%>FnyNmIeps zj1@PggY4?+s%_)ys^dxcG0w_2St0m))L~X`F1(i3ZjWqu z{aoCy`vd?;`oXS`E;a~Dh@XqIs~5~qiuo@K*!B6B7|IO!%LL&h#SGWbf+)Co+CYSP zg?RaxrSTyUh@_{rElfx8-XHk&KPhH=1i~E#h5GvX^7;z$x_R0``NhS>p?m^R0Rf(C z3mz|jSA?Y>kE<8U?@Ru^N72U1%G1Fe;o#;9`E{@5BR6k^6f^TLNB=y(U)7 zuRm#BCkXwef%5b6LH{op!ol|cf&J3_hW(Y-Z+DWvE`w<~_}MrcDmu8>xO!cOCM_f) z`IndfQv4^*e*xkD0*ZB(?>j$;MGHQwN!0y$wB*^I!gw_lBrc-{QklD}g-s z;U?{+7ms}@_dAYGQEcB&LC;P@t|UI+{;7KG^jdexEp!Ww%%r3z!V?x1)eQ`kI66MY zjE;ge)YVIPNy*4KrKEB^Jv~cGN@52F1~`O;CqL{&V%UK6?Ne4(_A)awu3rcezH;`lxAcLGLQ!6*<_}w2`}l={y>GCFp5C!hyS%aOysO$4 z2FbA?x*3ZF1h9fYCME8TXhj1A0X8vpcwgT=M|*q7t8o=mQ`6!^ zTkk!`qVoDmVe6celaticRK+Y&x8i-z=_EwIYN6Z&3jjOU-f>@i7}$_6y5L;=wO!hg zyFbqW>ahTun;8{*&7DmQ8C_Z;Df4p{UHD2}cW6<=XJs8V$MW|xaKc4-pq zPN}a&)V)6TQplae8bJe{g%cW8HMN4^vo*;ZO9|r!S&R49%j;7Kup?wAm;s*cJymVO zt!Xwtb{2|}2ixe+`lp`)wkoR+rzR#!-W0rfihzUf1+%oJ4b02(?CsSxY`)&aEZ$+1 z(dspy$KyKV2s3UeFMoV29UXIENK`s8x=oXt!DS(H4Mm^z843`Y6S8{gX_-Z`r{zgt>CcL zR`3^RT-AWLqy73R)WC&>1&z-kXFLnb7xm-g<4m{sk<)T&ex$W_BMddO&P?@32L3@o z**l-w%FDj2tzqJCdnqoy&dHpfo105*US57AIC-z|F1vWa47cRRCBwr` z@EmGBWm>XwdbH(mb$Q_!y4^}ZaJYm@l4fR+>-hebfM8-gsJ`*)b^B@jzCYuhs*gD> zTgW7rk$GVFa!swn&yK4nu2N?edo^ctH`SR*6rETg3H>$%k%e*<)rCxzE;)KVYCQT* z?De%<^Jv0yHGAKtJy@dnyUF#gE=we??^k)o4T50lA0NHiA4Yp9MfAJ{XuJSnt6_y} zO=VkdFS)&8OXWYMq3!3>E1%8c-3Y5vE`0Us@u$$M3%q`6nA^w3f+`10LSdf89L*Vj zF5bAvN7(75$LnAQR@#xXSkd56jpPIMP?;e@LY=)m;t593JV!q-MU_RKV1v%klPTMB zv2ZE2Agzet;qh8QIp6CkuB6aS;p2O}+4%LcD=rv-IFW9}-;Ux#up)5b}ZMJf#= zP75CxV4Z8QAzL-7O?Y^odxw>MG^U=7{9V;x?f27PZSmcuoIiY*1&peV|FK8(O zBl?zP@_EJv_D#~XsI2F-UnP>6oY71--*dO1-RkCVvYvfeX_*KR;&y;{fg3ws%>)Vz z^M0rPgi0KNSoW~9^50yMjM=KPix{@lxi4j$n}!>co%%dyxnUsrCotHG(6;Et?Fgbn zm*lPMfp;GuvsN7f5gQpCG+y&<z- zo0!}(Qp4r^yl$h^1ApG`-I9aTf9ijCSxiGvZe;k=it;WM5&08T+Itl}J$uw!>@4PQ z-zo^vo3t)%&dGOlbRM;~5dMl<2|*y&QjkU_x9CQO#qws+1O#i{#Zo4UibFMIC%%xy zyvVmy+G_5D732o8C~btjTkH(Saa~q2za##x9$jw_#{^)LI9@eNA8x6H@s7WnqfElA zJu`3QaWLKS7h>tXV-}>{ZZlkubkVKM!QqmhpJA+6G5Bq4{qJ)G5E2emi8#sP6eHxC&3d?@8hP1obY1u8~UpirmKO27_ z^N?gKAb;j^b=!YytBXNy^b(jZG*xI|TK38rNv+I41tDlbl8Hb4@L^hGxl+$>FPdWg zC%Id)CkMKLmv&|07G=9rp)|W0Sj=SZX+mAv;knF?)!l&fvJvy5VqBnO0oP z!k_i!Q5?D)_Yi+JztHCb+xzB4f+58>j8VLz?or~;ypY0?BB>NwfvEvq9+@EXqn zb?mM5ReAh=3>904*Sh9-Gfvm$dffVrK{{SU8zOwmj~8NR(#;r4xcWqCxOl-Cpwua6 z+~Z6;-dU|{_})HdUvrpyYI5kkRfa~W&&E5%MjSp3BH;~fU~FyFQLRMlbECNcjyn>G z$Gfwt{^DN`p}RryGG#NeZ5Q1Wer;)0CT*G$q18$@tdZNn=+LP6eT*TSnYRDP1vfUK zaLJ(js9YCo8Zdk{9H2~71$RE$TiX%&#J2g!NvB$78Da*GYWR}S>`vtSO+Ka8E_CcW z^)reJiItKY>E)TgTWxd9)5-54T-Nt+NFqyw`M3C~=BWnL$HiZwEteeSYLXiya=sa% zwYXcR?+&Pum)h1iNw5fKPF0SbbgpB+Z*VnIfYSS??0X6NV+2(UvgS(j1mi7TU_6sY z%>!}o9abqG#CkL}d57B4MduI6Y9p@a3 z;$D&{tF##6aK+_EK-J*J!?4GGK+~v+39pd@`NlN4x82=U95z(#Ms8Cm4g@<+6T>o2~Ix6ITqtb)E-|4@>8<3agRrt7#&;eo3G ztYwEt%l1_DlbP^9qekP+fEZLe$;qv71}Vel*UT>?S-Ijs(hl4pZd2g7VeQhTJ&OM0 zhdxHmY!tUij@oTY;Ky)DrcMA^s)3n*uO3}KW9DE21#AjczX)TuGD?^pW!HLidtrE* zj@IBJXQS^({Tf|&x`3ynQx^r7qVsNWMRv%=oJ@(-u)E4Z zXh#IvoUP}bwx&MKh2J}NBXgbnh<6Bey@$b zF!m9raOo91{HTf>>$aEn4sBy0LMiMfbG9w@9#tM6_+BAfmqDH_9X#j48AvL)X(51nmzIoAo$jq^z^KQKNx(;C z$9~a#o})!v<+05>vh4f_$v^!>39bvHS0k^xdVL%s?0XgqMn7xDlwc z86z{*$7l~0p5i__UDRp3`$e57RbhU-eru~ee~=riFQ62#vmIUYvS7M|RtHe0~AorW_jZ9~@But4{%EGwFizZ5i z*zbM%WuaHo(_+&iFB^8D%(SV@vCdbyF4lwZ7pWrrR&mk9NX!=m;dGu&dFFxF>xO*> zhiPBj;FoT-`|eg8Yr(X)MA=_mZ=K);Q0L~pP5t6y%4r;z?)Y>G?j>ivaL|ka0=+IJ z``i$l;Gq?$B9YZmpRxVWZ%ZvuC8(aimhK0#-UdZ=2h`_TJ93wctK|5j;hb@kd1>E^ zgT54#(;Xwc`^H|!uaQ_>bvC-mJf^E3k0)g+R#;>_+HMnsTL(w7=sgV7tu&1s_Bv6b zj-I&+GRHdo*yPm$^|nk?dkTkFtFXvHPD%RLDKTfH=3ksE7}e>mF5HJN68Yi5Go-dL zs|56;^(H+(&lA?4c!XvUQcX8_w8P1wFc=+nGXn7#yot&P*@K#yw6@{Cv6(lmlaBH2 z(t$a=3mev=$JVl9*{!w<69LaPg98(B#rJMDn9Wv{)_J?MONbE$7d$w0DUQA2!v5l= z8aS32nDQ*8w759NXZI7m66ysleqVZOs*nMAEpx~gg}R?qrf%vdih%f{?L;BA@L`DE zhJf1Qig4hjB{0A`MxxnC_AAcHnXt{{H3{1I-4+ z;T9KHQ-6N9iUNyf^ArXpkkIwk7G~h;%*v>JMR-;yIG!?7nbVbC>l7+HRaM?`qIwi9 zJw!pUdmw;tYX}&-bIs%sll|G{7kw9CrRC*=bp;i?J}yj-E>5=$?|huA-r*1DfI^9z z+JwNs2&Mey<`*$B^r_CK z@I{`o0M=ksQzB-c(bCEP?K+Q!hQ=816;8Bwc7I@Ao088~Uv!g$(9EoIIleQ&z2OZt zkP!>-{onLdxJ{g_6!a(?<{d9`nV%9se^6;Jmb{BV=<2GK2NYRzlOfu99*a~$4`^0% zo;emceSXM^J{EbFZXXoR3*084=A`^hYQaT7Gk*|AWcAxdN+YM8t)7(EsZk?}{-;RRRMZ>+OF1D_lc~2hshaDPZ z2v1L^C@U{VH5^Om!S_MJ=!3xgmeW$VUsQ#O|4_0Nw~T0HNL?^l?=bA^aAmokiJtO| zmCLa{S7;c4+?m4ts++$_Hf}W_-M?wDvh#y}1!6g*XJJ?G6X;W8T295G4`2%JeEHEX zX11fh$-HnSMcLgtvmV}}yMNPpvS3hD7#IPG`qKQn0b!8uU@$l$1eCA#{7>K!vXE Date: Wed, 14 Aug 2019 11:28:08 +0800 Subject: [PATCH 043/154] =?UTF-8?q?#120=20=E5=8A=A0=E8=BD=BD=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E6=97=B6=EF=BC=8C=E5=8A=A0=E8=BD=BDplugin.config.yml?= =?UTF-8?q?=E4=B8=ADdatasource=E4=B8=AD=E5=AE=9A=E4=B9=89=E7=9A=84?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/init/datasources.ts | 17 ++++--- packages/core/src/init/index.ts | 5 ++- packages/core/src/init/loadFiles.ts | 6 +-- packages/core/src/init/plugins.ts | 54 ++++++++++++++++++++++- packages/objectql/src/types/datasource.ts | 1 + packages/objectql/src/types/schema.ts | 3 +- 6 files changed, 71 insertions(+), 15 deletions(-) diff --git a/packages/core/src/init/datasources.ts b/packages/core/src/init/datasources.ts index a59e3d38ad..ac80f97a0f 100644 --- a/packages/core/src/init/datasources.ts +++ b/packages/core/src/init/datasources.ts @@ -1,12 +1,17 @@ var objectql = require("@steedos/objectql"); -var _ = require('underscore') +// var _ = require('underscore') export class Datasources { - static init() { + + static create() { + objectql.getSteedosSchema(); + } + + // 初始化steedos-config中配置的数据源 + static async init() { var steedosSchema = objectql.getSteedosSchema(); - /* 初始化steedos-config中配置的数据源 */ - _.forEach(steedosSchema.getDataSources(), dataSource => { - dataSource.init() - }) + for (let dataSource in steedosSchema.getDataSources()) { + await steedosSchema.getDataSource(dataSource).init(); + } } } \ No newline at end of file diff --git a/packages/core/src/init/index.ts b/packages/core/src/init/index.ts index cf7bf3f9d5..9c9ca94b44 100644 --- a/packages/core/src/init/index.ts +++ b/packages/core/src/init/index.ts @@ -4,8 +4,9 @@ import { Core } from './core' import { Plugins } from './plugins'; export function init() { + LoadFiles.run(); + Datasources.create(); + Plugins.init(); Datasources.init(); - LoadFiles.run() Core.run(); - Plugins.init(); } \ No newline at end of file diff --git a/packages/core/src/init/loadFiles.ts b/packages/core/src/init/loadFiles.ts index af81ee20f7..84974ebc96 100644 --- a/packages/core/src/init/loadFiles.ts +++ b/packages/core/src/init/loadFiles.ts @@ -64,7 +64,7 @@ export class LoadFiles { } } - private static loadObjectToCreator(filePath: string) { + static loadObjectToCreator(filePath: string) { if (!path.isAbsolute(filePath)) { filePath = path.resolve(objectql.getBaseDirectory(), filePath); @@ -90,7 +90,7 @@ export class LoadFiles { } - private static loadAppToCreator(filePath: string) { + static loadAppToCreator(filePath: string) { if (!path.isAbsolute(filePath)) { filePath = path.resolve(objectql.getBaseDirectory(), filePath); @@ -108,7 +108,7 @@ export class LoadFiles { return fs.readFileSync(filePath, encoding); } - private static addStaticJs(filePath: string){ + static addStaticJs(filePath: string){ const filePatten = [ path.join(filePath, "*.client.js") ] diff --git a/packages/core/src/init/plugins.ts b/packages/core/src/init/plugins.ts index d28276c288..a811397e70 100644 --- a/packages/core/src/init/plugins.ts +++ b/packages/core/src/init/plugins.ts @@ -1,6 +1,12 @@ +const path = require('path'); +const fs = require('fs'); const _ = require("underscore"); const express = require('express'); const app = express(); +const objectql = require('@steedos/objectql') +const util = require('../util/index') +import {LoadFiles} from './loadFiles' +const ConfigName = 'plugin.config.yml' export class Plugins { static init() { const pluginContext = { @@ -11,8 +17,13 @@ export class Plugins { if (_.isArray(plugins)) { _.each(plugins, (pluginName) => { try { - const plugin = require(pluginName); - plugin.init(pluginContext); + const pluginDir = this.getPluginDir(pluginName) + const plugin = require(pluginDir); + this.loadFiles(pluginName); + if(_.isFunction(plugin.init)){ + plugin.init(pluginContext); + } + } catch (error) { if(error.message.startsWith("Cannot find module")){ throw new Error(`Plugin in not found in project, please execute: yarn add ${pluginName}`) @@ -24,4 +35,43 @@ export class Plugins { WebApp.connectHandlers.use(pluginContext.app); } } + + static getPluginDir(pluginName) { + return path.dirname(require.resolve(`${pluginName}/package.json`, {paths: [path.join(process.cwd(), 'plugins')]})); + } + + static getConfig(pluginDir: string){ + let config: any; + let configPath = path.join(pluginDir, ConfigName) + if (fs.existsSync(configPath) && !fs.statSync(configPath).isDirectory()) { + config = util.loadYmlFile(configPath) + }else{ + console.warn(`WARNING: not found ${ConfigName}`, configPath); + } + return config; + } + + static loadFiles(pluginName){ + let pluginDir = this.getPluginDir(pluginName); + let config = this.getConfig(pluginDir); + if(config){ + _.each(config.datasources, (_datasource)=>{ + if(_datasource.name === 'default'){ + let filePath = path.join(pluginDir, _datasource.objectFiles) + LoadFiles.loadObjectToCreator(filePath); + LoadFiles.loadAppToCreator(filePath); + LoadFiles.addStaticJs(filePath); + }else{ + let datasource = objectql.getSteedosSchema().getDataSource(_datasource.name) + if(!datasource){ + throw new Error(`not find datasource: ${_datasource.name}`) + } + let filePath = path.join(pluginDir, _datasource.objectFiles) + datasource.use(filePath); + datasource.useAppFile(filePath); + datasource.useReportFile(filePath); + } + }) + } + } } \ No newline at end of file diff --git a/packages/objectql/src/types/datasource.ts b/packages/objectql/src/types/datasource.ts index 7d8971a385..db4f5bce73 100644 --- a/packages/objectql/src/types/datasource.ts +++ b/packages/objectql/src/types/datasource.ts @@ -476,6 +476,7 @@ export class SteedosDataSourceType implements Dictionary { } async init() { + this.schema.transformReferenceOfObject(this) if (this._adapter.init) { return await this._adapter.init(this._objects); } diff --git a/packages/objectql/src/types/schema.ts b/packages/objectql/src/types/schema.ts index 7b06eec17f..4a514755c4 100644 --- a/packages/objectql/src/types/schema.ts +++ b/packages/objectql/src/types/schema.ts @@ -71,7 +71,6 @@ export class SteedosSchema { } let datasource = new SteedosDataSourceType(datasource_name, datasourceConfig, this) this._datasources[datasource_name] = datasource - this.transformReferenceOfObject(datasource) } /** @@ -82,7 +81,7 @@ export class SteedosSchema { * @memberof SteedosSchema * TODO 处理reference_to 为function的情况 */ - private transformReferenceOfObject(datasource: SteedosDataSourceType): void{ + transformReferenceOfObject(datasource: SteedosDataSourceType): void{ let objects = datasource.getObjects(); _.each(objects, (object, object_name) => { _.each(object.fields, (field, field_name)=>{ From 0eec49d4655386b232dbeb5c5f99a4dd5bdcaec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 14 Aug 2019 11:38:47 +0800 Subject: [PATCH 044/154] Update notifications.md --- docs/notifications.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/notifications.md b/docs/notifications.md index 682b6885bd..e5d80b7bc5 100644 --- a/docs/notifications.md +++ b/docs/notifications.md @@ -6,7 +6,7 @@ title: 推送通知 ![推送通知](assets/notification_unread.png) -点击推送通知图标,可以查看通知内容。 +点击推送通知图标,可以查看通知中心。通知中心只显示最新的20条通知。 ![推送通知](assets/notification_list.png) From 2e814b28474e922b22178b5792c1d981d6cb2512 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= <50353452+hotlong@users.noreply.github.com> Date: Wed, 14 Aug 2019 11:48:00 +0800 Subject: [PATCH 045/154] Update plugins.md --- docs/plugins.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/plugins.md b/docs/plugins.md index bc65eb6076..728b83a5ce 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -12,10 +12,7 @@ title: 快速向导 ```yaml plugins: - "@steedos/plugin-jsreport": - version: 1.1 - props: - somekey: aaa + - "@steedos/plugin-jsreport" ``` ### 安装插件 From 939129fac07fa9543ee24740e4b0da8ef4d1f46b Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Wed, 14 Aug 2019 11:54:57 +0800 Subject: [PATCH 046/154] publish: objectql@1.0.1, auth@1.1.3, core@1.3.9 --- packages/auth/History.md | 5 ++++- packages/auth/package.json | 4 ++-- packages/core/History.md | 4 ++++ packages/core/package.json | 6 +++--- packages/objectql/History.md | 4 ++++ packages/objectql/package.json | 2 +- 6 files changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/auth/History.md b/packages/auth/History.md index b8742cd033..1fe43cca83 100644 --- a/packages/auth/History.md +++ b/packages/auth/History.md @@ -1,4 +1,7 @@ -1.1.2 / 2019-08-12 +1.1.3 / 2019-08-12 +=================== + + * 升级@steedos/objectql / 2019-08-14 =================== * /api/v4/users/validate接口增加处理时区 diff --git a/packages/auth/package.json b/packages/auth/package.json index 4001f8d6a8..e5a4f85b0d 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.1.2", + "version": "1.1.3", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", @@ -14,7 +14,7 @@ "access": "public" }, "dependencies": { - "@steedos/objectql": "^0.2.3", + "@steedos/objectql": "^1.0.1", "bcrypt": "^3.0.6", "cookies": "^0.7.3", "express": "^4.16.4", diff --git a/packages/core/History.md b/packages/core/History.md index 1d6b1d809c..171bf500dd 100644 --- a/packages/core/History.md +++ b/packages/core/History.md @@ -1,3 +1,7 @@ +1.3.9 / 2019-08-14 +=================== + + * 支持加载plugins中的objects 1.3.2 / 2019-08-10 =================== diff --git a/packages/core/package.json b/packages/core/package.json index c2aceba2f0..6042bb8a68 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.8", + "version": "1.3.9", "description": "", "main": "lib/index.js", "scripts": { @@ -18,8 +18,8 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/auth": "^1.1.2", - "@steedos/objectql": "^0.2.7", + "@steedos/auth": "^1.1.3", + "@steedos/objectql": "^1.0.1", "@steedos/standard-objects": "^1.0.1", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", diff --git a/packages/objectql/History.md b/packages/objectql/History.md index 7d867c2038..7a9d2d0be6 100644 --- a/packages/objectql/History.md +++ b/packages/objectql/History.md @@ -1,3 +1,7 @@ +1.0.1 / 2019-08-14 +=================== + + * 调整datasource init 0.2.3 / 2019-08-10 =================== diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 84ba51e820..215d0add71 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "0.2.7", + "version": "1.0.1", "description": "", "main": "lib/index.js", "scripts": { From aedf0e1be339f5fcfeb8e0501639c6fbafa67cec Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Wed, 14 Aug 2019 12:03:29 +0800 Subject: [PATCH 047/154] =?UTF-8?q?filter=E4=B8=AD=E6=94=BE=E5=BC=80Guid/E?= =?UTF-8?q?dmLiteral=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81=EF=BC=8C=E5=9B=A0?= =?UTF-8?q?=E4=B8=BA=E5=9C=A8=E5=89=8D=E7=AB=AF=E4=B9=9F=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E7=94=A8=E8=BF=99=E4=B8=AA=E5=8C=85=E7=9A=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/filters/filter.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/filters/filter.js b/packages/filters/filter.js index 14ddc74d8c..7239ea9053 100644 --- a/packages/filters/filter.js +++ b/packages/filters/filter.js @@ -2,6 +2,8 @@ const DevExpress = require("devextreme/bundles/modules/core"); const DevExpressData = require("devextreme/bundles/modules/data"); // const DevExpressOData = require("devextreme/bundles/modules/data.odata"); const getLDMLFormatter = require("./date.formatter").getFormatter; +const Guid = require("devextreme/core/guid"); +const EdmLiteral = require("devextreme/data/odata/utils").EdmLiteral; DevExpressData.utils.isUnaryOperation = (crit) => { @@ -45,12 +47,12 @@ const DevExpressOData = { if (value instanceof Date) { return this.serializeDate(value); } - // if (value instanceof Guid) { - // return "guid'" + value + "'"; - // } - // if (value instanceof EdmLiteral) { - // return value.valueOf(); - // } + if (value instanceof Guid) { + return "guid'" + value + "'"; + } + if (value instanceof EdmLiteral) { + return value.valueOf(); + } if (typeof value === "string") { return this.serializeString(value); } @@ -60,9 +62,9 @@ const DevExpressOData = { if (value instanceof Date) { return this.formatISO8601(value, false, false); } - // if (value instanceof Guid) { - // return value.valueOf(); - // } + if (value instanceof Guid) { + return value.valueOf(); + } if (Array.isArray(value)) { return "[" + value.map(function (item) { return this.serializeValueV4(item); From 084600f111c894b3e4e49d261be2599f14a861f0 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Wed, 14 Aug 2019 13:05:15 +0800 Subject: [PATCH 048/154] @steedos/filters@0.0.14 --- packages/filters/History.md | 5 +++++ packages/filters/package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/filters/History.md b/packages/filters/History.md index d95196b389..b7a61711ef 100644 --- a/packages/filters/History.md +++ b/packages/filters/History.md @@ -1,4 +1,9 @@ =================== +0.0.14 / 2019-08-14 +=================== + + * 放开Guid/EdmLiteral相关代码,因为在前端也可能用这个包的代码了,以防有什么潜在bug +=================== 0.0.13 / 2019-08-12 =================== diff --git a/packages/filters/package.json b/packages/filters/package.json index 1e50a5d0db..b84c819401 100644 --- a/packages/filters/package.json +++ b/packages/filters/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/filters", "private": false, - "version": "0.0.13", + "version": "0.0.14", "description": "filters lib for steedos", "main": "index.js", "license": "Apache", From 472f4e1fc1d79c861e793ff9cfca2ae961b834fd Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Wed, 14 Aug 2019 13:06:34 +0800 Subject: [PATCH 049/154] Update package.json --- packages/objectql/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 215d0add71..a392267950 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -18,7 +18,7 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/filters": "^0.0.13", + "@steedos/filters": "^0.0.14", "@steedos/odata-v4-typeorm": "^0.0.24", "@steedos/schemas": "^1.0.2", "@steedos/standard-objects": "^1.0.1", From dbc231c5681688bbdfab85eced40fb2fc0c52be8 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Wed, 14 Aug 2019 13:38:54 +0800 Subject: [PATCH 050/154] =?UTF-8?q?@steedos/filters=201.0,fix=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=86=B2=E7=AA=81=20objectql=E5=8F=91=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/filters/History.md | 5 +++++ packages/filters/package.json | 2 +- packages/objectql/History.md | 4 ++++ packages/objectql/package.json | 4 ++-- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/filters/History.md b/packages/filters/History.md index b7a61711ef..3bba10cf8c 100644 --- a/packages/filters/History.md +++ b/packages/filters/History.md @@ -1,4 +1,9 @@ =================== +1.0.0 / 2019-08-14 +=================== + + * 升级到1.0,fix版本号冲突 +=================== 0.0.14 / 2019-08-14 =================== diff --git a/packages/filters/package.json b/packages/filters/package.json index b84c819401..2abe89ece1 100644 --- a/packages/filters/package.json +++ b/packages/filters/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/filters", "private": false, - "version": "0.0.14", + "version": "1.0.0", "description": "filters lib for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/objectql/History.md b/packages/objectql/History.md index 7a9d2d0be6..bd74f80c0e 100644 --- a/packages/objectql/History.md +++ b/packages/objectql/History.md @@ -1,3 +1,7 @@ +1.0.2 / 2019-08-14 +=================== + + * 引用@steedos/filters 1.0,fix 版本冲突 1.0.1 / 2019-08-14 =================== diff --git a/packages/objectql/package.json b/packages/objectql/package.json index a392267950..66df4f15b0 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.0.1", + "version": "1.0.2", "description": "", "main": "lib/index.js", "scripts": { @@ -18,7 +18,7 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/filters": "^0.0.14", + "@steedos/filters": "^1.0.0", "@steedos/odata-v4-typeorm": "^0.0.24", "@steedos/schemas": "^1.0.2", "@steedos/standard-objects": "^1.0.1", From ae12cdf83f4731341d741e361197720836e33fac Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Wed, 14 Aug 2019 13:57:11 +0800 Subject: [PATCH 051/154] =?UTF-8?q?core/auth=20=E5=8D=87=E7=BA=A7@steedos/?= =?UTF-8?q?objectql=EF=BC=8Cfix=20npm=20install=20=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=86=B2=E7=AA=81=EF=BC=8C=E5=B9=B6=E5=8F=91=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/auth/History.md | 5 +++++ packages/auth/package.json | 4 ++-- packages/core/History.md | 4 ++++ packages/core/package.json | 6 +++--- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/auth/History.md b/packages/auth/History.md index 1fe43cca83..fc55d8f699 100644 --- a/packages/auth/History.md +++ b/packages/auth/History.md @@ -1,3 +1,8 @@ + +1.1.4 / 2019-08-14 +=================== + + * 升级@steedos/objectql,fix npm install 版本冲突 1.1.3 / 2019-08-12 =================== diff --git a/packages/auth/package.json b/packages/auth/package.json index e5a4f85b0d..9ebb4937fe 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.1.3", + "version": "1.1.4", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", @@ -14,7 +14,7 @@ "access": "public" }, "dependencies": { - "@steedos/objectql": "^1.0.1", + "@steedos/objectql": "^1.0.2", "bcrypt": "^3.0.6", "cookies": "^0.7.3", "express": "^4.16.4", diff --git a/packages/core/History.md b/packages/core/History.md index 171bf500dd..db2d6eb274 100644 --- a/packages/core/History.md +++ b/packages/core/History.md @@ -1,3 +1,7 @@ +1.3.10 / 2019-08-14 +=================== + + * 升级@steedos/objectql,fix npm install 版本冲突 1.3.9 / 2019-08-14 =================== diff --git a/packages/core/package.json b/packages/core/package.json index 6042bb8a68..5acc5f5434 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.9", + "version": "1.3.10", "description": "", "main": "lib/index.js", "scripts": { @@ -18,8 +18,8 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/auth": "^1.1.3", - "@steedos/objectql": "^1.0.1", + "@steedos/auth": "^1.1.4", + "@steedos/objectql": "^1.0.2", "@steedos/standard-objects": "^1.0.1", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", From 8a37e6671fc863321e37090b64540649694f01e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 14 Aug 2019 15:30:17 +0800 Subject: [PATCH 052/154] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=A0=87=E5=87=86?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/standard-objects/events.object.yml | 2 +- packages/standard-objects/tasks.object.yml | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/standard-objects/events.object.yml b/packages/standard-objects/events.object.yml index e1dd0b5cb5..f12d1888b8 100644 --- a/packages/standard-objects/events.object.yml +++ b/packages/standard-objects/events.object.yml @@ -1,5 +1,5 @@ name: events -label: 事件 +label: 日程 icon: event fields: name: diff --git a/packages/standard-objects/tasks.object.yml b/packages/standard-objects/tasks.object.yml index fe149bf681..27f2b3f843 100644 --- a/packages/standard-objects/tasks.object.yml +++ b/packages/standard-objects/tasks.object.yml @@ -62,10 +62,6 @@ fields: type: textarea is_wide: true name: description - company_id: - required: true - omit: false - hidden: false list_views: my_open_tasks: label: 待办任务 From 5706ba58add4a166ccefd03feb605fad00c26369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 14 Aug 2019 15:54:01 +0800 Subject: [PATCH 053/154] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E9=9D=9E=E6=A0=87?= =?UTF-8?q?=E5=87=86=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/standard-objects/accounts.object.yml | 126 ------------------ packages/standard-objects/contacts.object.yml | 97 -------------- 2 files changed, 223 deletions(-) delete mode 100644 packages/standard-objects/accounts.object.yml delete mode 100644 packages/standard-objects/contacts.object.yml diff --git a/packages/standard-objects/accounts.object.yml b/packages/standard-objects/accounts.object.yml deleted file mode 100644 index 963154b981..0000000000 --- a/packages/standard-objects/accounts.object.yml +++ /dev/null @@ -1,126 +0,0 @@ -name: accounts -label: 单位 -icon: account -enable_files: true -enable_search: true -enable_tasks: true -enable_notes: false -enable_api: true -# enable_share: true 仅meteor-mongo驱动支持此属性,TODO: 1。 分享功能目前无法正常使用,2.由于此对象要通过非meteor-mongo的驱动获取数据,故暂注释 -enable_chatter: true -fields: - owner: - label: 所有人 - omit: false - readonly: true - type: lookup - reference_to: users - priority: - label: 优先级 - type: select - sortable: true - options: - - label: 高 - value: high - - label: 中 - value: normal - - label: 低 - value: low - name: priority - filterable: true - name: - label: 名称 - type: text - defaultValue: '' - description: '' - inlineHelpText: '' - searchable: true - required: true - sortable: true - name: name - credit_code: - type: text - label: 统一社会信用代码 - required: true - name: credit_code - registered_capital: - type: currency - label: 注册资金 - scale: 2 - name: registered_capital - is_connected_transaction: - type: boolean - label: 是否关联单位 - defaultValue: false - name: is_connected_transaction - website: - type: url - label: 网址 - name: website - phone: - type: text - label: 电话 - defaultValue: '' - name: phone - fax: - type: text - label: 传真 - name: fax - description: - label: 描述 - type: textarea - is_wide: true - name: description - company_id: - required: true - omit: false - hidden: false - type: lookup - reference_to: organizations -list_views: - recent: - label: 最近查看 - filter_scope: space - all: - label: 所有单位 - columns: - - name - - priority - - owner - - modified - - company_id - filter_scope: space - mine: - label: 我的单位 - filter_scope: mine -permission_set: - user: - allowCreate: false - allowDelete: false - allowEdit: false - allowRead: true - modifyAllRecords: false - viewAllRecords: false - modifyCompanyRecords: false - viewCompanyRecords: true - admin: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: true - viewAllRecords: true - workflow_admin: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: false - viewAllRecords: false - modifyCompanyRecords: true - viewCompanyRecords: true - disabled_list_views: [] - disabled_actions: [] - unreadable_fields: [] - uneditable_fields: [] - unrelated_objects: [] diff --git a/packages/standard-objects/contacts.object.yml b/packages/standard-objects/contacts.object.yml deleted file mode 100644 index 31abb51bf7..0000000000 --- a/packages/standard-objects/contacts.object.yml +++ /dev/null @@ -1,97 +0,0 @@ -name: contacts -label: 联系人 -icon: contact -enable_files: true -enable_search: true -enable_notes: true -enable_api: true -# enable_share: true 仅meteor-mongo驱动支持此属性,TODO: 1。 分享功能目前无法正常使用,2.由于此对象要通过非meteor-mongo的驱动获取数据,故暂注释 -fields: - name: - type: text - label: 姓名 - defaultValue: '' - description: '' - inlineHelpText: '' - required: true - searchable: true - index: true - name: name - account: - label: 单位 - type: master_detail - reference_to: accounts - sortable: true - name: account - filterable: true - title: - label: 职务 - type: text - sortable: true - name: title - department: - label: 部门 - type: text - sortable: true - name: department - email: - label: 邮件 - type: email - group: 联系方式 - name: email - phone: - label: 工作电话 - type: text - group: 联系方式 - name: phone - home_phone: - label: 家庭电话 - type: text - group: 联系方式 - name: home_phone - other_phone: - label: 其他电话 - type: text - group: 联系方式 - name: other_phone - birthdate: - label: 生日 - type: date - sortable: true - name: birthdate - description: - label: 描述 - type: textarea - is_wide: true - name: description -list_views: - recent: - label: 最近查看 - filter_scope: space - all: - label: 所有联系人 - columns: - - name - - account - - email - - phone - - owner - filter_scope: space - mine: - label: 我的联系人 - filter_scope: mine -permission_set: - user: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: false - viewAllRecords: true - admin: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: true - viewAllRecords: true From 44988b47086c3945d79791cf2fb4eb8fa06fa594 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Wed, 14 Aug 2019 16:02:19 +0800 Subject: [PATCH 054/154] @steedos/auth@1.1.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 识别cookie X-Space-Token --- packages/auth/History.md | 4 ++++ packages/auth/package.json | 2 +- packages/auth/src/session.ts | 16 ++++++++++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/auth/History.md b/packages/auth/History.md index fc55d8f699..b27fe15e0f 100644 --- a/packages/auth/History.md +++ b/packages/auth/History.md @@ -1,4 +1,8 @@ +1.1.5 / 2019-08-14 +=================== + + * 识别cookie X-Space-Token 1.1.4 / 2019-08-14 =================== diff --git a/packages/auth/package.json b/packages/auth/package.json index 9ebb4937fe..9d98323e53 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.1.4", + "version": "1.1.5", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", diff --git a/packages/auth/src/session.ts b/packages/auth/src/session.ts index ce3645052d..ff80a3d654 100644 --- a/packages/auth/src/session.ts +++ b/packages/auth/src/session.ts @@ -224,11 +224,13 @@ export async function getSession(token: string, spaceId?: string): Promise { let cookies = new Cookies(request, response); let authToken: string = request.headers['x-auth-token'] || cookies.get("X-Auth-Token"); + let spaceToken = cookies.get("X-Space-Token"); + let authorization = request.headers.authorization; let spaceId = (request.params ? request.params.spaceId : null) || (request.query ? request.query.space_id : null) || request.headers['x-space-id']; - if (request.headers.authorization && request.headers.authorization.split(' ')[0] == 'Bearer') { - let spaceAuthToken = request.headers.authorization.split(' ')[1]; + if (authorization && authorization.split(' ')[0] == 'Bearer') { + let spaceAuthToken = authorization.split(' ')[1]; if (!spaceId) { spaceId = spaceAuthToken.split(',')[0]; } @@ -236,6 +238,16 @@ export async function auth(request: Request, response: Response): Promise { authToken = spaceAuthToken.split(',')[1]; } } + + if (spaceToken) { + if (!spaceId) { + spaceId = spaceToken.split(',')[0]; + } + if (!authToken) { + authToken = spaceToken.split(',')[1]; + } + } + let user = await getSession(authToken, spaceId); return Object.assign({ authToken: authToken }, user); } From 92f017ee9690143c47bc4fd28347c0248fcba51c Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Wed, 14 Aug 2019 16:11:29 +0800 Subject: [PATCH 055/154] @steedos/standard-objects@1.0.2 --- packages/standard-objects/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index b3fbdec956..5ac72d6221 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.0.1", + "version": "1.0.2", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", From 95975ee84c31c684d52d83c87a7f4826b4c263f1 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Wed, 14 Aug 2019 16:15:02 +0800 Subject: [PATCH 056/154] @steedos/core@1.3.11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 使用steedosAuth.setRequestUser给request添加user属性 --- packages/core/package.json | 6 +++--- packages/core/src/odata/MeteorODataRouter.ts | 20 ++++++++++---------- packages/core/src/odata/ODataManager.ts | 16 +--------------- packages/core/src/odata/ODataRouter.ts | 19 ++++++++++--------- 4 files changed, 24 insertions(+), 37 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 5acc5f5434..95d6a1e1c9 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.10", + "version": "1.3.11", "description": "", "main": "lib/index.js", "scripts": { @@ -18,9 +18,9 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/auth": "^1.1.4", + "@steedos/auth": "^1.1.5", "@steedos/objectql": "^1.0.2", - "@steedos/standard-objects": "^1.0.1", + "@steedos/standard-objects": "^1.0.2", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", diff --git a/packages/core/src/odata/MeteorODataRouter.ts b/packages/core/src/odata/MeteorODataRouter.ts index b14e7818ac..eb017789de 100644 --- a/packages/core/src/odata/MeteorODataRouter.ts +++ b/packages/core/src/odata/MeteorODataRouter.ts @@ -6,7 +6,7 @@ import querystring = require('querystring'); import odataV4Mongodb = require('odata-v4-mongodb'); import _ = require('underscore'); import { Response } from 'express'; - +import steedosAuth = require("@steedos/auth"); var express = require('express'); var router = express.Router(); @@ -15,16 +15,16 @@ interface Request extends core.Request { user: any; } +router.use('/:spaceId', steedosAuth.setRequestUser); + // middleware that is specific to this router -router.use('/:spaceId', function auth(req: Request, res: Response, next: () => void) { - getODataManager().auth(req, res).then(function (result) { - if (result) { - req.user = result; - next(); - } else { - res.status(401).send({ status: 'error', message: 'You must be logged in to do this.' }); - } - }) +router.use('/:spaceId', function (req: Request, res: Response, next: () => void) { + if (req.user) { + next(); + } + else { + res.status(401).send({ status: 'error', message: 'You must be logged in to do this.' }); + } }) /* diff --git a/packages/core/src/odata/ODataManager.ts b/packages/core/src/odata/ODataManager.ts index d6f65ca444..6cf616c23c 100644 --- a/packages/core/src/odata/ODataManager.ts +++ b/packages/core/src/odata/ODataManager.ts @@ -1,10 +1,7 @@ import { getCreator } from "../index"; import _ = require('underscore'); -import { Request, Response } from "express"; +import { Response } from "express"; import { JsonMap } from '@salesforce/ts-types'; -import { getSession } from '@steedos/auth'; - -var Cookies = require("cookies"); export class ODataManager { private METADATA_PATH = '$metadata'; @@ -316,17 +313,6 @@ export class ODataManager { }; } - async auth(request: Request, response: Response): Promise { - let cookies = new Cookies(request, response); - let authToken: string = request.headers['x-auth-token'] || cookies.get("X-Auth-Token"); - if (!authToken && request.headers.authorization && request.headers.authorization.split(' ')[0] == 'Bearer') { - authToken = request.headers.authorization.split(' ')[1] - } - let spaceId = (request.params ? request.params.spaceId : null) || request.headers['x-space-id']; - let user = await getSession(authToken, spaceId); - return user; - } - // 修改、删除时,如果 doc.space = "global",报错 async checkGlobalRecord(collection: any, id: string, object: any) { if (object.enable_space_global && await collection.count({ filters: `(_id eq '${id}') and (space eq 'global')` })) { diff --git a/packages/core/src/odata/ODataRouter.ts b/packages/core/src/odata/ODataRouter.ts index c0d16f125e..044a5a73a2 100644 --- a/packages/core/src/odata/ODataRouter.ts +++ b/packages/core/src/odata/ODataRouter.ts @@ -7,6 +7,7 @@ import _ = require('underscore'); import { Response } from 'express'; import { getSteedosSchema } from '@steedos/objectql'; +import steedosAuth = require("@steedos/auth"); var express = require('express'); var router = express.Router(); @@ -16,16 +17,16 @@ interface Request extends core.Request { user: any; } +router.use('/:spaceId', steedosAuth.setRequestUser); + // middleware that is specific to this router -router.use('/:spaceId', function auth(req: Request, res: Response, next: () => void) { - getODataManager().auth(req, res).then(function (result) { - if (result) { - req.user = result; - next(); - } else { - res.status(401).send({ status: 'error', message: 'You must be logged in to do this.' }); - } - }) +router.use('/:spaceId', function (req: Request, res: Response, next: () => void) { + if (req.user) { + next(); + } + else { + res.status(401).send({ status: 'error', message: 'You must be logged in to do this.' }); + } }) router.get('/:spaceId/:objectName', async function (req: Request, res: Response) { From 4f77d7af291f6b506e9696554025763bbeb47aa3 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Wed, 14 Aug 2019 16:25:44 +0800 Subject: [PATCH 057/154] @steedos/objectql@1.0.3 --- packages/objectql/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 66df4f15b0..099986a369 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.0.2", + "version": "1.0.3", "description": "", "main": "lib/index.js", "scripts": { @@ -21,7 +21,7 @@ "@steedos/filters": "^1.0.0", "@steedos/odata-v4-typeorm": "^0.0.24", "@steedos/schemas": "^1.0.2", - "@steedos/standard-objects": "^1.0.1", + "@steedos/standard-objects": "^1.0.2", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", From 0c26873a381911ba4fbde1fe92d5c5002d1d9b87 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Wed, 14 Aug 2019 18:38:30 +0800 Subject: [PATCH 058/154] =?UTF-8?q?publish=20@steedos/project-template-emp?= =?UTF-8?q?ty@0.1.4=EF=BC=9A=E6=94=AF=E6=8C=81=E5=8A=A0=E8=BD=BDplugin?= =?UTF-8?q?=E4=B8=AD=E7=9A=84objects?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/project-template-empty/package.json | 2 +- .../project-template-empty/package.template.json | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/project-template-empty/package.json b/packages/project-template-empty/package.json index 90bd62b551..1451f01811 100644 --- a/packages/project-template-empty/package.json +++ b/packages/project-template-empty/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/project-template-empty", "private": false, - "version": "0.1.3", + "version": "0.1.4", "description": "", "main": "server.js", "repository": { diff --git a/packages/project-template-empty/package.template.json b/packages/project-template-empty/package.template.json index 5d3edd46fa..75c7ab99b1 100644 --- a/packages/project-template-empty/package.template.json +++ b/packages/project-template-empty/package.template.json @@ -1,6 +1,6 @@ { "name": "", - "version": "0.0.1", + "version": "1.0.0", "description": "", "main": "server.js", "scripts": { @@ -16,11 +16,11 @@ "license": "ISC", "dependencies": { "@steedos/meteor-bundle-runner": "^1.1.7", - "@steedos/filters": "^0.0.12", - "@steedos/objectql": "^0.2.3", - "@steedos/core": "^1.3.2", - "@steedos/auth": "^1.1.1", - "@steedos/standard-objects": "^0.2.2", + "@steedos/filters": "^1.0.0", + "@steedos/objectql": "^1.0.3", + "@steedos/core": "^1.3.11", + "@steedos/auth": "^1.1.5", + "@steedos/standard-objects": "^1.0.2", "steedos-server": "^1.3.5", "underscore": "1.5.2" }, From 31ebc599d0af4f5ef1131b7cfa55628bcfe8c36c Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Thu, 15 Aug 2019 13:23:42 +0800 Subject: [PATCH 059/154] @steedos/objectql@1.0.4 --- packages/objectql/package.json | 2 +- packages/objectql/src/graphql/index.ts | 14 +++++++------- packages/objectql/src/types/object.ts | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 099986a369..968e35c456 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.0.3", + "version": "1.0.4", "description": "", "main": "lib/index.js", "scripts": { diff --git a/packages/objectql/src/graphql/index.ts b/packages/objectql/src/graphql/index.ts index 598eb5780a..d1a12c384f 100644 --- a/packages/objectql/src/graphql/index.ts +++ b/packages/objectql/src/graphql/index.ts @@ -69,7 +69,7 @@ function convertFields(steedosSchema: SteedosSchema, fields, knownTypes, datasou args: {}, resolve: async function (source, args, context, info) { let object = steedosSchema.getObject(objectName); - let userSession = context ? context.userSession : null; + let userSession = context ? context.user : null; let record = await object.findOne(source[info.fieldName], {}, userSession); return record; } @@ -85,7 +85,7 @@ function convertFields(steedosSchema: SteedosSchema, fields, knownTypes, datasou if (filters.length === 0) { return null; } - let userSession = context ? context.userSession : null; + let userSession = context ? context.user : null; return await object.find({ filters: filters.join(' or ') }, userSession); @@ -142,8 +142,8 @@ export function buildGraphQLSchema(steedosSchema: SteedosSchema, datasource: Ste args: { 'fields': { type: new GraphQLList(GraphQLString) || GraphQLString }, 'filters': { type: GraphQLJSON }, 'top': { type: GraphQLInt }, 'skip': { type: GraphQLInt }, 'sort': { type: GraphQLString } }, resolve: async function (source, args, context, info) { let object = steedosSchema.getObject(`${datasourceName}.${obj.name}`); - let userSession = context ? context.userSession : null; - console.log('context.userSession: ', userSession); + let userSession = context ? context.user : null; + console.log('context.user: ', userSession); return object.find(args, userSession); } } @@ -159,7 +159,7 @@ export function buildGraphQLSchema(steedosSchema: SteedosSchema, datasource: Ste var data = args['data']; data._id = data._id || new ObjectId().toHexString(); let object = steedosSchema.getObject(`${datasourceName}.${type.name}`); - let userSession = context ? context.userSession : null; + let userSession = context ? context.user : null; return object.insert(data, userSession); } } @@ -171,7 +171,7 @@ export function buildGraphQLSchema(steedosSchema: SteedosSchema, datasource: Ste let data = args['data']; let _id = args['_id']; let object = steedosSchema.getObject(`${datasourceName}.${type.name}`); - let userSession = context ? context.userSession : null; + let userSession = context ? context.user : null; return object.update(_id, data, userSession); } } @@ -182,7 +182,7 @@ export function buildGraphQLSchema(steedosSchema: SteedosSchema, datasource: Ste console.log('args: ', args); let _id = args['_id']; let object = steedosSchema.getObject(`${datasourceName}.${type.name}`); - let userSession = context ? context.userSession : null; + let userSession = context ? context.user : null; return object.delete(_id, userSession); } } diff --git a/packages/objectql/src/types/object.ts b/packages/objectql/src/types/object.ts index acdcbc6ecf..fa9a508720 100644 --- a/packages/objectql/src/types/object.ts +++ b/packages/objectql/src/types/object.ts @@ -675,8 +675,8 @@ export class SteedosObjectType extends SteedosObjectProperties { query.filters = query.filters ? `(${query.filters}) and (space eq \'${spaceId}\')` : `(space eq \'${spaceId}\')`; } if (spaceId && !objPm.viewAllRecords && objPm.viewCompanyRecords) { // 公司级 - let companyFilters = _.map(userSession.companyIds, function (cid) { - return `(company_id eq '${cid}')` + let companyFilters = _.map(userSession.companies, function (comp: any) { + return `(company_id eq '${comp._id}')` }).join(' or ') if (companyFilters) { query.filters = query.filters ? `(${query.filters} and (${companyFilters}))` : `(${companyFilters})`; From 639d08805abaea04f1987f9e989fafb9d9a92689 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Thu, 15 Aug 2019 13:25:34 +0800 Subject: [PATCH 060/154] @steedos/core@1.3.12 --- packages/core/package.json | 4 +-- packages/core/src/init/core.ts | 58 +++++----------------------------- 2 files changed, 10 insertions(+), 52 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 95d6a1e1c9..7be02d6483 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.11", + "version": "1.3.12", "description": "", "main": "lib/index.js", "scripts": { @@ -19,7 +19,7 @@ "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", "@steedos/auth": "^1.1.5", - "@steedos/objectql": "^1.0.2", + "@steedos/objectql": "^1.0.4", "@steedos/standard-objects": "^1.0.2", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", diff --git a/packages/core/src/init/core.ts b/packages/core/src/init/core.ts index bf85f033f4..a5e1ea0c49 100644 --- a/packages/core/src/init/core.ts +++ b/packages/core/src/init/core.ts @@ -85,45 +85,9 @@ export class Core { } private static initGraphqlAPI() { - router.use("/:dataSourceName", function (req, res, next) { - var authToken, user; - authToken = Steedos.getAuthToken(req, res); - user = null; - if (authToken) { - user = Meteor.wrapAsync(function (authToken, cb) { - return steedosAuth.getSession(authToken).then(function (resolve, reject) { - return cb(reject, resolve); - }); - })(authToken); - } - if (user) { - return next(); - } else { - return res.status(401).send({ - errors: [ - { - 'message': 'You must be logged in to do this.' - } - ] - }); - } - }); - router.use("/:dataSourceName/:spaceId", function (req, res, next) { - var authToken, spaceId, user; - authToken = Steedos.getAuthToken(req, res); - spaceId = req.params.spaceId; - console.log('spaceId: ', spaceId); - user = null; - if (authToken) { - user = Meteor.wrapAsync(function (authToken, spaceId, cb) { - return steedosAuth.getSession(authToken, spaceId).then(function (resolve, reject) { - return cb(reject, resolve); - }); - })(authToken, spaceId); - } - if (user) { - console.log('userSession: ', user); - req.userSession = user; + router.use("/", steedosAuth.setRequestUser); + router.use("/", function (req, res, next) { + if (req.user) { return next(); } else { return res.status(401).send({ @@ -135,18 +99,12 @@ export class Core { }); } }); + _.each(Creator.steedosSchema.getDataSources(), function (datasource: any, name) { - if (datasource.driver === 'mongo' || datasource.driver === 'meteor-mongo') { - return router.use("/" + name + "/:spaceId", graphqlHTTP({ - schema: datasource.buildGraphQLSchema(), - graphiql: true - })); - } else { - return router.use("/" + name, graphqlHTTP({ - schema: datasource.buildGraphQLSchema(), - graphiql: true - })); - } + return router.use("/" + name, graphqlHTTP({ + schema: datasource.buildGraphQLSchema(), + graphiql: true + })); }); app.use('/graphql', router); return WebApp.connectHandlers.use(app); From 4fa8d44d76957178abfb5ac3c11f29fea8229455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= <50353452+hotlong@users.noreply.github.com> Date: Fri, 16 Aug 2019 14:32:16 +0800 Subject: [PATCH 061/154] Update standard_objects.md --- docs/standard_objects.md | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/standard_objects.md b/docs/standard_objects.md index 3c0f91ad96..ebd9971bac 100644 --- a/docs/standard_objects.md +++ b/docs/standard_objects.md @@ -32,15 +32,25 @@ Steedos SAAS 版本可以把用户划分为不同的工作区(企业),每 业务人员可以自定义报表。 ### 任务 tasks + 用于统一管理对象的相关任务,业务人员可以在同一个列表中可以查看关联到各业务对象的工作任务。 +[源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/tasks.object.yml) + ### 日程 events + 用于统一管理对象的相关日程,业务人员可以在同一个列表中可以查看关联到各业务对象的日程。 +[源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/events.object.yml) + ### 备忘 notes + 用于统一管理对象的相关备忘,业务人员可以在同一个列表中可以查看关联到各业务对象的备忘。 +[源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/notes.object.yml) + ### 附件 cms_files + 用于统一管理对象的相关附件,业务人员可以在同一个列表中可以查看关联到各业务对象的备忘。 [源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/cms_files.object.js) @@ -48,16 +58,19 @@ Steedos SAAS 版本可以把用户划分为不同的工作区(企业),每 ## 权限 ### 权限组 permission_set + 权限组是授予用户对各种对象和功能的访问权限的设置和权限集合,系统内置三个权限集 admin, user, guest。每个用户可以属于多个权限集,用户的实际权限为各权限集赋予的权限叠加。 [源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/permission_set.object.yml) ### 对象权限 permission_objects + 管理员可以在数据库中为权限组设定对象级别的权限。数据库中配置的权限可以覆盖代码中定义的权限。 [源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/permission_objects.object.yml) ### 记录级权限 permission_shares + 在对象级权限的基础上,通过配置共享规则,可以实现记录级权限。 [源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/permission_shares.object.js) @@ -65,19 +78,38 @@ Steedos SAAS 版本可以把用户划分为不同的工作区(企业),每 ## 审批 ### 审批单 forms + 用于保存审批单,用户可以使用Steedos表单设计工具来设计审批单。 +[源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/workflow/forms.object.yml) + ### 审批流程 flows + 用于保存审批流程,用户可以使用Steedos流程设计工具来设计流程。每个流程对应一个审批单。 +[源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/workflow/flows.object.yml) + ### 流程分类 categories + 用于分类显示业务流程。每个流程只能属于一个分类。 +[源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/workflow/flow_categories.object.yml) + ### 审批岗位 flow_roles + 用于配置公司的审批岗位。建议流程步骤处理人绑定到岗位而不是具体人员。当人员调动时,只需要修改岗位成员。 +[源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/workflow/flow_roles.object.yml) + ### 岗位成员 flow_positions + 用于配置每个岗位对应的员工。 +[源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/workflow/flow_positions.object.yml) + ### 申请单 instances -用于保存业务人员填写的申请单和签核历程。 \ No newline at end of file + +用于保存业务人员填写的申请单和签核历程。 + +[源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/workflow/instances.object.yml) + From 49de3fa8dc5a05849fd71d0f031325740debb11f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= <50353452+hotlong@users.noreply.github.com> Date: Fri, 16 Aug 2019 14:33:39 +0800 Subject: [PATCH 062/154] Update standard_objects.md --- docs/standard_objects.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/standard_objects.md b/docs/standard_objects.md index ebd9971bac..c8939bf321 100644 --- a/docs/standard_objects.md +++ b/docs/standard_objects.md @@ -7,21 +7,25 @@ title: 标准业务对象 ## 组织与人员 ### 用户 users + 用于保存系统中的注册用户和用户的基本参数。 [源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/users.object.yml) ### 工作区 spaces + Steedos SAAS 版本可以把用户划分为不同的工作区(企业),每个工作区可以配置独立的组织机构和权限控制。业务人员录入的每一条业务数据都会自动加入 space 属性,用于标记所属的工作区。 [源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/spaces.object.yml) ### 员工 space_users + 用于标记用户属于哪个工作区,以及在对应工作区的参数设置。每个用户可以属于多个工作区。 [源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/space_users.object.yml) ### 组织机构 organizations + 用于在工作区内,定义单位的组织机构。每个员工可以属于多个组织机构。 [源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/organizations.object.yml) @@ -29,8 +33,11 @@ Steedos SAAS 版本可以把用户划分为不同的工作区(企业),每 ## 功能 ### 报表 reports + 业务人员可以自定义报表。 +[源码](https://github.com/steedos/object-server/blob/master/packages/standard-objects/reports.object.yml) + ### 任务 tasks 用于统一管理对象的相关任务,业务人员可以在同一个列表中可以查看关联到各业务对象的工作任务。 From 8e737f7980f1708fd16545893e810ad5f325ab16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 16 Aug 2019 16:11:32 +0800 Subject: [PATCH 063/154] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9C=BA=E6=9E=84?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/organization.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/docs/organization.md b/docs/organization.md index 13eae29aa2..0514a9da51 100644 --- a/docs/organization.md +++ b/docs/organization.md @@ -2,6 +2,24 @@ title: 组织结构 --- -- 工作区管理员可以设定组织结构信息。 -- 组织管理员可以设定其主单位下的组织结构信息 -- 在普通用户使用审批王前,管理员需要预先做好设置工作:添加部门、添加人员账号、分配人员至各自的部门、设置岗位、设置岗位成员。 +设定公司的树状组织结构。 + +## 普通企业 + +根节点为单位名称,并将单位各层级部门添加到组织结构图中。 + +每个员工可以属于多个部门,其中选中的第一个部门为主部门。 + +## 集团企业 + +对于集团企业,可以将下属单位设定为"单位级"。每个单位可以设定单独的单位管理员,单位管理员只能修改本单位的组织结构。 + +单位级组织下可以创建部门级组织。 + +每个用户可以设定多个单位,其中选中的第一个单位为主单位。 + +当员工被添加到部门级组织时。员工的所属单位会自动被设置为部门对应的单位。 + +## 组织结构管理权限 + +只有授权用户可以管理组织结构。工作区管理员可以设定整个工作区的组织结构;组织管理员可以设定其主单位下的组织结构信息。 From 963509512e7f613c00a7081ce5566b039400d164 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 16 Aug 2019 16:16:39 +0800 Subject: [PATCH 064/154] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/organization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/organization.md b/docs/organization.md index 0514a9da51..821068609c 100644 --- a/docs/organization.md +++ b/docs/organization.md @@ -2,7 +2,7 @@ title: 组织结构 --- -设定公司的树状组织结构。 +管理员可以在设置界面中,设定公司的组织结构。组织结构支持树状层级结构。业务人员在台账中选择员工时,可以按组织结构浏览人员。 ## 普通企业 From 837f05b0de702c6d5531b75489d74ee5db30e0a2 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Fri, 16 Aug 2019 17:48:54 +0800 Subject: [PATCH 065/154] =?UTF-8?q?=E6=89=8B=E6=9C=BA=E6=B5=8F=E8=A7=88?= =?UTF-8?q?=E5=99=A8=E7=82=B9=E5=87=BB=E9=99=84=E4=BB=B6=E4=BC=9A=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E5=88=B0=E9=A6=96=E9=A1=B5=20#1300=20#1272?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/standard-objects/cms_files.object.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/standard-objects/cms_files.object.yml b/packages/standard-objects/cms_files.object.yml index f32c6e2814..4e97fadf3e 100644 --- a/packages/standard-objects/cms_files.object.yml +++ b/packages/standard-objects/cms_files.object.yml @@ -152,11 +152,11 @@ actions: label: 下载 visible: ! |- function (object_name, record_id, record_permissions) { - var fileRecord; + var fileRecord; if (object_name === Session.get('object_name')) { - fileRecord = Creator.getObjectRecord(); + fileRecord = Creator.getObjectRecord(); if (!fileRecord) { - return false; + return false; } } return true; @@ -164,7 +164,7 @@ actions: 'on': record todo: ! |- function (object_name, record_id) { - var file, fileId, filename, length, ref, rev, url; + var file, fileId, filename, length, ref, rev, url; file = this.record; fileId = file != null ? (ref = file.versions) != null ? ref[0] : void 0 : void 0; if (fileId) { @@ -173,9 +173,12 @@ actions: filename = file.name; rev = fileId; length = file.size; - return Steedos.cordovaDownload(url, filename, rev, length); + Steedos.cordovaDownload(url, filename, rev, length); + return false; } else { - return window.location = Steedos.absoluteUrl("/api/files/files/" + fileId + "?download=true"); + url = Steedos.absoluteUrl("/api/files/files/" + fileId + "?download=true"); + window.location = url; + return false; } } } From 2aca26ec1528fb83147c06630cbdbaac77ec470c Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Fri, 16 Aug 2019 18:37:47 +0800 Subject: [PATCH 066/154] Update connection.json --- packages/objectql/test/connection.json | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/objectql/test/connection.json b/packages/objectql/test/connection.json index 558ffef8c9..2ea91f4d6d 100644 --- a/packages/objectql/test/connection.json +++ b/packages/objectql/test/connection.json @@ -9,18 +9,22 @@ "host": "192.168.0.237", "port": 1521, "username": "qhd170411", - "password": "password", + "password": "123456", "database": "ORCL" }, "postgres": { - "url": "postgresql://postgres:hotoainc.@192.168.0.195/driver-test" + "url": "postgresql://postgres:hotoainc.@192.168.0.195/driver-test", + "host": "192.168.0.195", + "username": "postgres", + "password": "hotoainc.", + "database": "driver-test" }, "mssql": { - "--url": "mssql://sa:password@192.168.0.190:1433/driver-test", + "url": "mssql://sa:hotoainc.@192.168.0.190:1433/driver-test", "host": "192.168.0.190", "port": 1433, - "username":"sa", - "password":"password", - "database":"driver-test" + "username": "sa", + "password": "hotoainc.", + "database": "driver-test" } -} +} \ No newline at end of file From 6214f81ef16a14f9c68ae8180468b8bad506798f Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Fri, 16 Aug 2019 18:39:33 +0800 Subject: [PATCH 067/154] =?UTF-8?q?#118=20=E5=AF=B9=E8=B1=A1=E7=BB=A7?= =?UTF-8?q?=E6=89=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/init/index.ts | 5 +- packages/core/src/init/loadFiles.ts | 29 +++- packages/objectql/src/types/datasource.ts | 191 ++++++++++++++-------- packages/objectql/src/types/object.ts | 4 +- packages/objectql/src/util/index.ts | 3 +- 5 files changed, 159 insertions(+), 73 deletions(-) diff --git a/packages/core/src/init/index.ts b/packages/core/src/init/index.ts index 9c9ca94b44..c858366d03 100644 --- a/packages/core/src/init/index.ts +++ b/packages/core/src/init/index.ts @@ -4,9 +4,10 @@ import { Core } from './core' import { Plugins } from './plugins'; export function init() { - LoadFiles.run(); + LoadFiles.initStandardObjects(); Datasources.create(); Plugins.init(); - Datasources.init(); + LoadFiles.initProjectObjects() Core.run(); + Datasources.init(); } \ No newline at end of file diff --git a/packages/core/src/init/loadFiles.ts b/packages/core/src/init/loadFiles.ts index 84974ebc96..54a3c6cf82 100644 --- a/packages/core/src/init/loadFiles.ts +++ b/packages/core/src/init/loadFiles.ts @@ -4,14 +4,33 @@ const globby = require("globby"); const path = require("path"); const fs = require("fs"); const UglifyJS = require("uglify-js"); +const clone = require("clone"); export class LoadFiles { - static run() { + static _extendObjectsConfig = [] + + static initStandardObjects(){ this.loadStandardFiles(); + } + + static initProjectObjects() { this.loadDefaultDatasourcesFiles(); + this.initProjectExtendObjects(); this.loadDatasourcesStaticJs(); } + private static initProjectExtendObjects(){ + _.each(this._extendObjectsConfig, (objectConfig)=>{ + let parentObjectConfig = clone(Creator.Objects[objectConfig.extend]); + if(_.isEmpty(parentObjectConfig)){ + throw new Error(`not find extend object: ${objectConfig.extend}`); + } + let config = objectql.extend(parentObjectConfig, objectConfig); + delete config.extend + Creator.Objects[objectConfig.extend] = config + }) + } + private static loadDatasourcesStaticJs(){ let datasourcesConfig = Meteor.settings.datasources @@ -73,8 +92,12 @@ export class LoadFiles { //load .object.yml let objects = objectql.loadObjectFiles(filePath) _.each(objects, (object) => { - if (object.name != 'core') { - Creator.Objects[object.name] = object + if(object.extend){ + this._extendObjectsConfig.push(object) + }else{ + if (object.name != 'core') { + Creator.Objects[object.name] = object + } } }) diff --git a/packages/objectql/src/types/datasource.ts b/packages/objectql/src/types/datasource.ts index db4f5bce73..fa38c11ae1 100644 --- a/packages/objectql/src/types/datasource.ts +++ b/packages/objectql/src/types/datasource.ts @@ -93,6 +93,20 @@ export class SteedosDataSourceType implements Dictionary { private _driver: SteedosDatabaseDriverType | string | SteedosDriver; private _logging: boolean | Array; private _graphQLSchema: GraphQLSchema; + private _config: SteedosDataSourceTypeConfig; + private _extendObjectsConfig: Array = []; + public get extendObjectsConfig(): Array { + return this._extendObjectsConfig; + } + public set extendObjectsConfig(value: Array) { + this._extendObjectsConfig = value; + } + public get config(): SteedosDataSourceTypeConfig { + return this._config; + } + public set config(value: SteedosDataSourceTypeConfig) { + this._config = value; + } public get driver(): SteedosDatabaseDriverType | string | SteedosDriver { return this._driver; @@ -114,43 +128,40 @@ export class SteedosDataSourceType implements Dictionary { } setObject(object_name: string, objectConfig: SteedosObjectTypeConfig) { - objectConfig.name = object_name - let config: SteedosObjectTypeConfig = { fields: {} } - let baseObject = this.getObject('base'); - let coreObject = this.getObject('core'); - if (this.driver === SteedosDatabaseDriverType.MeteorMongo && baseObject) { - let { triggers: baseTriggers, fields: basefields, permission_set, actions: baseActions, list_views: baseListViews } = clone(baseObject.toConfig()) - config = util.extend(config, { triggers: baseTriggers }, { actions: baseActions }, { actions: baseListViews }, { permission_set: permission_set }, objectConfig, { fields: basefields }, objectConfig) - } else if (this.driver != SteedosDatabaseDriverType.MeteorMongo && coreObject) { - let { fields: basefields, permission_set, actions: baseActions, list_views: baseListViews } = clone(coreObject.toConfig()) - let coreListeners = clone(coreObject.listeners); - _.each(coreListeners, function (v: SteedosListenerConfig, k) { - v.listenTo = object_name; - }) - config = util.extend(config, { listeners: coreListeners }, { actions: baseActions }, { actions: baseListViews }, { permission_set: permission_set }, objectConfig, { fields: basefields }, objectConfig) - } else { - config = objectConfig + let config:SteedosObjectTypeConfig; + if(objectConfig.extend){ + let parentObjectConfig = clone(this._objectsConfig[object_name]); + if(_.isEmpty(parentObjectConfig)){ + throw new Error(`not find extend object: ${objectConfig.extend}`); + } + config = util.extend(parentObjectConfig, objectConfig); + delete config.extend + }else{ + objectConfig.name = object_name + config = { fields: {} } + let baseObject = this.getObject('base'); + let coreObject = this.getObject('core'); + if (this.driver === SteedosDatabaseDriverType.MeteorMongo && baseObject) { + let { triggers: baseTriggers, fields: basefields, permission_set, actions: baseActions, list_views: baseListViews } = clone(baseObject.toConfig()) + config = util.extend(config, { triggers: baseTriggers }, { actions: baseActions }, { actions: baseListViews }, { permission_set: permission_set }, objectConfig, { fields: basefields }, objectConfig) + } else if (this.driver != SteedosDatabaseDriverType.MeteorMongo && coreObject) { + let { fields: basefields, permission_set, actions: baseActions, list_views: baseListViews } = clone(coreObject.toConfig()) + let coreListeners = clone(coreObject.listeners); + _.each(coreListeners, function (v: SteedosListenerConfig, k) { + v.listenTo = object_name; + }) + config = util.extend(config, { listeners: coreListeners }, { actions: baseActions }, { actions: baseListViews }, { permission_set: permission_set }, objectConfig, { fields: basefields }, objectConfig) + } else { + config = objectConfig + } } + let object = new SteedosObjectType(object_name, this, config) this._objectsConfig[object_name] = config; this._objects[object_name] = object; } - constructor(datasource_name: string, config: SteedosDataSourceTypeConfig, schema: SteedosSchema) { - this._name = datasource_name - this._url = config.url - this._host = config.host - this._port = config.port - this._username = config.username - this._password = config.password - this._database = config.database - this._connectString = config.connectString - this._timezone = config.timezone - this._options = config.options - this._schema = schema - this._driver = config.driver - this._logging = config.logging - + initDriver(){ let driverConfig: SteedosDriverConfig = { url: this._url, host: this._host, @@ -164,8 +175,8 @@ export class SteedosDataSourceType implements Dictionary { logging: this._logging } - if (_.isString(config.driver)) { - switch (config.driver) { + if (_.isString(this.config.driver)) { + switch (this.config.driver) { case SteedosDatabaseDriverType.Mongo: this._adapter = new SteedosMongoDriver(driverConfig); break; @@ -188,13 +199,16 @@ export class SteedosDataSourceType implements Dictionary { this._adapter = new SteedosMySqlDriver(driverConfig); break; default: - throw new Error(`the driver ${config.driver} is not supported`) + throw new Error(`the driver ${this.config.driver} is not supported`) } } else { - this._adapter = config.driver + this._adapter = this.config.driver } + } + + initBaseObject(){ let standardObjectsDir = path.dirname(require.resolve("@steedos/standard-objects")) - if (config.driver === SteedosDatabaseDriverType.MeteorMongo) { + if (this.config.driver === SteedosDatabaseDriverType.MeteorMongo) { if (standardObjectsDir) { let baseObject = util.loadFile(path.join(standardObjectsDir, "base.object.yml")) this.setObject(baseObject.name, baseObject) @@ -209,46 +223,80 @@ export class SteedosDataSourceType implements Dictionary { this.setObjectListener(coreObjectTrigger) } } + } - if (config.getRoles && !_.isFunction(config.getRoles)) { - throw new Error('getRoles must be a function') - } - - this._getRoles = config.getRoles - - _.each(config.objects, (object, object_name) => { - this.setObject(object_name, object) + initObjects(){ + _.each(this.config.objects, (object, object_name) => { + if (object.extend){ + this._extendObjectsConfig.push(object) + }else{ + this.setObject(object_name, object) + } }) - _.each(config.objectFiles, (objectFiles) => { + _.each(this.config.objectFiles, (objectFiles) => { this.use(objectFiles) }) - _.each(config.objectsRolesPermission, (objectRolesPermission, object_name) => { + _.each(this.config.objectsRolesPermission, (objectRolesPermission, object_name) => { _.each(objectRolesPermission, (objectRolePermission, role_name) => { objectRolePermission.name = role_name this.setObjectPermission(object_name, objectRolePermission) }) }) + } + initExtendObject(){ + _.each(this._extendObjectsConfig, (objectConfig)=>{ + this.setObject(objectConfig.extend, objectConfig) + }) + } - _.each(config.apps, (appConfig, app_id) => { + initApps(){ + _.each(this.config.apps, (appConfig, app_id) => { this.addApp(app_id, appConfig) }) - _.each(config.appFiles, (appFile) => { + _.each(this.config.appFiles, (appFile) => { this.useAppFile(appFile) }) + } - _.each(config.reports, (reportConfig, report_id) => { + initReports(){ + _.each(this.config.reports, (reportConfig, report_id) => { this.addReport(report_id, reportConfig) }) - _.each(config.reportFiles, (reportFile) => { + _.each(this.config.reportFiles, (reportFile) => { this.useReportFile(reportFile) }) } + constructor(datasource_name: string, config: SteedosDataSourceTypeConfig, schema: SteedosSchema) { + this._name = datasource_name + this.config = config + this._url = config.url + this._host = config.host + this._port = config.port + this._username = config.username + this._password = config.password + this._database = config.database + this._connectString = config.connectString + this._timezone = config.timezone + this._options = config.options + this._schema = schema + this._driver = config.driver + this._logging = config.logging + + this.initDriver(); + this.initBaseObject() + + if (config.getRoles && !_.isFunction(config.getRoles)) { + throw new Error('getRoles must be a function') + } + this._getRoles = config.getRoles + } + /**apps */ addApp(app_id: string, config: SteedosAppTypeConfig) { @@ -375,20 +423,24 @@ export class SteedosDataSourceType implements Dictionary { let objectJsons = util.loadObjects(filePath) let fieldJsons = util.loadFields(filePath) _.each(objectJsons, (json: SteedosObjectTypeConfig) => { - let objectFieldsJson = fieldJsons.filter(fieldJson => fieldJson.object_name === json.name) - let objectJson: SteedosObjectTypeConfig = { fields: {} } - if (objectFieldsJson.length > 0) { - let objectFields = objectFieldsJson.map(fj => { - delete fj.object_name - let f = { fields: {} } - f.fields[fj.name] = fj - return f - }) - objectJson = util.extend({}, json, ...objectFields) - } else { - objectJson = json + if (json.extend){ + this._extendObjectsConfig.push(json) + }else{ + let objectFieldsJson = fieldJsons.filter(fieldJson => fieldJson.object_name === json.name) + let objectJson: SteedosObjectTypeConfig = { fields: {} } + if (objectFieldsJson.length > 0) { + let objectFields = objectFieldsJson.map(fj => { + delete fj.object_name + let f = { fields: {} } + f.fields[fj.name] = fj + return f + }) + objectJson = util.extend({}, json, ...objectFields) + } else { + objectJson = json + } + this.setObject(objectJson.name, objectJson) } - this.setObject(objectJson.name, objectJson) }) // let fieldJsons = util.loadFields(filePath) @@ -433,6 +485,13 @@ export class SteedosDataSourceType implements Dictionary { let object = this.getObject(object_name); if (object) { + //TODO 处理listener 继承 + //console.log('setObjectListener object_name', object_name, this._objectsConfig[object_name]); + let objectListener = this._objectsConfig[object_name].listeners; + if(!objectListener){ + this._objectsConfig[object_name].listeners = {} + } + this._objectsConfig[object_name].listeners[json.name] = json object.setListener(json.name || '', json) } else { throw new Error(`not find object: ${object_name}`); @@ -476,7 +535,11 @@ export class SteedosDataSourceType implements Dictionary { } async init() { - this.schema.transformReferenceOfObject(this) + this.initObjects(); + this.initExtendObject(); + this.initApps(); + this.initReports(); + this.schema.transformReferenceOfObject(this); if (this._adapter.init) { return await this._adapter.init(this._objects); } diff --git a/packages/objectql/src/types/object.ts b/packages/objectql/src/types/object.ts index fa9a508720..357589cad8 100644 --- a/packages/objectql/src/types/object.ts +++ b/packages/objectql/src/types/object.ts @@ -9,7 +9,7 @@ import { formatFiltersToODataQuery } from "@steedos/filters"; abstract class SteedosObjectProperties { name?: string - // extend?: string + extend?: string tableName?: string label?: string icon?: string @@ -360,7 +360,7 @@ export class SteedosObjectType extends SteedosObjectProperties { } //TODO 处理对象继承 - extend(config: SteedosObjectTypeConfig) { + extend_TODO(config: SteedosObjectTypeConfig) { if (this.name != config.name) throw new Error("You can not extend on different object"); diff --git a/packages/objectql/src/util/index.ts b/packages/objectql/src/util/index.ts index 9a97d493c5..0446985f5b 100644 --- a/packages/objectql/src/util/index.ts +++ b/packages/objectql/src/util/index.ts @@ -136,7 +136,7 @@ let loadApps = (filePath: string)=>{ exports.loadApps = loadApps -exports.extend = (destination: JsonMap, ...sources: JsonMap[])=>{ +export function extend(destination: JsonMap, ...sources: JsonMap[]){ _.each(sources, (source: JsonMap)=>{ _.each(source, (v:never, k: string)=>{ if(!has(destination, k)){ @@ -153,7 +153,6 @@ exports.extend = (destination: JsonMap, ...sources: JsonMap[])=>{ } }) }) - return destination } From 8a97b76683366e230d9e2a52c1233533e70ce6ac Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Fri, 16 Aug 2019 18:40:05 +0800 Subject: [PATCH 068/154] =?UTF-8?q?#118=20=E4=BF=AE=E6=94=B9=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/objectql/test/connection.json | 18 ++++--- packages/objectql/test/unit/dbTest.ts | 2 +- .../objectql/test/unit/driver/mysql/utc.ts | 2 +- .../test/unit/driver/sqlite3/fields.ts | 1 + .../test/unit/driver/sqlite3/filters.ts | 1 + .../objectql/test/unit/driver/sqlite3/page.ts | 1 + .../driver/sqlite3/primaryKeyAutoincrement.ts | 1 + .../objectql/test/unit/driver/sqlite3/sort.ts | 1 + .../objectql/test/unit/extendBaseObject.ts | 1 + .../test/unit/getSteedosSchema.test.ts | 3 +- packages/objectql/test/unit/idFieldTest.ts | 4 ++ packages/objectql/test/unit/object/extend.ts | 24 +++++++++ .../test/unit/object/src/accounts.object.yml | 52 +++++++++++++++++++ .../test/unit/object/src/accounts.trigger.js | 16 ++++++ .../object/src/accounts_extend.object.yml | 8 +++ .../objectql/test/unit/object_enable.test.ts | 2 +- packages/objectql/test/unit/permissionTest.ts | 4 +- .../unit/schema/datasource/sqlite3/crud.ts | 1 + .../unit/schema/datasource/sqlite3/filters.ts | 1 + packages/objectql/test/unit/schemaTest.ts | 3 +- packages/objectql/test/unit/triggersTest.ts | 3 +- packages/objectql/test/unit/useTest.ts | 4 +- 22 files changed, 137 insertions(+), 16 deletions(-) create mode 100644 packages/objectql/test/unit/object/extend.ts create mode 100644 packages/objectql/test/unit/object/src/accounts.object.yml create mode 100644 packages/objectql/test/unit/object/src/accounts.trigger.js create mode 100644 packages/objectql/test/unit/object/src/accounts_extend.object.yml diff --git a/packages/objectql/test/connection.json b/packages/objectql/test/connection.json index 558ffef8c9..2ea91f4d6d 100644 --- a/packages/objectql/test/connection.json +++ b/packages/objectql/test/connection.json @@ -9,18 +9,22 @@ "host": "192.168.0.237", "port": 1521, "username": "qhd170411", - "password": "password", + "password": "123456", "database": "ORCL" }, "postgres": { - "url": "postgresql://postgres:hotoainc.@192.168.0.195/driver-test" + "url": "postgresql://postgres:hotoainc.@192.168.0.195/driver-test", + "host": "192.168.0.195", + "username": "postgres", + "password": "hotoainc.", + "database": "driver-test" }, "mssql": { - "--url": "mssql://sa:password@192.168.0.190:1433/driver-test", + "url": "mssql://sa:hotoainc.@192.168.0.190:1433/driver-test", "host": "192.168.0.190", "port": 1433, - "username":"sa", - "password":"password", - "database":"driver-test" + "username": "sa", + "password": "hotoainc.", + "database": "driver-test" } -} +} \ No newline at end of file diff --git a/packages/objectql/test/unit/dbTest.ts b/packages/objectql/test/unit/dbTest.ts index 2de48d062b..fe05dabd48 100644 --- a/packages/objectql/test/unit/dbTest.ts +++ b/packages/objectql/test/unit/dbTest.ts @@ -13,7 +13,7 @@ describe('Test db', () => { } } }) - + await mySchema.getDataSource().init() let users = mySchema.getObject('users') let random = new Date().getTime(); let id = `test_users_${random}`; diff --git a/packages/objectql/test/unit/driver/mysql/utc.ts b/packages/objectql/test/unit/driver/mysql/utc.ts index 383977e54b..854d9effa9 100644 --- a/packages/objectql/test/unit/driver/mysql/utc.ts +++ b/packages/objectql/test/unit/driver/mysql/utc.ts @@ -34,7 +34,7 @@ describe('utc of datetime/date for mysql database', () => { let datasourceDefault: any = { timezone: 'Z', driver: SteedosDatabaseDriverType.MySql, - logging: true, + logging: false, objects: { test: { label: 'MySql Schema', diff --git a/packages/objectql/test/unit/driver/sqlite3/fields.ts b/packages/objectql/test/unit/driver/sqlite3/fields.ts index 2caf3feb25..978237b9b0 100644 --- a/packages/objectql/test/unit/driver/sqlite3/fields.ts +++ b/packages/objectql/test/unit/driver/sqlite3/fields.ts @@ -94,6 +94,7 @@ describe('fetch records width specific fields for sqlite3 database', () => { } }); const datasource = mySchema.getDataSource("default"); + await datasource.init(); await datasource.createTables(); driver = datasource.adapter; }); diff --git a/packages/objectql/test/unit/driver/sqlite3/filters.ts b/packages/objectql/test/unit/driver/sqlite3/filters.ts index e07de925b6..dbe54b1070 100644 --- a/packages/objectql/test/unit/driver/sqlite3/filters.ts +++ b/packages/objectql/test/unit/driver/sqlite3/filters.ts @@ -228,6 +228,7 @@ describe('filters for sqlite3 database', () => { } }); const datasource = mySchema.getDataSource("default"); + await datasource.init() await datasource.createTables(); driver = datasource.adapter; }); diff --git a/packages/objectql/test/unit/driver/sqlite3/page.ts b/packages/objectql/test/unit/driver/sqlite3/page.ts index 2d4257983b..6fc942cae7 100644 --- a/packages/objectql/test/unit/driver/sqlite3/page.ts +++ b/packages/objectql/test/unit/driver/sqlite3/page.ts @@ -165,6 +165,7 @@ describe('fetch records by paging for sqlite3 database', () => { } }); const datasource = mySchema.getDataSource("default"); + await datasource.init(); await datasource.createTables(); driver = datasource.adapter; await driver.run(`DELETE FROM "${tableName}"`); diff --git a/packages/objectql/test/unit/driver/sqlite3/primaryKeyAutoincrement.ts b/packages/objectql/test/unit/driver/sqlite3/primaryKeyAutoincrement.ts index 98474f8a3c..b1b31cce6d 100644 --- a/packages/objectql/test/unit/driver/sqlite3/primaryKeyAutoincrement.ts +++ b/packages/objectql/test/unit/driver/sqlite3/primaryKeyAutoincrement.ts @@ -132,6 +132,7 @@ describe('primary key autoincrement test for sqlite3 database', () => { } }); const datasource = mySchema.getDataSource("default"); + await datasource.init(); await datasource.createTables(); driver = datasource.adapter; // 删除重置主键自增队列 diff --git a/packages/objectql/test/unit/driver/sqlite3/sort.ts b/packages/objectql/test/unit/driver/sqlite3/sort.ts index 8fcb92210b..f7cdac2346 100644 --- a/packages/objectql/test/unit/driver/sqlite3/sort.ts +++ b/packages/objectql/test/unit/driver/sqlite3/sort.ts @@ -111,6 +111,7 @@ describe('fetch records for sqlite3 with sort arguments as a string that comply } }); const datasource = mySchema.getDataSource("default"); + await datasource.init(); await datasource.createTables(); driver = datasource.adapter; }); diff --git a/packages/objectql/test/unit/extendBaseObject.ts b/packages/objectql/test/unit/extendBaseObject.ts index 2ac56b40b1..4f0c52da0a 100644 --- a/packages/objectql/test/unit/extendBaseObject.ts +++ b/packages/objectql/test/unit/extendBaseObject.ts @@ -15,6 +15,7 @@ describe('Test MeteorMongoObject extend BaseObject', () => { }) it('extend permission_set', async () => { + await mySchema.getDataSource().init() let object = mySchema.getObject("application_package") expect(object.toConfig().permission_set["none"].name).to.equal("none") }); diff --git a/packages/objectql/test/unit/getSteedosSchema.test.ts b/packages/objectql/test/unit/getSteedosSchema.test.ts index 982125ff2a..41129776eb 100644 --- a/packages/objectql/test/unit/getSteedosSchema.test.ts +++ b/packages/objectql/test/unit/getSteedosSchema.test.ts @@ -2,7 +2,7 @@ import { getSteedosSchema } from '../../src/types'; import { expect } from 'chai'; var path = require('path') -describe('get SteedosSchema', () => { +describe('get SteedosSchema', async () => { let schema = getSteedosSchema() // 添加默认数据源 @@ -35,6 +35,7 @@ describe('get SteedosSchema', () => { objectFiles: [path.resolve(__dirname, "./load")] }) + await schema.getDataSource().init() it('should return true', () => { let object = schema.getObject("post") diff --git a/packages/objectql/test/unit/idFieldTest.ts b/packages/objectql/test/unit/idFieldTest.ts index 3f2cd57084..f2f89b86d6 100644 --- a/packages/objectql/test/unit/idFieldTest.ts +++ b/packages/objectql/test/unit/idFieldTest.ts @@ -40,6 +40,10 @@ describe('Test idField', () => { } }) + + await mySchema.getDataSource().init() + await mySchema.getDataSource('sqlite').init() + let users = mySchema.getObject('users') let test = mySchema.getObject('sqlite.test'); diff --git a/packages/objectql/test/unit/object/extend.ts b/packages/objectql/test/unit/object/extend.ts new file mode 100644 index 0000000000..b37d3af26d --- /dev/null +++ b/packages/objectql/test/unit/object/extend.ts @@ -0,0 +1,24 @@ +import { expect } from 'chai'; +import { SteedosSchema } from '../../../src'; +var path = require('path') +var _ =require("underscore") + +describe('Test object extend', () => { + it('extend return true', async () => { + let mySchema = new SteedosSchema({ + datasources: { + sqlite: { + driver: 'mongo', + url: 'mongodb://127.0.0.1/steedos', + objectFiles: [path.resolve(__dirname, "./src")] + } + } + }) + + mySchema.getDataSource("sqlite").init(); + + let accounts = mySchema.getObject('sqlite.accounts'); + + expect(_.has(accounts.toConfig().fields, "company_id")).to.equal(true) + }); + }); \ No newline at end of file diff --git a/packages/objectql/test/unit/object/src/accounts.object.yml b/packages/objectql/test/unit/object/src/accounts.object.yml new file mode 100644 index 0000000000..8b8b3970e1 --- /dev/null +++ b/packages/objectql/test/unit/object/src/accounts.object.yml @@ -0,0 +1,52 @@ +name: accounts +label: 单位 +icon: person_account +description: 统一保存客户、合作伙伴、供应商数据 +fields: + name: + type: text + label: 标题 + priority: + type: text + label: 优先级 + options: + - label: 高 + value: high + - label: 中 + value: normal + - label: 低 + value: low + owner: + label: 所有人 + type: lookup + reference_to: users +list_views: + recent: + label: 最近查看 + all: + label: 所有单位 + columns: + - name + - priority + - owner + - modified + filter_fields: + - priority + high_priority: + label: 重点关注 + filters: [["priority", "=", "high"]] +permission_set: + user: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true \ No newline at end of file diff --git a/packages/objectql/test/unit/object/src/accounts.trigger.js b/packages/objectql/test/unit/object/src/accounts.trigger.js new file mode 100644 index 0000000000..67ef0d7d3d --- /dev/null +++ b/packages/objectql/test/unit/object/src/accounts.trigger.js @@ -0,0 +1,16 @@ +module.exports = { + + name: 'accountsTriggers', + + listenTo: 'accounts', + + afterInsert: async function () { + console.log('afterInsert'); + }, + afterUpdate: async function () { + console.log('afterUpdate'); + }, + afterDelete: async function () { + console.log('afterDelete'); + } +} \ No newline at end of file diff --git a/packages/objectql/test/unit/object/src/accounts_extend.object.yml b/packages/objectql/test/unit/object/src/accounts_extend.object.yml new file mode 100644 index 0000000000..764feb165b --- /dev/null +++ b/packages/objectql/test/unit/object/src/accounts_extend.object.yml @@ -0,0 +1,8 @@ +extend: accounts +fields: + company_id: + required: true + omit: false + hidden: false + type: lookup + reference_to: organizations \ No newline at end of file diff --git a/packages/objectql/test/unit/object_enable.test.ts b/packages/objectql/test/unit/object_enable.test.ts index 0d3b0f93fe..b78d1531ce 100644 --- a/packages/objectql/test/unit/object_enable.test.ts +++ b/packages/objectql/test/unit/object_enable.test.ts @@ -148,7 +148,7 @@ describe('Test Object.enable_xxx', () => { } } }) - + await schema.getDataSource().init(); let enable_share_test = schema.getObject('enable_share_test') let enable_share_test_config = enable_share_test.toConfig() expect(enable_share_test.enable_share).to.equal(false) && expect(enable_share_test_config.enable_share).to.equal(false) diff --git a/packages/objectql/test/unit/permissionTest.ts b/packages/objectql/test/unit/permissionTest.ts index 0d6d18c7de..d42caa70d6 100644 --- a/packages/objectql/test/unit/permissionTest.ts +++ b/packages/objectql/test/unit/permissionTest.ts @@ -3,7 +3,7 @@ import { SteedosSchema } from '../../src'; import { Dictionary } from '@salesforce/ts-types'; var path = require('path') -describe('Test Permission', () => { +describe('Test Permission', async () => { let userSessionStorage: Dictionary = {} @@ -92,7 +92,7 @@ describe('Test Permission', () => { } } }) - + await mySchema.getDataSource().init(); it('guest: 权限测试', async () => { let userSession = userSessionStorage['0']; let insertOK = true, updateOK=true, findOk=true, deleteOK=true; diff --git a/packages/objectql/test/unit/schema/datasource/sqlite3/crud.ts b/packages/objectql/test/unit/schema/datasource/sqlite3/crud.ts index 291662e9e2..dece9dd045 100644 --- a/packages/objectql/test/unit/schema/datasource/sqlite3/crud.ts +++ b/packages/objectql/test/unit/schema/datasource/sqlite3/crud.ts @@ -106,6 +106,7 @@ describe('crud for schema with splite3 datasource', () => { }); const datasources = mySchema.getDataSources(); for (let name in datasources) { + await datasources[name].init() await datasources[name].dropEntities(); await datasources[name].createTables(); } diff --git a/packages/objectql/test/unit/schema/datasource/sqlite3/filters.ts b/packages/objectql/test/unit/schema/datasource/sqlite3/filters.ts index 1afe7524d8..16fc660f13 100644 --- a/packages/objectql/test/unit/schema/datasource/sqlite3/filters.ts +++ b/packages/objectql/test/unit/schema/datasource/sqlite3/filters.ts @@ -230,6 +230,7 @@ describe('filters for sqlite3 database', () => { }); const datasources = mySchema.getDataSources(); for (let name in datasources) { + await datasources[name].init() await datasources[name].dropEntities(); await datasources[name].createTables(); } diff --git a/packages/objectql/test/unit/schemaTest.ts b/packages/objectql/test/unit/schemaTest.ts index 59be69ae15..b12fdef67e 100644 --- a/packages/objectql/test/unit/schemaTest.ts +++ b/packages/objectql/test/unit/schemaTest.ts @@ -2,7 +2,7 @@ import { SteedosSchema } from '../../src/types'; import { expect } from 'chai'; var path = require('path') -describe('new SteedosSchema', () => { +describe('new SteedosSchema', async () => { let schema = new SteedosSchema({ datasources: { default: { @@ -35,6 +35,7 @@ describe('new SteedosSchema', () => { } } }) + await schema.getDataSource().init() it('should return true', () => { let object = schema.getObject("post") // console.log(object) diff --git a/packages/objectql/test/unit/triggersTest.ts b/packages/objectql/test/unit/triggersTest.ts index 4423cf7ca9..1cac5c7478 100644 --- a/packages/objectql/test/unit/triggersTest.ts +++ b/packages/objectql/test/unit/triggersTest.ts @@ -2,8 +2,9 @@ import { expect } from 'chai'; import { SteedosSchema } from '../../src'; var path = require('path') -describe('Test object triggers', () => { +describe('Test object triggers', async () => { let mySchema = new SteedosSchema({datasources: {default: {driver: 'mongo', url: 'mongodb://127.0.0.1/steedos', objectFiles: [path.resolve(__dirname, "./load")]}}}) + mySchema.getDataSource().init() it('beforeInsert', async () => { let meeting = mySchema.getObject('meeting'); let beforeInsert = false diff --git a/packages/objectql/test/unit/useTest.ts b/packages/objectql/test/unit/useTest.ts index ded6ffa60c..d5a67de942 100644 --- a/packages/objectql/test/unit/useTest.ts +++ b/packages/objectql/test/unit/useTest.ts @@ -2,7 +2,7 @@ import { expect } from 'chai'; import { SteedosSchema } from '../../src'; var path = require('path') -describe('Test use file', () => { +describe('Test use file', async () => { let mySchema = new SteedosSchema({ datasources: { default: { @@ -15,6 +15,8 @@ describe('Test use file', () => { }) + await mySchema.getDataSource().init() + it('use Object file', async () => { let object = mySchema.getObject("test") // console.log('object', object.toConfig()); From f4bd7b62a3ef46ae76baf03319c4d92b13182123 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Sat, 17 Aug 2019 14:41:22 +0800 Subject: [PATCH 069/154] .npmignore add package-lock.json --- packages/objectql/.npmignore | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/objectql/.npmignore b/packages/objectql/.npmignore index 55a47160d8..302c2c1544 100644 --- a/packages/objectql/.npmignore +++ b/packages/objectql/.npmignore @@ -1,2 +1,3 @@ tsconfig.json +package-lock.json test \ No newline at end of file From 467a0b091fd4428a529d41d49fa9f48ded8a554f Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Sat, 17 Aug 2019 14:51:07 +0800 Subject: [PATCH 070/154] publish core@1.3.14; objectql@1.0.5 --- packages/core/History.md | 4 ++++ packages/core/package.json | 4 ++-- packages/objectql/History.md | 4 ++++ packages/objectql/package.json | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/core/History.md b/packages/core/History.md index db2d6eb274..2221bd4994 100644 --- a/packages/core/History.md +++ b/packages/core/History.md @@ -1,3 +1,7 @@ +1.3.13 / 2019-08-17 +=================== + + * 支持对象继承 1.3.10 / 2019-08-14 =================== diff --git a/packages/core/package.json b/packages/core/package.json index 7be02d6483..56737348ce 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.12", + "version": "1.3.14", "description": "", "main": "lib/index.js", "scripts": { @@ -19,7 +19,7 @@ "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", "@steedos/auth": "^1.1.5", - "@steedos/objectql": "^1.0.4", + "@steedos/objectql": "^1.0.5", "@steedos/standard-objects": "^1.0.2", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", diff --git a/packages/objectql/History.md b/packages/objectql/History.md index bd74f80c0e..c6630db42b 100644 --- a/packages/objectql/History.md +++ b/packages/objectql/History.md @@ -1,3 +1,7 @@ +1.0.5 / 2019-08-17 +=================== + + * 支持对象继承 1.0.2 / 2019-08-14 =================== diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 968e35c456..4e6dd64a47 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.0.4", + "version": "1.0.5", "description": "", "main": "lib/index.js", "scripts": { From 4e69035eb7b440a48af0a8ee86c97be5e9f368f7 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Sat, 17 Aug 2019 14:51:41 +0800 Subject: [PATCH 071/154] update core.History --- packages/core/History.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/History.md b/packages/core/History.md index 2221bd4994..077589af82 100644 --- a/packages/core/History.md +++ b/packages/core/History.md @@ -1,4 +1,4 @@ -1.3.13 / 2019-08-17 +1.3.14 / 2019-08-17 =================== * 支持对象继承 From 5c33e128291310ccfd12ce88951f0a14119e21a7 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Sat, 17 Aug 2019 14:56:18 +0800 Subject: [PATCH 072/154] template project upgrade croe,objectql --- packages/project-template-empty/package.template.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/project-template-empty/package.template.json b/packages/project-template-empty/package.template.json index 75c7ab99b1..7a18bdd558 100644 --- a/packages/project-template-empty/package.template.json +++ b/packages/project-template-empty/package.template.json @@ -17,8 +17,8 @@ "dependencies": { "@steedos/meteor-bundle-runner": "^1.1.7", "@steedos/filters": "^1.0.0", - "@steedos/objectql": "^1.0.3", - "@steedos/core": "^1.3.11", + "@steedos/objectql": "^1.0.5", + "@steedos/core": "^1.3.14", "@steedos/auth": "^1.1.5", "@steedos/standard-objects": "^1.0.2", "steedos-server": "^1.3.5", From 8b38c0098212fccf60e1d620ad676d2c87bffd16 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Sat, 17 Aug 2019 14:57:14 +0800 Subject: [PATCH 073/154] =?UTF-8?q?publish=20project-template-empty:=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=AF=B9=E8=B1=A1=E7=BB=A7=E6=89=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/project-template-empty/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/project-template-empty/package.json b/packages/project-template-empty/package.json index 1451f01811..330dcd310f 100644 --- a/packages/project-template-empty/package.json +++ b/packages/project-template-empty/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/project-template-empty", "private": false, - "version": "0.1.4", + "version": "0.1.5", "description": "", "main": "server.js", "repository": { From a97f88176076046d84a8d4b52fdff71a63c79569 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= <50353452+hotlong@users.noreply.github.com> Date: Mon, 19 Aug 2019 10:06:11 +0800 Subject: [PATCH 074/154] Update package.template.json --- packages/project-template-empty/package.template.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/project-template-empty/package.template.json b/packages/project-template-empty/package.template.json index 7a18bdd558..2f657929b2 100644 --- a/packages/project-template-empty/package.template.json +++ b/packages/project-template-empty/package.template.json @@ -21,7 +21,7 @@ "@steedos/core": "^1.3.14", "@steedos/auth": "^1.1.5", "@steedos/standard-objects": "^1.0.2", - "steedos-server": "^1.3.5", + "steedos-server": "^1.4.0", "underscore": "1.5.2" }, "devDependencies": { @@ -31,4 +31,4 @@ "url": "https://github.com/steedos/object-server/issues" }, "homepage": "https://github.com/steedos/object-server#readme" -} \ No newline at end of file +} From 2572f2f106bd6965d0da6a77970301ac62ca82a1 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 19 Aug 2019 10:16:49 +0800 Subject: [PATCH 075/154] =?UTF-8?q?PC=E4=B8=8A=E9=99=84=E4=BB=B6=E4=B8=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E6=97=B6=E6=95=B4=E4=B8=AA=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=B8=BA404=E4=BA=86=20#1299?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/standard-objects/cms_files.object.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/standard-objects/cms_files.object.yml b/packages/standard-objects/cms_files.object.yml index 4e97fadf3e..200bdf2f82 100644 --- a/packages/standard-objects/cms_files.object.yml +++ b/packages/standard-objects/cms_files.object.yml @@ -177,7 +177,7 @@ actions: return false; } else { url = Steedos.absoluteUrl("/api/files/files/" + fileId + "?download=true"); - window.location = url; + window.open(url,"_blank"); return false; } } From 573c6f81cd42a20f867521e4cb294fabb64a201e Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Mon, 19 Aug 2019 10:39:12 +0800 Subject: [PATCH 076/154] =?UTF-8?q?plugin.config.yml=20=E7=9A=84datasource?= =?UTF-8?q?s=E9=83=A8=E5=88=86=E6=95=B0=E6=8D=AE=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E4=B8=8Esteedos-config.yml=20=E7=BB=9F=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/init/plugins.ts | 36 ++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/packages/core/src/init/plugins.ts b/packages/core/src/init/plugins.ts index a811397e70..c1ad9ff6cf 100644 --- a/packages/core/src/init/plugins.ts +++ b/packages/core/src/init/plugins.ts @@ -55,21 +55,33 @@ export class Plugins { let pluginDir = this.getPluginDir(pluginName); let config = this.getConfig(pluginDir); if(config){ - _.each(config.datasources, (_datasource)=>{ - if(_datasource.name === 'default'){ - let filePath = path.join(pluginDir, _datasource.objectFiles) - LoadFiles.loadObjectToCreator(filePath); - LoadFiles.loadAppToCreator(filePath); - LoadFiles.addStaticJs(filePath); + _.each(config.datasources, (_datasource, name)=>{ + if(name === 'default'){ + if(!_.isArray(_datasource.objectFiles)){ + throw new Error(`${name}.objectFiles must be an array` + _datasource.objectFiles) + } + _.each(_datasource.objectFiles, (objectFile)=>{ + let filePath = path.join(pluginDir, objectFile) + LoadFiles.loadObjectToCreator(filePath); + LoadFiles.loadAppToCreator(filePath); + LoadFiles.addStaticJs(filePath); + }) }else{ - let datasource = objectql.getSteedosSchema().getDataSource(_datasource.name) + if(!_.isArray(_datasource.objectFiles)){ + throw new Error(`${name}.objectFiles must be an array`) + } + let datasource = objectql.getSteedosSchema().getDataSource(name) if(!datasource){ - throw new Error(`not find datasource: ${_datasource.name}`) + throw new Error(`not find datasource: ${name}` + _datasource.objectFiles) } - let filePath = path.join(pluginDir, _datasource.objectFiles) - datasource.use(filePath); - datasource.useAppFile(filePath); - datasource.useReportFile(filePath); + + _.each(_datasource.objectFiles, (objectFile)=>{ + let filePath = path.join(pluginDir, objectFile) + datasource.use(filePath); + datasource.useAppFile(filePath); + datasource.useReportFile(filePath); + }) + } }) } From 87e67f6881304d9fe139c1562ec9ef39759f99c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= <50353452+hotlong@users.noreply.github.com> Date: Mon, 19 Aug 2019 11:54:57 +0800 Subject: [PATCH 077/154] Update .gitignore --- packages/project-template-empty/.gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/project-template-empty/.gitignore b/packages/project-template-empty/.gitignore index 04072bce3f..52296062fb 100644 --- a/packages/project-template-empty/.gitignore +++ b/packages/project-template-empty/.gitignore @@ -13,3 +13,5 @@ **/.vscode/launch.* **/yarn.lock + +.DS_Store From 1e4cba6e87a18e6790470cbe8a068ef67af54ccc Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 19 Aug 2019 14:36:48 +0800 Subject: [PATCH 078/154] @steedos/standard-objects@1.0.4 --- packages/standard-objects/History.md | 4 + packages/standard-objects/package.json | 2 +- .../standard-objects/queue_import.object.js | 465 ++++++++++++------ .../standard-objects/queue_import.object.yml | 167 +++++++ 4 files changed, 476 insertions(+), 162 deletions(-) create mode 100644 packages/standard-objects/queue_import.object.yml diff --git a/packages/standard-objects/History.md b/packages/standard-objects/History.md index a84b43f883..724f1b0769 100644 --- a/packages/standard-objects/History.md +++ b/packages/standard-objects/History.md @@ -1,3 +1,7 @@ +1.0.4 / 2019-08-19 +=================== + + * [数据导入功能,支持重复导入同一个Excel](https://github.com/steedos/object-server/issues/109) 1.0.0 / 2019-08-13 =================== diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 5ac72d6221..7acb3c71d6 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.0.2", + "version": "1.0.4", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/standard-objects/queue_import.object.js b/packages/standard-objects/queue_import.object.js index 6f99eb4ebb..f6bb6f5928 100644 --- a/packages/standard-objects/queue_import.object.js +++ b/packages/standard-objects/queue_import.object.js @@ -1,171 +1,314 @@ -Creator.Objects.queue_import = { - name: "queue_import", - label: "数据导入", - icon: "product_consumed", - enable_files: true, - fields: { - description: { - label: "导入描述", - type: "text", - is_wide: true, - required: true, - is_name: true - }, - object_name: { - label: "导入对象", - type: "lookup", - optionsFunction: function () { - var _options; - _options = []; - _.forEach(Creator.Objects, function (o, k) { - return _options.push({ - label: o.label, - value: k, - icon: o.icon - }); - }); - return _options; +Creator.Objects['queue_import'].triggers = { + "before.insert.client.import": { + on: "client", + when: "before.insert", + todo: function (userId, doc) { + doc.state = "waitting"; + return console.log(doc); + } + } +}; + +var converteNum, converterBool, converterDate, converterLookup, converterSelect, converterString, fs, importObject, insertRow, logger, path, xlsx; + +fs = require('fs'); + +path = require('path'); + +xlsx = require('node-xlsx'); + +logger = new Logger('QUEUE_IMPORT'); + +converterString = function (field_name, dataCell, jsonObj) { + var text_error; + text_error = ""; + if (dataCell) { + jsonObj[field_name] = dataCell + ''; + } else { + text_error = `${field_name}不能为空`; + } + return text_error; +}; + +converterDate = function (field_name, dataCell, jsonObj) { + var date, date_error; + date_error = ""; + date = new Date(dataCell); + if (date.getFullYear() && Object.prototype.toString.call(date) === '[object Date]') { + jsonObj[field_name] = date; + } else { + date_error = `${dataCell}不是日期类型数据`; + } + return date_error; +}; + +converteNum = function (field_name, dataCell, jsonObj) { + var number, number_error; + number_error = ""; + number = parseFloat(dataCell); + if (!isNaN(number)) { + jsonObj[field_name] = number; + } else { + number_error = `${dataCell}不是数值类型数据`; + } + return number_error; +}; + +converterSelect = function (objectName, field_name, dataCell, jsonObj) { + var allowedValues, fields, ref, select_error; + select_error = ""; + fields = Creator.getObject(objectName).fields; + allowedValues = ((ref = fields[field_name]) != null ? ref.allowedValues : void 0) || []; + if (allowedValues.indexOf(dataCell) >= 0) { + jsonObj[field_name] = dataCell; + } else { + select_error = `${dataCell}不属于${field_name}的可选范围`; + } + return select_error; +}; + +converterLookup = function (objectName, field_name, dataCell, jsonObj) { + var fields, lookup, lookup_error, ref, reference_to_object, selectfield; + lookup_error = ""; + fields = Creator.getObject(objectName).fields; + reference_to_object = (ref = fields[field_name]) != null ? ref.reference_to : void 0; + selectfield = Creator.getObject(reference_to_object).NAME_FIELD_KEY; + lookup = Creator.getCollection(reference_to_object).findOne({ + [`${selectfield}`]: dataCell + }); + if (lookup) { + jsonObj[field_name] = lookup._id; + } else { + lookup_error = `${dataCell}不是Lookup类型数据`; + } + return lookup_error; +}; + +converterBool = function (field_name, dataCell, jsonObj) { + var bool_error, flag; + bool_error = ""; + flag = dataCell.toString().toLowerCase(); + if (flag === "是" || flag === "1" || flag === "yes" || flag === "true") { + jsonObj[field_name] = true; + } else if (flag === "否" || flag === "0" || flag === "no" || flag === "false") { + jsonObj[field_name] = false; + } else { + bool_error = `${dataCell}不是bool类型数据`; + } + return bool_error; +}; + +insertRow = function (dataRow, objectName, field_mapping, space, external_id_name) { + var errorInfo, insertInfo, jsonObj, objFields, ref; + jsonObj = {}; + insertInfo = {}; + errorInfo = ""; + // 对象的fields + objFields = typeof Creator !== "undefined" && Creator !== null ? (ref = Creator.getObject(objectName)) != null ? ref.fields : void 0 : void 0; + dataRow.forEach(function (dataCell, i) { + var error, field_mapping_name, noField; + field_mapping_name = field_mapping[i]; + if (!field_mapping[i]) { + return; + } + noField = true; + error = null; + // 找到需要插入的数据 + _.each(objFields, function (field, field_name) { + if (field_name === field_mapping_name) { + noField = false; + switch (field != null ? field.type : void 0) { + case "date": + case "datetime": + return error = converterDate(field_name, dataCell, jsonObj); + case "number": + return error = converteNum(field_name, dataCell, jsonObj); + case "boolean": + return error = converterBool(field_name, dataCell, jsonObj); + case "select": + return error = converterSelect(objectName, field_name, dataCell, jsonObj); + case "lookup": + return error = converterLookup(objectName, field_name, dataCell, jsonObj); + case "text": + return error = converterString(field_name, dataCell, jsonObj); + case "textarea": + return error = converterString(field_name, dataCell, jsonObj); + case "master_detail": + return error = converterLookup(objectName, field_name, dataCell, jsonObj); + } } - }, - encoding: { - label: "字符代码", - type: "select", - defaultValue: "GB2312", - options: [ - { - label: "GB2312 简体中文", - value: "GB2312" - }, { - label: "Unicode (UTF8)", - value: "UTF8" - }, { - label: "Unicode (UTF16)", - value: "UTF16" - }, { - label: "Big5 繁体中文", - value: "Big5" - }, { - label: "Big5 繁体中文 (HKSCS)", - value: "HKSCS" - }, { - label: "Windows 日语", - value: "Windows 日语" - }, { - label: "日文 (Shift_JIS-2004)", - value: "Shift_JIS-2004" - }, { - label: "KS C 5601 韩语", - value: "KS C 5601" - }, { - label: "ISO-8859-1(通用美语和西欧语言,ISO-LATIN-1)", - value: "ISO" + }); + if (noField) { + error = `${field_mapping_name}不是对象的属性`; + } + if (error) { + return errorInfo = errorInfo + "," + error; + } + }); + insertInfo["insertState"] = true; + if (jsonObj) { + jsonObj.space = space; + let recordExists = false; + let selectObj = { + 'space': space + }; + let objectCollection = Creator.getCollection(objectName); + // 不存在则新建,存在则更新 + if (external_id_name) { + selectObj[external_id_name] = jsonObj[external_id_name]; + if (objectCollection.find(selectObj).count() > 0) { + recordExists = true; + } + } + + if (recordExists) { + objectCollection.update(selectObj, { + $set: jsonObj + }, function (error, result) { + if (error) { + return insertInfo["insertState"] = false; } - ], - omit: true - }, - value_separator: { - label: "值分隔符", - type: "select", - options: [ - { - label: '逗号', - value: ',' + }); + } else { + objectCollection.insert(jsonObj, function (error, result) { + if (error) { + return insertInfo["insertState"] = false; } - ], - omit: true - }, - field_mapping: { - label: "映射关系", - type: "lookup", - multiple: true, - depend_on: ["object_name"], - defaultIcon: "service_contract", - optionsFunction: function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true); - }, - required: true - }, - success_count: { - label: "成功个数", - type: "number", - omit: true - }, - failure_count: { - label: "失败个数", - type: "number", - omit: true - }, - total_count: { - label: "导入总个数", - type: "number", - omit: true - }, - start_time: { - label: '开始时间', - type: "datetime", - omit: true - }, - end_time: { - label: '结束时间', - type: "datetime", - omit: true - }, - state: { - label: "状态", - type: 'select', - omit: true - }, - error: { - label: "错误信息", - type: "[text]", - omit: true + }); } - }, - list_views: { - all: { - label: "全部", - columns: ["object_name", "encoding", "field_mapping", "description", "state"], - filter_scope: "space" + } else { + insertInfo["insertState"] = false; + } + insertInfo["errorInfo"] = errorInfo; + return insertInfo; +}; + +importObject = function (importObj, space) { + var chunks, errorList, field_mapping, file, files, objectName, stream, external_id_name; + // 错误的数据 + errorList = []; + //cms_files = Creator.Collections['cms.files'].find({'parent.ids':importObj._id}).fetch() + + //file = Creator.Collections['cms.files'].findOne('parent.ids':record_id) + files = Creator.Collections['cfs.files.filerecord'].find({ + 'metadata.record_id': importObj._id + }, { + sort: { + created: -1 } + }).fetch(); + file = files[0]; + if (file) { + stream = file.createReadStream('files'); + chunks = []; + objectName = importObj != null ? importObj.object_name : void 0; + field_mapping = importObj != null ? importObj.field_mapping : void 0; + external_id_name = importObj.external_id_name; + stream.on('data', function (chunk) { + return chunks.push(chunk); + }); + return stream.on('end', Meteor.bindEnvironment(function () { + var failure_count, success_count, total_count, workbook; + workbook = xlsx.parse(Buffer.concat(chunks), { + cellDates: true + }); + total_count = 0; + success_count = 0; + failure_count = 0; + workbook.forEach(function (sheet) { + var data; + data = sheet.data; + total_count = data.length; + return data.forEach(function (dataRow) { + var insertInfo; + insertInfo = insertRow(dataRow, objectName, field_mapping, space, external_id_name); + // # 插入一行数据 + if (insertInfo) { + // 存到数据库 error字段 + if (insertInfo != null ? insertInfo.errorInfo : void 0) { + errorList.push(dataRow + insertInfo.errorInfo); + } + if (insertInfo != null ? insertInfo.insertState : void 0) { + return success_count = success_count + 1; + } else { + return failure_count = failure_count + 1; + } + } + }); + }); + return Creator.Collections["queue_import"].direct.update({ + _id: importObj._id + }, { + $set: { + error: errorList, + total_count: total_count, + success_count: success_count, + failure_count: failure_count, + state: "finished" + } + }); + })); + } +}; + + +// 启动导入Jobs +// Creator.startImportJobs() +Meteor.methods({ + startImportJobs: function (record_id, space) { + var endtime, importObj, starttime; + // collection = Creator.Collections["queue_import"] + // importList = collection.find({"status":"waitting"}).fetch() + // importList.forEach (importObj)-> + // # 根据recordObj提供的对象名,逐个文件导入 + starttime = new Date(); + importObj = Creator.Collections["queue_import"].findOne({ + _id: record_id + }); + importObject(importObj, space); + endtime = new Date(); + return Creator.Collections["queue_import"].direct.update(importObj._id, { + $set: { + start_time: starttime, + end_time: endtime + } + }); }, - permission_set: { - user: { - allowCreate: false, - allowDelete: false, - allowEdit: false, - allowRead: false, - modifyAllRecords: false, - viewAllRecords: false - }, - admin: { - allowCreate: true, - allowDelete: true, - allowEdit: true, - allowRead: true, - modifyAllRecords: true, - viewAllRecords: true + getValueLable: function (reference_to_object, name_field, value, space_id) { + var data, fields, ids, results; + if (!value) { + return ""; } - }, - triggers: { - "before.insert.client.import": { - on: "client", - when: "before.insert", - todo: function (userId, doc) { - doc.state = "waitting"; - return console.log(doc); - } + ids = []; + if (value.constructor === Array) { + ids = value; + } else { + ids.push(value); } - }, - actions: { - "import": { - label: "执行导入", - visible: true, - on: "record", - todo: function (object_name, record_id, fields) { - var space; - space = Session.get("spaceId"); - return Meteor.call('startImportJobs', record_id, space); + fields = { + _id: 1 + }; + fields[name_field] = 1; + results = Creator.getCollection(reference_to_object, space_id).find({ + _id: { + $in: value } - } + }, { + fields: fields + }).fetch(); + data = []; + _.each(results, function (result) { + return data.push(result[name_field]); + }); + return data; + }, + // Creator.testImportJobs("fSNrgYcftFkiBXEvi","Af8eM6mAHo7wMDqD3") + // 测试 + testImportJobs: function (record_id, space) { + var importObj; + importObj = Creator.Collections["queue_import"].findOne({ + _id: record_id + }); + return importObject(importObj, space); } -}; +}); \ No newline at end of file diff --git a/packages/standard-objects/queue_import.object.yml b/packages/standard-objects/queue_import.object.yml new file mode 100644 index 0000000000..de298972ae --- /dev/null +++ b/packages/standard-objects/queue_import.object.yml @@ -0,0 +1,167 @@ +name: queue_import +label: 数据导入 +icon: product_consumed +enable_files: true +fields: + description: + label: 导入描述 + type: text + is_wide: true + required: true + is_name: true + name: description + searchable: true + object_name: + label: 导入对象 + type: lookup + optionsFunction: ! |- + function () { + var _options; + _options = []; + _.forEach(Creator.Objects, function (o, k) { + return _options.push({ + label: o.label, + value: k, + icon: o.icon + }); + }); + return _options; + } + name: object_name + filterable: true + encoding: + label: 字符代码 + type: select + defaultValue: GB2312 + options: + - label: GB2312 简体中文 + value: GB2312 + - label: Unicode (UTF8) + value: UTF8 + - label: Unicode (UTF16) + value: UTF16 + - label: Big5 繁体中文 + value: Big5 + - label: Big5 繁体中文 (HKSCS) + value: HKSCS + - label: Windows 日语 + value: Windows 日语 + - label: 日文 (Shift_JIS-2004) + value: Shift_JIS-2004 + - label: KS C 5601 韩语 + value: KS C 5601 + - label: ISO-8859-1(通用美语和西欧语言,ISO-LATIN-1) + value: ISO + omit: true + name: encoding + filterable: true + value_separator: + label: 值分隔符 + type: select + options: + - label: 逗号 + value: ',' + omit: true + name: value_separator + filterable: true + field_mapping: + label: 映射关系 + type: lookup + multiple: true + depend_on: + - object_name + defaultIcon: service_contract + optionsFunction: ! |- + function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true); + } + required: true + name: field_mapping + filterable: true + external_id_name: + label: 表示数据唯一性字段(重复执行导入时根据此字段更新记录) + type: lookup + multiple: false + depend_on: + - object_name + defaultIcon: service_contract + optionsFunction: ! |- + function (values) { + return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true); + } + required: false + name: external_id_name + filterable: true + success_count: + label: 成功个数 + type: number + omit: true + name: success_count + failure_count: + label: 失败个数 + type: number + omit: true + name: failure_count + total_count: + label: 导入总个数 + type: number + omit: true + name: total_count + start_time: + label: 开始时间 + type: datetime + omit: true + name: start_time + end_time: + label: 结束时间 + type: datetime + omit: true + name: end_time + state: + label: 状态 + type: select + omit: true + name: state + filterable: true + error: + label: 错误信息 + type: '[text]' + omit: true + name: error +list_views: + all: + label: 全部 + columns: + - object_name + - encoding + - field_mapping + - description + - state + filter_scope: space +permission_set: + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: false + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true + +actions: + import: + label: 执行导入 + visible: true + 'on': record + todo: ! |- + function (object_name, record_id, fields) { + var space; + space = Session.get("spaceId"); + return Meteor.call('startImportJobs', record_id, space); + } From ff78baa2c965b154f7ddd6005a8eab1a1b79f670 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 19 Aug 2019 14:56:10 +0800 Subject: [PATCH 079/154] @steedos/objectql@1.0.6 --- packages/objectql/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 4e6dd64a47..0a7f083c03 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.0.5", + "version": "1.0.6", "description": "", "main": "lib/index.js", "scripts": { @@ -21,7 +21,7 @@ "@steedos/filters": "^1.0.0", "@steedos/odata-v4-typeorm": "^0.0.24", "@steedos/schemas": "^1.0.2", - "@steedos/standard-objects": "^1.0.2", + "@steedos/standard-objects": "^1.0.4", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", From 8d074900805a0d98dbf92208a5fabd5f4bf707d5 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 19 Aug 2019 14:57:58 +0800 Subject: [PATCH 080/154] @steedos/core@1.3.15 --- packages/core/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 56737348ce..f845ecd3b5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.14", + "version": "1.3.15", "description": "", "main": "lib/index.js", "scripts": { @@ -19,8 +19,8 @@ "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", "@steedos/auth": "^1.1.5", - "@steedos/objectql": "^1.0.5", - "@steedos/standard-objects": "^1.0.2", + "@steedos/objectql": "^1.0.6", + "@steedos/standard-objects": "^1.0.4", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", From d064ffaf757f031368b2309d061013efb6dbf491 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 19 Aug 2019 15:08:13 +0800 Subject: [PATCH 081/154] =?UTF-8?q?=E5=88=97=E8=A1=A8=E8=A7=86=E5=9B=BE?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E9=85=8D=E7=BD=AE=E5=8F=82?= =?UTF-8?q?=E6=95=B0=20show=5Fcount=EF=BC=8C=E5=9C=A8=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E4=B8=8B=E6=8B=89=E8=8F=9C=E5=8D=95=EF=BC=8C?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E5=90=8E=E6=98=BE=E7=A4=BA=20(count)=20#1301?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/standard-objects/object_listviews.object.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/standard-objects/object_listviews.object.js b/packages/standard-objects/object_listviews.object.js index b34aadfb11..5f3d72af5c 100644 --- a/packages/standard-objects/object_listviews.object.js +++ b/packages/standard-objects/object_listviews.object.js @@ -58,6 +58,10 @@ Creator.Objects.object_listviews = { label: "共享视图到工作区", type: "boolean" }, + show_count: { + label: "显示项目数量", + type: "boolean" + }, type: { label: "视图类型", type: "select", From d034da354c7577fe3a15a3c95092c5bcd7d5daa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Mon, 19 Aug 2019 15:13:22 +0800 Subject: [PATCH 082/154] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=B4=A6=E6=88=B7?= =?UTF-8?q?=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/standard-objects/admin.app.yml | 20 +++---------------- .../standard-objects/space_users.object.js | 20 +++++++++---------- 2 files changed, 13 insertions(+), 27 deletions(-) diff --git a/packages/standard-objects/admin.app.yml b/packages/standard-objects/admin.app.yml index c0afe259a0..1eb79933b2 100644 --- a/packages/standard-objects/admin.app.yml +++ b/packages/standard-objects/admin.app.yml @@ -13,26 +13,12 @@ admin_menus: - user expanded: false mobile: false - - _id: account_avatar - name: 头像 + - _id: account_profile + name: 我的资料 permission_sets: - user - template_name: account_avatar - parent: account - mobile: false - - _id: account_setting - name: 账户 - permission_sets: - - user - template_name: account_setting - parent: account - mobile: false - - _id: account_password - name: 密码 - permission_sets: - - user - template_name: account_password parent: account + object_name: users mobile: false - _id: account_background name: 背景图 diff --git a/packages/standard-objects/space_users.object.js b/packages/standard-objects/space_users.object.js index f098293167..3710889dda 100644 --- a/packages/standard-objects/space_users.object.js +++ b/packages/standard-objects/space_users.object.js @@ -159,11 +159,11 @@ Meteor.startup(function () { throw new Meteor.Error(400, "该用户已在此工作区"); } } - if (doc.username) { - if (!Steedos.isLegalVersion(doc.space, "workflow.professional")) { - throw new Meteor.Error(400, "space_paid_info_title"); - } - } + // if (doc.username) { + // if (!Steedos.isLegalVersion(doc.space, "workflow.professional")) { + // throw new Meteor.Error(400, "space_paid_info_title"); + // } + // } }; db.space_users.updatevaildate = function (userId, doc, modifier) { var addOrgs, currentUserPhonePrefix, isAllAddOrgsAdmin, isAllSubOrgsAdmin, isOrgAdmin, newOrgs, oldOrgs, phoneNumber, ref, ref1, ref10, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, repeatEmailUser, repeatNumberUser, space, subOrgs; @@ -261,11 +261,11 @@ Meteor.startup(function () { throw new Meteor.Error(400, "space_users_error_phone_already_existed"); } } - if (((ref9 = modifier.$set) != null ? ref9.hasOwnProperty('username') : void 0) || (((ref10 = modifier.$unset) != null ? ref10.hasOwnProperty('username') : void 0) && doc.username)) { - if (!Steedos.isLegalVersion(doc.space, "workflow.professional")) { - throw new Meteor.Error(400, "space_paid_info_title"); - } - } + // if (((ref9 = modifier.$set) != null ? ref9.hasOwnProperty('username') : void 0) || (((ref10 = modifier.$unset) != null ? ref10.hasOwnProperty('username') : void 0) && doc.username)) { + // if (!Steedos.isLegalVersion(doc.space, "workflow.professional")) { + // throw new Meteor.Error(400, "space_paid_info_title"); + // } + // } }; db.space_users.before.insert(function (userId, doc) { var creator, currentUserPhonePrefix, email, id, options, organization, phone, phoneNumber, user, userObj, userObjs; From 5ff52a7edc4f65732984e3eafda20b146fd52181 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Mon, 19 Aug 2019 15:13:49 +0800 Subject: [PATCH 083/154] =?UTF-8?q?publish=20core@1.3.16=20;=20=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E6=8F=92=E4=BB=B6=E8=B0=83=E8=AF=95=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9plugins=20->=20.plugins=EF=BC=9B=E7=BB=9F=E4=B8=80stee?= =?UTF-8?q?dos-config.yml=20=E4=B8=8E=20plugin-config.yml=20datasources=20?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=95=B0=E6=8D=AE=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plugin_config.md | 5 +++-- docs/plugin_server.md | 6 +++--- docs/plugin_webapp.md | 4 ++-- packages/core/History.md | 4 ++++ packages/core/package.json | 2 +- packages/core/src/init/plugins.ts | 2 +- 6 files changed, 14 insertions(+), 9 deletions(-) diff --git a/docs/plugin_config.md b/docs/plugin_config.md index a330a76dfb..c0e486e819 100644 --- a/docs/plugin_config.md +++ b/docs/plugin_config.md @@ -20,8 +20,9 @@ title: 插件配置 ```yml datasources: - - name: mattermost - objectFiles: ./src/** + mattermost: + objectFiles: + - ./src/** server: main: index.js webapp: diff --git a/docs/plugin_server.md b/docs/plugin_server.md index 925e52275d..2b9d233432 100644 --- a/docs/plugin_server.md +++ b/docs/plugin_server.md @@ -12,8 +12,8 @@ title: 服务端插件 ```bash cd {project_root} -mkdir plugins -cd plugins +mkdir .plugins +cd .plugins mkdir hello-world-plugin cd hello-world-plugin ``` @@ -77,7 +77,7 @@ const router = require("router"); export function init(context) { // 执行插件初始化。 - context.app.use('/plugins/hello-world/api', router); + context.app.use('/.plugins/hello-world/api', router); } ``` diff --git a/docs/plugin_webapp.md b/docs/plugin_webapp.md index 7b95a8830f..009e57e40d 100644 --- a/docs/plugin_webapp.md +++ b/docs/plugin_webapp.md @@ -10,8 +10,8 @@ title: Web 插件 ```bash cd {project_root} -mkdir plugins -cd plugins +mkdir .plugins +cd .plugins mkdir hello-world-plugin cd hello-world-plugin ``` diff --git a/packages/core/History.md b/packages/core/History.md index 077589af82..ad7c695893 100644 --- a/packages/core/History.md +++ b/packages/core/History.md @@ -1,3 +1,7 @@ +1.3.16 / 2019-08-19 +=================== + + * 调整插件调试文件夹plugins -> .plugins;统一steedos-config.yml 与 plugin-config.yml datasources 部分数据格式 1.3.14 / 2019-08-17 =================== diff --git a/packages/core/package.json b/packages/core/package.json index f845ecd3b5..8f3076623d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.15", + "version": "1.3.16", "description": "", "main": "lib/index.js", "scripts": { diff --git a/packages/core/src/init/plugins.ts b/packages/core/src/init/plugins.ts index c1ad9ff6cf..a924423e58 100644 --- a/packages/core/src/init/plugins.ts +++ b/packages/core/src/init/plugins.ts @@ -37,7 +37,7 @@ export class Plugins { } static getPluginDir(pluginName) { - return path.dirname(require.resolve(`${pluginName}/package.json`, {paths: [path.join(process.cwd(), 'plugins')]})); + return path.dirname(require.resolve(`${pluginName}/package.json`, {paths: [path.join(process.cwd(), '.plugins')]})); } static getConfig(pluginDir: string){ From 845e4a97e11c377c4b9df232c002fc340157a21b Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 19 Aug 2019 15:23:24 +0800 Subject: [PATCH 084/154] @steedos/standard-objects@1.0.5 --- packages/standard-objects/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 7acb3c71d6..1e4b03e623 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.0.4", + "version": "1.0.5", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", From 7771f14062bbe280da39437d57c6b3f8001dca38 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 19 Aug 2019 15:28:50 +0800 Subject: [PATCH 085/154] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=95=B0=E9=87=8F->=E6=98=BE=E7=A4=BA=E6=9D=A1=E7=9B=AE?= =?UTF-8?q?=E6=95=B0=20#1301?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/standard-objects/object_listviews.object.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/standard-objects/object_listviews.object.js b/packages/standard-objects/object_listviews.object.js index 5f3d72af5c..a20abb4578 100644 --- a/packages/standard-objects/object_listviews.object.js +++ b/packages/standard-objects/object_listviews.object.js @@ -59,7 +59,7 @@ Creator.Objects.object_listviews = { type: "boolean" }, show_count: { - label: "显示项目数量", + label: "显示条目数", type: "boolean" }, type: { From 0ff190f992a67635330008425c4c77d7a9c0af45 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 19 Aug 2019 15:31:59 +0800 Subject: [PATCH 086/154] Update queue_import.object.js --- .../standard-objects/queue_import.object.js | 116 +++++++++--------- 1 file changed, 60 insertions(+), 56 deletions(-) diff --git a/packages/standard-objects/queue_import.object.js b/packages/standard-objects/queue_import.object.js index f6bb6f5928..797f71e130 100644 --- a/packages/standard-objects/queue_import.object.js +++ b/packages/standard-objects/queue_import.object.js @@ -254,61 +254,65 @@ importObject = function (importObj, space) { // 启动导入Jobs // Creator.startImportJobs() -Meteor.methods({ - startImportJobs: function (record_id, space) { - var endtime, importObj, starttime; - // collection = Creator.Collections["queue_import"] - // importList = collection.find({"status":"waitting"}).fetch() - // importList.forEach (importObj)-> - // # 根据recordObj提供的对象名,逐个文件导入 - starttime = new Date(); - importObj = Creator.Collections["queue_import"].findOne({ - _id: record_id - }); - importObject(importObj, space); - endtime = new Date(); - return Creator.Collections["queue_import"].direct.update(importObj._id, { - $set: { - start_time: starttime, - end_time: endtime +try { + Meteor.methods({ + startImportJobs: function (record_id, space) { + var endtime, importObj, starttime; + // collection = Creator.Collections["queue_import"] + // importList = collection.find({"status":"waitting"}).fetch() + // importList.forEach (importObj)-> + // # 根据recordObj提供的对象名,逐个文件导入 + starttime = new Date(); + importObj = Creator.Collections["queue_import"].findOne({ + _id: record_id + }); + importObject(importObj, space); + endtime = new Date(); + return Creator.Collections["queue_import"].direct.update(importObj._id, { + $set: { + start_time: starttime, + end_time: endtime + } + }); + }, + getValueLable: function (reference_to_object, name_field, value, space_id) { + var data, fields, ids, results; + if (!value) { + return ""; } - }); - }, - getValueLable: function (reference_to_object, name_field, value, space_id) { - var data, fields, ids, results; - if (!value) { - return ""; - } - ids = []; - if (value.constructor === Array) { - ids = value; - } else { - ids.push(value); - } - fields = { - _id: 1 - }; - fields[name_field] = 1; - results = Creator.getCollection(reference_to_object, space_id).find({ - _id: { - $in: value + ids = []; + if (value.constructor === Array) { + ids = value; + } else { + ids.push(value); } - }, { - fields: fields - }).fetch(); - data = []; - _.each(results, function (result) { - return data.push(result[name_field]); - }); - return data; - }, - // Creator.testImportJobs("fSNrgYcftFkiBXEvi","Af8eM6mAHo7wMDqD3") - // 测试 - testImportJobs: function (record_id, space) { - var importObj; - importObj = Creator.Collections["queue_import"].findOne({ - _id: record_id - }); - return importObject(importObj, space); - } -}); \ No newline at end of file + fields = { + _id: 1 + }; + fields[name_field] = 1; + results = Creator.getCollection(reference_to_object, space_id).find({ + _id: { + $in: value + } + }, { + fields: fields + }).fetch(); + data = []; + _.each(results, function (result) { + return data.push(result[name_field]); + }); + return data; + }, + // Creator.testImportJobs("fSNrgYcftFkiBXEvi","Af8eM6mAHo7wMDqD3") + // 测试 + testImportJobs: function (record_id, space) { + var importObj; + importObj = Creator.Collections["queue_import"].findOne({ + _id: record_id + }); + return importObject(importObj, space); + } + }); +} catch (error) { + console.log(error.message) +} \ No newline at end of file From a86eeb0a67f47759946da105723d32e9a9fa8826 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 19 Aug 2019 15:41:22 +0800 Subject: [PATCH 087/154] @steedos/standard-objects@1.0.6 --- packages/standard-objects/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 1e4b03e623..1d7d7ccbb4 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.0.5", + "version": "1.0.6", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", From 7137a50c00d4e2d4852274fdd334c7099fc96e77 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Tue, 20 Aug 2019 10:55:38 +0800 Subject: [PATCH 088/154] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=9C=A8meteor=20?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=B8=AD=E7=9A=84=20.plugins=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=E4=B8=AD=E8=B0=83=E8=AF=95=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/History.md | 4 ++++ packages/core/package.json | 2 +- packages/core/src/init/plugins.ts | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/core/History.md b/packages/core/History.md index ad7c695893..67edf94a5e 100644 --- a/packages/core/History.md +++ b/packages/core/History.md @@ -1,3 +1,7 @@ +1.3.17 / 2019-08-20 +=================== + + * 支持在meteor 项目中的.plugins文件夹中调试插件 1.3.16 / 2019-08-19 =================== diff --git a/packages/core/package.json b/packages/core/package.json index 8f3076623d..3ac9dc300d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.16", + "version": "1.3.17", "description": "", "main": "lib/index.js", "scripts": { diff --git a/packages/core/src/init/plugins.ts b/packages/core/src/init/plugins.ts index a924423e58..426cccab03 100644 --- a/packages/core/src/init/plugins.ts +++ b/packages/core/src/init/plugins.ts @@ -37,7 +37,9 @@ export class Plugins { } static getPluginDir(pluginName) { - return path.dirname(require.resolve(`${pluginName}/package.json`, {paths: [path.join(process.cwd(), '.plugins')]})); + return path.dirname(require.resolve(`${pluginName}/package.json`, { + paths: [path.join(require('app-root-path').path, '.plugins'), path.join(process.cwd(), '.plugins')] + })); } static getConfig(pluginDir: string){ From e429e20b0b753a3e797267e6ee28b3831a8b91c3 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Tue, 20 Aug 2019 10:56:13 +0800 Subject: [PATCH 089/154] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/init/plugins.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/init/plugins.ts b/packages/core/src/init/plugins.ts index 426cccab03..05e8b5e6ef 100644 --- a/packages/core/src/init/plugins.ts +++ b/packages/core/src/init/plugins.ts @@ -26,7 +26,7 @@ export class Plugins { } catch (error) { if(error.message.startsWith("Cannot find module")){ - throw new Error(`Plugin in not found in project, please execute: yarn add ${pluginName}`) + throw new Error(`Plugin not found in project, please execute: yarn add ${pluginName}`) }else{ throw new Error(error); } From 064b2a950444b1c9498d54c79d1d9588005f9ecc Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Tue, 20 Aug 2019 11:11:20 +0800 Subject: [PATCH 090/154] =?UTF-8?q?=E4=BC=98=E5=8C=96core.init=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/History.md | 4 ++++ packages/core/package.json | 2 +- packages/core/src/init/core.ts | 5 ++++- packages/core/src/init/index.ts | 5 +++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/core/History.md b/packages/core/History.md index 67edf94a5e..514608045b 100644 --- a/packages/core/History.md +++ b/packages/core/History.md @@ -1,3 +1,7 @@ +1.3.18 / 2019-08-20 +=================== + + * 优化core.init 函数 1.3.17 / 2019-08-20 =================== diff --git a/packages/core/package.json b/packages/core/package.json index 3ac9dc300d..24f99700b1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.17", + "version": "1.3.18", "description": "", "main": "lib/index.js", "scripts": { diff --git a/packages/core/src/init/core.ts b/packages/core/src/init/core.ts index a5e1ea0c49..fa63e70619 100644 --- a/packages/core/src/init/core.ts +++ b/packages/core/src/init/core.ts @@ -9,10 +9,13 @@ import { Publish } from '../publish' export class Core { - static run() { + static load(){ this.expandSimpleSchemaPres(); this.loadObjects(); this.initObjects(); + } + + static run() { this.initGraphqlAPI(); this.initPublishAPI() this.initRoutes(); diff --git a/packages/core/src/init/index.ts b/packages/core/src/init/index.ts index c858366d03..97cae1cfe5 100644 --- a/packages/core/src/init/index.ts +++ b/packages/core/src/init/index.ts @@ -3,11 +3,12 @@ import { LoadFiles } from './loadFiles' import { Core } from './core' import { Plugins } from './plugins'; -export function init() { +export async function init() { LoadFiles.initStandardObjects(); Datasources.create(); Plugins.init(); LoadFiles.initProjectObjects() + Core.load(); + await Datasources.init(); Core.run(); - Datasources.init(); } \ No newline at end of file From 3c47ebe93c35ef8a7844bcd1426f501962940e1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=B7=E4=BA=AE=E8=BE=89?= Date: Tue, 20 Aug 2019 11:35:26 +0800 Subject: [PATCH 091/154] Update object_field_type.md --- docs/object_field_type.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/object_field_type.md b/docs/object_field_type.md index 97435de105..3be4c999bc 100644 --- a/docs/object_field_type.md +++ b/docs/object_field_type.md @@ -69,20 +69,22 @@ is_done: ``` ## 数值 number -数值类型在界面上显示为数字输入框,并可配置显示的小数位数(默认为0)和数值最大长度(默认为18)。 +数值类型在界面上显示为数字输入框,并可使用scale属性来配置显示的小数位数(默认为0) ```yaml comment_count: label: 评论数 type: number + scale: 2 required: true ``` ## 金额 currency -金额类型在界面上显示为数字输入框,并可配置显示的小数位数(默认为2)和数值最大长度(默认为18)。 +金额类型在界面上显示为数字输入框,并可使用scale属性来配置显示的小数位数(默认为2) ```yaml amount: label: 总金额 type: currency + scale: 4 required: true ``` From b2c43367cc0b263f618ca53859968fc2184b6399 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Tue, 20 Aug 2019 13:47:29 +0800 Subject: [PATCH 092/154] =?UTF-8?q?creator=20#1299,=20creator=20#1300=20cr?= =?UTF-8?q?eator=20#1272=EF=BC=8C=E8=BF=98=E5=8E=9F=E9=99=84=E4=BB=B6?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81=EF=BC=8C=E4=B8=8D=E5=A4=84?= =?UTF-8?q?=E7=90=86404=E6=83=85=E5=86=B5,=EF=BC=8C=E4=B8=8D=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E7=94=A8window.open=E6=89=93=E5=BC=80=E9=99=84?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E5=9B=A0=E4=B8=BA=E6=89=8B=E6=9C=BA=E4=B8=8A?= =?UTF-8?q?=E6=89=93=E4=B8=8D=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/standard-objects/cms_files.object.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/standard-objects/cms_files.object.yml b/packages/standard-objects/cms_files.object.yml index 200bdf2f82..980324b489 100644 --- a/packages/standard-objects/cms_files.object.yml +++ b/packages/standard-objects/cms_files.object.yml @@ -173,12 +173,10 @@ actions: filename = file.name; rev = fileId; length = file.size; - Steedos.cordovaDownload(url, filename, rev, length); - return false; + return Steedos.cordovaDownload(url, filename, rev, length); } else { url = Steedos.absoluteUrl("/api/files/files/" + fileId + "?download=true"); - window.open(url,"_blank"); - return false; + return window.location = url; } } } From 4105c3953fb3f3c336ab1a6704e1cf6f26b75c79 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Wed, 21 Aug 2019 09:14:47 +0800 Subject: [PATCH 093/154] Update History.md --- packages/filters/History.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/filters/History.md b/packages/filters/History.md index 3bba10cf8c..8c43331163 100644 --- a/packages/filters/History.md +++ b/packages/filters/History.md @@ -1,25 +1,20 @@ -=================== 1.0.0 / 2019-08-14 =================== * 升级到1.0,fix版本号冲突 -=================== 0.0.14 / 2019-08-14 =================== * 放开Guid/EdmLiteral相关代码,因为在前端也可能用这个包的代码了,以防有什么潜在bug -=================== 0.0.13 / 2019-08-12 =================== * 支持基于userContext的公式字段值解析 -=================== 0.0.12 / 2019-08-08 =================== * this_year这样的内置范围支持utcOffset参数使用不同时区 * 不直接在代码中getTimezoneOffset处理时区,而是直接改formatISO8601内核函数使用utc时间值 -=================== 0.0.11 / 2019-08-07 =================== From a58d933174bd6006342df295e6866d71fa52c1a0 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Wed, 21 Aug 2019 09:27:20 +0800 Subject: [PATCH 094/154] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E6=97=A0=E6=B3=95=E7=82=B9=E5=87=BB=E8=BF=9B?= =?UTF-8?q?=E5=85=A5=E7=9B=B8=E5=85=B3=E7=9A=84=E5=AD=97=E6=AE=B5=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E8=AE=B0=E5=BD=95=20#1275?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../standard-objects/audit_records.object.yml | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 packages/standard-objects/audit_records.object.yml diff --git a/packages/standard-objects/audit_records.object.yml b/packages/standard-objects/audit_records.object.yml new file mode 100644 index 0000000000..b9201aa8d7 --- /dev/null +++ b/packages/standard-objects/audit_records.object.yml @@ -0,0 +1,61 @@ +name: audit_records +label: 字段历史 +icon: record +fields: + related_to: + label: "相关项" + type: "lookup" + index: true + reference_to: ! |- + function () { + var o; + o = []; + _.each(Creator.Objects, function(object, object_name) { + if (object.enable_audit) { + return o.push(object.name); + } + }); + return o; + } + filterable: true + created: + label: "时间" + filterable: true + field_name: + label: "字段" + type: "text" + required: true + is_wide: true + is_name: true + created_by: + label: "用户" + previous_value: + label: "原始值" + type: "text" + new_value: + label: "新值" + type: "text" +list_views: + all: + label: "全部" + filter_scope: "space" + columns: ["field_name", "created", "created_by", "previous_value", "new_value"] + filter_fields: ["related_to"] + recent: + label: "最近查看" + filter_scope: "space" +permission_set: + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: true \ No newline at end of file From 45408f43f223fd4681ad41ea1e9be3ceeee950ed Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Wed, 21 Aug 2019 09:44:58 +0800 Subject: [PATCH 095/154] =?UTF-8?q?#1275=20=E5=AD=97=E6=AE=B5=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E7=9A=84=E7=9B=B8=E5=85=B3=E9=A1=B9=E5=9C=A8=E8=A7=86?= =?UTF-8?q?=E5=9B=BE=E4=B8=AD=E4=B8=8D=E8=83=BD=E5=8E=BB=E6=8E=89=EF=BC=8C?= =?UTF-8?q?=E5=9B=A0=E4=B8=BA=E5=AD=97=E6=AE=B5=E5=8E=86=E5=8F=B2=E6=80=BB?= =?UTF-8?q?=E5=85=A5=E5=8F=A3=E9=9C=80=E8=A6=81=E6=98=BE=E7=A4=BA=E8=AF=A5?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/standard-objects/audit_records.object.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/standard-objects/audit_records.object.yml b/packages/standard-objects/audit_records.object.yml index b9201aa8d7..95a2edfb3f 100644 --- a/packages/standard-objects/audit_records.object.yml +++ b/packages/standard-objects/audit_records.object.yml @@ -39,7 +39,7 @@ list_views: all: label: "全部" filter_scope: "space" - columns: ["field_name", "created", "created_by", "previous_value", "new_value"] + columns: ["related_to", "field_name", "created", "created_by", "previous_value", "new_value"] filter_fields: ["related_to"] recent: label: "最近查看" From 8bd9de703b37b731367eea71aa70dc8e459916c4 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Wed, 21 Aug 2019 10:39:30 +0800 Subject: [PATCH 096/154] =?UTF-8?q?Settings=E4=B8=AD=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?=E5=8F=82=E6=95=B0'public.webservices.workflow.url'=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E7=94=B3=E8=AF=B7=E5=8D=95=E7=95=8C=E9=9D=A2=E4=B8=AD?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E2=80=9C=E6=9F=A5=E7=9C=8B=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E5=8D=95=E2=80=9D=E6=8C=89=E9=92=AE=E4=BC=9A=E6=8A=A5=E9=94=99?= =?UTF-8?q?=20#1308?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../standard-objects/workflow/instances.object.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/standard-objects/workflow/instances.object.yml b/packages/standard-objects/workflow/instances.object.yml index 338c376dbc..508a55562a 100644 --- a/packages/standard-objects/workflow/instances.object.yml +++ b/packages/standard-objects/workflow/instances.object.yml @@ -266,6 +266,12 @@ actions: uobj["print_is_show_attachments"] = '1'; uobj["X-User-Id"] = Meteor.userId(); uobj["X-Auth-Token"] = Accounts._storedLoginToken(); - workflowUrl = Meteor.settings["public"].webservices.workflow.url; - return Steedos.openWindow(workflowUrl + "workflow/space/" + Session.get("spaceId") + "/print/" + record_id + "?" + $.param(uobj), "", 'width=900,height=750,scrollbars=yes,EnableViewPortScale=yes,toolbarposition=top,transitionstyle=fliphorizontal,menubar=yes,closebuttoncaption= x '); + var settings = Meteor.settings["public"].webservices; + workflowUrl = settings && settings.workflow && settings.workflow.url; + if(workflowUrl){ + return Steedos.openWindow(workflowUrl + "workflow/space/" + Session.get("spaceId") + "/print/" + record_id + "?" + $.param(uobj), "", 'width=900,height=750,scrollbars=yes,EnableViewPortScale=yes,toolbarposition=top,transitionstyle=fliphorizontal,menubar=yes,closebuttoncaption= x '); + } + else{ + return toastr && toastr.error && toastr.error("Settings中缺失参数'public.webservices.workflow.url',请联系系统管理员"); + } } From 2d1fe3dc8a9982e4267441ef61691ee64b0fe8df Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Wed, 21 Aug 2019 16:30:42 +0800 Subject: [PATCH 097/154] =?UTF-8?q?#113=20object=20=E7=A6=81=E6=AD=A2?= =?UTF-8?q?=E9=87=8D=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/objectql/package.json | 4 +-- packages/objectql/src/typeorm/util.ts | 8 +++--- packages/objectql/src/types/datasource.ts | 4 +-- packages/objectql/src/types/object.ts | 30 ++++++++++++----------- packages/objectql/src/types/schema.ts | 23 +++++++++++++++-- 5 files changed, 45 insertions(+), 24 deletions(-) diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 0a7f083c03..eb824332e0 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.0.6", + "version": "1.0.7", "description": "", "main": "lib/index.js", "scripts": { @@ -20,7 +20,7 @@ "@salesforce/ts-types": "^1.1.1", "@steedos/filters": "^1.0.0", "@steedos/odata-v4-typeorm": "^0.0.24", - "@steedos/schemas": "^1.0.2", + "@steedos/schemas": "^1.0.3", "@steedos/standard-objects": "^1.0.4", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", diff --git a/packages/objectql/src/typeorm/util.ts b/packages/objectql/src/typeorm/util.ts index 2c3fa1832d..33419f7ec2 100644 --- a/packages/objectql/src/typeorm/util.ts +++ b/packages/objectql/src/typeorm/util.ts @@ -72,7 +72,7 @@ export function getTableColumns(fields: Dictionary, object: St } export function getEntity(object: SteedosObjectType, databaseType: DatabaseType): EntitySchema { - let tableName = object.tableName; + let tableName = object.table_name; let fields = object.fields; let columns: EntitySchemaColumnDictionary = getTableColumns(fields, object, databaseType); if (!columns){ @@ -101,14 +101,14 @@ export function getEntities(objects: Dictionary, databaseType if (primaryKeys.length === 1) { let entitySchema = getEntity(object, databaseType); if (entitySchema) { - entities[object.tableName] = entitySchema; + entities[object.table_name] = entitySchema; } } else if (primaryKeys.length > 1) { - primaryColumnMultiErrorTables.push(object.tableName); + primaryColumnMultiErrorTables.push(object.table_name); } else{ - primaryColumnEmptyErrorTables.push(object.tableName); + primaryColumnEmptyErrorTables.push(object.table_name); } } if (primaryColumnEmptyErrorTables.length) { diff --git a/packages/objectql/src/types/datasource.ts b/packages/objectql/src/types/datasource.ts index fa38c11ae1..14f44b1e24 100644 --- a/packages/objectql/src/types/datasource.ts +++ b/packages/objectql/src/types/datasource.ts @@ -419,7 +419,7 @@ export class SteedosDataSourceType implements Dictionary { return this._schema; } - async use(filePath) { + use(filePath) { let objectJsons = util.loadObjects(filePath) let fieldJsons = util.loadFields(filePath) _.each(objectJsons, (json: SteedosObjectTypeConfig) => { @@ -539,7 +539,7 @@ export class SteedosDataSourceType implements Dictionary { this.initExtendObject(); this.initApps(); this.initReports(); - this.schema.transformReferenceOfObject(this); + // this.schema.transformReferenceOfObject(this); if (this._adapter.init) { return await this._adapter.init(this._objects); } diff --git a/packages/objectql/src/types/object.ts b/packages/objectql/src/types/object.ts index 357589cad8..b23dd1f8e7 100644 --- a/packages/objectql/src/types/object.ts +++ b/packages/objectql/src/types/object.ts @@ -10,7 +10,7 @@ import { formatFiltersToODataQuery } from "@steedos/filters"; abstract class SteedosObjectProperties { name?: string extend?: string - tableName?: string + table_name?: string label?: string icon?: string enable_search?: boolean @@ -70,7 +70,7 @@ export class SteedosObjectType extends SteedosObjectProperties { private _listeners: Dictionary = {}; private _triggers: Dictionary = {}; private _list_views: Dictionary = {}; - private _tableName: string; + private _table_name: string; private _triggersQueue: Dictionary> = {} private _idFieldName: string; private _idFieldNames: string[] = []; @@ -154,13 +154,13 @@ export class SteedosObjectType extends SteedosObjectProperties { this._enable_share = false if (/^[_a-zA-Z][_a-zA-Z0-9]*$/.test(object_name) != true) { - throw new Error('invalid character, object_name can only be start with _ or a-zA-Z and contain only _ or _a-zA-Z0-9. you can set tableName'); + throw new Error('invalid character, object_name can only be start with _ or a-zA-Z and contain only _ or _a-zA-Z0-9. you can set table_name'); } - if (config.tableName) { - this._tableName = config.tableName + if (config.table_name) { + this._table_name = config.table_name } else { - this._tableName = this._name + this._table_name = this._name } _.each(properties, (property) => { @@ -201,6 +201,8 @@ export class SteedosObjectType extends SteedosObjectProperties { if (this._datasource.driver == SteedosDatabaseDriverType.Mongo || this._datasource.driver == SteedosDatabaseDriverType.MeteorMongo) { this._idFieldName = '_id' } + + this.schema.setObjectMap(this.name, {datasourceName: this.datasource.name}) } setPermission(config: SteedosObjectPermissionTypeConfig) { @@ -482,31 +484,31 @@ export class SteedosObjectType extends SteedosObjectProperties { async find(query: SteedosQueryOptions, userSession?: SteedosUserSession) { let clonedQuery = Object.assign({}, query); await this.processUnreadableField(userSession, clonedQuery); - return await this.callAdapter('find', this.tableName, clonedQuery, userSession) + return await this.callAdapter('find', this.table_name, clonedQuery, userSession) } async findOne(id: SteedosIDType, query: SteedosQueryOptions, userSession?: SteedosUserSession) { let clonedQuery = Object.assign({}, query); await this.processUnreadableField(userSession, clonedQuery); - return await this.callAdapter('findOne', this.tableName, id, clonedQuery, userSession) + return await this.callAdapter('findOne', this.table_name, id, clonedQuery, userSession) } async insert(doc: Dictionary, userSession?: SteedosUserSession) { - return await this.callAdapter('insert', this.tableName, doc, userSession) + return await this.callAdapter('insert', this.table_name, doc, userSession) } async update(id: SteedosIDType, doc: Dictionary, userSession?: SteedosUserSession) { await this.processUneditableFields(userSession, doc) - return await this.callAdapter('update', this.tableName, id, doc, userSession) + return await this.callAdapter('update', this.table_name, id, doc, userSession) } async delete(id: SteedosIDType, userSession?: SteedosUserSession) { - return await this.callAdapter('delete', this.tableName, id, userSession) + return await this.callAdapter('delete', this.table_name, id, userSession) } async count(query: SteedosQueryOptions, userSession?: SteedosUserSession) { let clonedQuery = Object.assign({}, query); - return await this.callAdapter('count', this.tableName, clonedQuery, userSession) + return await this.callAdapter('count', this.table_name, clonedQuery, userSession) } private async allow(method: string, userSession: SteedosUserSession) { @@ -724,8 +726,8 @@ export class SteedosObjectType extends SteedosObjectProperties { return this._list_views; } - public get tableName(): string { - return this._tableName; + public get table_name(): string { + return this._table_name; } public get primaryField(): SteedosFieldType { diff --git a/packages/objectql/src/types/schema.ts b/packages/objectql/src/types/schema.ts index 4a514755c4..3f1321a9ef 100644 --- a/packages/objectql/src/types/schema.ts +++ b/packages/objectql/src/types/schema.ts @@ -11,6 +11,21 @@ export type SteedosSchemaConfig = { export class SteedosSchema { private _datasources: Dictionary = {}; + private _objectsMap: Dictionary<{datasourceName: string, filePath?: string}> = {} + + setObjectMap(objectName:string, options){ + let objectMap = this.getObjectMap(objectName); + if(objectMap){ + if(objectName != 'base' && objectName != 'core' && objectMap.datasourceName != options.datasourceName){ + throw new Error(`object name ${objectName} is unique, you can set table_name. see: https://developer.steedos.com/docs/en/object/#%E8%A1%A8%E5%90%8D-table_name`) + } + } + this._objectsMap[objectName] = options + } + + getObjectMap(objectName: string){ + return this._objectsMap[objectName] + } loadConfig(){ let config: any = util.getSteedosConfig(); @@ -48,8 +63,12 @@ export class SteedosSchema { let datasource_name: string, object_name: string; let args = name.split('.') if(args.length == 1){ - datasource_name = defaultDatasourceName - object_name = args[0] + object_name = name + let objectMap = this.getObjectMap(name); + if(!objectMap){ + throw new Error(`not find object ${name}`); + } + datasource_name = objectMap.datasourceName } if(args.length > 1){ datasource_name = args[0] From 613263180a1cb0caae5de3702362f1dfa5177a01 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Wed, 21 Aug 2019 16:31:00 +0800 Subject: [PATCH 098/154] =?UTF-8?q?#113=20=E4=BF=AE=E6=94=B9=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=B5=8B=E8=AF=95=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/unit/driver/mysql/basicFieldTypes.ts | 2 +- .../objectql/test/unit/driver/mysql/crud.ts | 2 +- .../objectql/test/unit/driver/mysql/fields.ts | 2 +- .../test/unit/driver/mysql/filters.ts | 2 +- .../objectql/test/unit/driver/mysql/page.ts | 2 +- .../driver/mysql/primaryKeyAutoincrement.ts | 2 +- .../objectql/test/unit/driver/mysql/utc.ts | 2 +- .../unit/driver/oracle/basicFieldTypes.ts | 2 +- .../objectql/test/unit/driver/oracle/crud.ts | 2 +- .../test/unit/driver/oracle/fields.ts | 2 +- .../test/unit/driver/oracle/filters.ts | 2 +- .../objectql/test/unit/driver/oracle/page.ts | 2 +- .../driver/oracle/primaryKeyAutoincrement.ts | 2 +- .../objectql/test/unit/driver/oracle/utc.ts | 2 +- .../unit/driver/postgres/basicFieldTypes.ts | 2 +- .../test/unit/driver/postgres/crud.ts | 2 +- .../test/unit/driver/postgres/fields.ts | 2 +- .../test/unit/driver/postgres/filters.ts | 2 +- .../test/unit/driver/postgres/page.ts | 2 +- .../postgres/primaryKeyAutoincrement.ts | 2 +- .../unit/driver/sqlite3/basicFieldTypes.ts | 2 +- .../objectql/test/unit/driver/sqlite3/crud.ts | 2 +- .../test/unit/driver/sqlite3/fields.ts | 2 +- .../test/unit/driver/sqlite3/filters.ts | 2 +- .../objectql/test/unit/driver/sqlite3/page.ts | 2 +- .../driver/sqlite3/primaryKeyAutoincrement.ts | 2 +- .../objectql/test/unit/driver/sqlite3/sort.ts | 2 +- .../unit/driver/sqlserver/basicFieldTypes.ts | 2 +- .../test/unit/driver/sqlserver/crud.ts | 2 +- .../test/unit/driver/sqlserver/fields.ts | 2 +- .../test/unit/driver/sqlserver/filters.ts | 2 +- .../test/unit/driver/sqlserver/page.ts | 2 +- .../sqlserver/primaryKeyAutoincrement.ts | 2 +- .../test/unit/driver/sqlserver/utc.ts | 2 +- packages/objectql/test/unit/idFieldTest.ts | 2 +- .../test/unit/load/base/users.object.yml | 280 ++++++++++++++++++ .../objectql/test/unit/object/name_unique.ts | 49 +++ .../test/unit/object/src3/accounts.object.yml | 53 ++++ .../test/unit/object/src3/accounts.trigger.js | 16 + .../object/src3/accounts_extend.object.yml | 8 + packages/objectql/test/unit/permissionTest.ts | 2 +- .../unit/schema/datasource/sqlite3/crud.ts | 2 +- .../unit/schema/datasource/sqlite3/filters.ts | 2 +- 43 files changed, 444 insertions(+), 38 deletions(-) create mode 100644 packages/objectql/test/unit/load/base/users.object.yml create mode 100644 packages/objectql/test/unit/object/name_unique.ts create mode 100644 packages/objectql/test/unit/object/src3/accounts.object.yml create mode 100644 packages/objectql/test/unit/object/src3/accounts.trigger.js create mode 100644 packages/objectql/test/unit/object/src3/accounts_extend.object.yml diff --git a/packages/objectql/test/unit/driver/mysql/basicFieldTypes.ts b/packages/objectql/test/unit/driver/mysql/basicFieldTypes.ts index 85e404beca..15b02317ee 100644 --- a/packages/objectql/test/unit/driver/mysql/basicFieldTypes.ts +++ b/packages/objectql/test/unit/driver/mysql/basicFieldTypes.ts @@ -36,7 +36,7 @@ describe('basic field types for mysql database', () => { objects: { test: { label: 'MySql Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/mysql/crud.ts b/packages/objectql/test/unit/driver/mysql/crud.ts index 859c3e7b18..05c7001bd2 100644 --- a/packages/objectql/test/unit/driver/mysql/crud.ts +++ b/packages/objectql/test/unit/driver/mysql/crud.ts @@ -63,7 +63,7 @@ describe('crud for mysql database', () => { objects: { test: { label: 'MySql Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/mysql/fields.ts b/packages/objectql/test/unit/driver/mysql/fields.ts index 3ad3ef8c59..d10c75e87b 100644 --- a/packages/objectql/test/unit/driver/mysql/fields.ts +++ b/packages/objectql/test/unit/driver/mysql/fields.ts @@ -69,7 +69,7 @@ describe('fetch records width specific fields for mysql database', () => { objects: { test: { label: 'MySql Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/mysql/filters.ts b/packages/objectql/test/unit/driver/mysql/filters.ts index 50f76c45ea..7acf4edcae 100644 --- a/packages/objectql/test/unit/driver/mysql/filters.ts +++ b/packages/objectql/test/unit/driver/mysql/filters.ts @@ -170,7 +170,7 @@ describe('filters for mysql database', () => { objects: { test: { label: 'MySql Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/mysql/page.ts b/packages/objectql/test/unit/driver/mysql/page.ts index b9f665d02e..681f03a5d4 100644 --- a/packages/objectql/test/unit/driver/mysql/page.ts +++ b/packages/objectql/test/unit/driver/mysql/page.ts @@ -116,7 +116,7 @@ describe('fetch records by paging for mysql database', function() { objects: { test: { label: 'MySql Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/mysql/primaryKeyAutoincrement.ts b/packages/objectql/test/unit/driver/mysql/primaryKeyAutoincrement.ts index 220822be85..8186c92676 100644 --- a/packages/objectql/test/unit/driver/mysql/primaryKeyAutoincrement.ts +++ b/packages/objectql/test/unit/driver/mysql/primaryKeyAutoincrement.ts @@ -103,7 +103,7 @@ describe('primary key autoincrement test for mysql database', () => { objects: { test: { label: 'MySql Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/mysql/utc.ts b/packages/objectql/test/unit/driver/mysql/utc.ts index 854d9effa9..9cad8efd51 100644 --- a/packages/objectql/test/unit/driver/mysql/utc.ts +++ b/packages/objectql/test/unit/driver/mysql/utc.ts @@ -38,7 +38,7 @@ describe('utc of datetime/date for mysql database', () => { objects: { test: { label: 'MySql Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/oracle/basicFieldTypes.ts b/packages/objectql/test/unit/driver/oracle/basicFieldTypes.ts index 7a8a461322..a7c1ca0661 100644 --- a/packages/objectql/test/unit/driver/oracle/basicFieldTypes.ts +++ b/packages/objectql/test/unit/driver/oracle/basicFieldTypes.ts @@ -36,7 +36,7 @@ describe('basic field types for oracle database', () => { objects: { test: { label: 'Oracle Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/oracle/crud.ts b/packages/objectql/test/unit/driver/oracle/crud.ts index 95fa797a28..cc38a1f8bc 100644 --- a/packages/objectql/test/unit/driver/oracle/crud.ts +++ b/packages/objectql/test/unit/driver/oracle/crud.ts @@ -63,7 +63,7 @@ describe('crud for oracle database', () => { objects: { test: { label: 'Oracle Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/oracle/fields.ts b/packages/objectql/test/unit/driver/oracle/fields.ts index 2a40f8cf70..a118f4b5ab 100644 --- a/packages/objectql/test/unit/driver/oracle/fields.ts +++ b/packages/objectql/test/unit/driver/oracle/fields.ts @@ -69,7 +69,7 @@ describe('fetch records width specific fields for oracle database', () => { objects: { test: { label: 'Oracle Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/oracle/filters.ts b/packages/objectql/test/unit/driver/oracle/filters.ts index 7e2a2da18e..64a24a2a49 100644 --- a/packages/objectql/test/unit/driver/oracle/filters.ts +++ b/packages/objectql/test/unit/driver/oracle/filters.ts @@ -170,7 +170,7 @@ describe('filters for oracle database', () => { objects: { test: { label: 'Oracle Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/oracle/page.ts b/packages/objectql/test/unit/driver/oracle/page.ts index 7ef6c08b89..678175d510 100644 --- a/packages/objectql/test/unit/driver/oracle/page.ts +++ b/packages/objectql/test/unit/driver/oracle/page.ts @@ -137,7 +137,7 @@ describe('fetch records by paging for oracle database', function() { objects: { test: { label: 'Oracle Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/oracle/primaryKeyAutoincrement.ts b/packages/objectql/test/unit/driver/oracle/primaryKeyAutoincrement.ts index bbfaafaef7..2e104baf11 100644 --- a/packages/objectql/test/unit/driver/oracle/primaryKeyAutoincrement.ts +++ b/packages/objectql/test/unit/driver/oracle/primaryKeyAutoincrement.ts @@ -104,7 +104,7 @@ describe('primary key autoincrement test for oracle database', () => { objects: { test: { label: 'Oracle Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/oracle/utc.ts b/packages/objectql/test/unit/driver/oracle/utc.ts index 637df94123..9935b03f75 100644 --- a/packages/objectql/test/unit/driver/oracle/utc.ts +++ b/packages/objectql/test/unit/driver/oracle/utc.ts @@ -38,7 +38,7 @@ describe('utc of datetime/date for oracle database', () => { objects: { test: { label: 'Oracle Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/postgres/basicFieldTypes.ts b/packages/objectql/test/unit/driver/postgres/basicFieldTypes.ts index adf2af535e..da39bc066a 100644 --- a/packages/objectql/test/unit/driver/postgres/basicFieldTypes.ts +++ b/packages/objectql/test/unit/driver/postgres/basicFieldTypes.ts @@ -36,7 +36,7 @@ describe('basic field types for postgres database', () => { objects: { test: { label: 'Postgres Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/postgres/crud.ts b/packages/objectql/test/unit/driver/postgres/crud.ts index c007d29aed..76e229796d 100644 --- a/packages/objectql/test/unit/driver/postgres/crud.ts +++ b/packages/objectql/test/unit/driver/postgres/crud.ts @@ -63,7 +63,7 @@ describe('crud for postgres database', () => { objects: { test: { label: 'Postgres Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/postgres/fields.ts b/packages/objectql/test/unit/driver/postgres/fields.ts index 5dd7996584..73fb29f4a7 100644 --- a/packages/objectql/test/unit/driver/postgres/fields.ts +++ b/packages/objectql/test/unit/driver/postgres/fields.ts @@ -78,7 +78,7 @@ describe('fetch records width specific fields for Postgres database', () => { objects: { test: { label: 'Postgres Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/postgres/filters.ts b/packages/objectql/test/unit/driver/postgres/filters.ts index 341a55a787..8ddbcb4a18 100644 --- a/packages/objectql/test/unit/driver/postgres/filters.ts +++ b/packages/objectql/test/unit/driver/postgres/filters.ts @@ -170,7 +170,7 @@ describe('filters for postgres database', () => { objects: { test: { label: 'Postgres Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/postgres/page.ts b/packages/objectql/test/unit/driver/postgres/page.ts index fc2594aee6..074a33667a 100644 --- a/packages/objectql/test/unit/driver/postgres/page.ts +++ b/packages/objectql/test/unit/driver/postgres/page.ts @@ -137,7 +137,7 @@ describe('fetch records by paging for postgres database', () => { objects: { test: { label: 'Postgres Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/postgres/primaryKeyAutoincrement.ts b/packages/objectql/test/unit/driver/postgres/primaryKeyAutoincrement.ts index cbc72dbadc..37c11fabf1 100644 --- a/packages/objectql/test/unit/driver/postgres/primaryKeyAutoincrement.ts +++ b/packages/objectql/test/unit/driver/postgres/primaryKeyAutoincrement.ts @@ -103,7 +103,7 @@ describe('primary key autoincrement test for postgres database', () => { objects: { test: { label: 'Postgres Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlite3/basicFieldTypes.ts b/packages/objectql/test/unit/driver/sqlite3/basicFieldTypes.ts index f59521380e..b84b2d6ae7 100644 --- a/packages/objectql/test/unit/driver/sqlite3/basicFieldTypes.ts +++ b/packages/objectql/test/unit/driver/sqlite3/basicFieldTypes.ts @@ -38,7 +38,7 @@ describe('basic field types for sqlite3 database', () => { objects: { test: { label: 'Sqlite3 Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlite3/crud.ts b/packages/objectql/test/unit/driver/sqlite3/crud.ts index 47bcba6118..128efa1c9b 100644 --- a/packages/objectql/test/unit/driver/sqlite3/crud.ts +++ b/packages/objectql/test/unit/driver/sqlite3/crud.ts @@ -66,7 +66,7 @@ describe('crud for sqlite3 database', () => { objects: { test: { label: 'Sqlite3 Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlite3/fields.ts b/packages/objectql/test/unit/driver/sqlite3/fields.ts index 978237b9b0..ad89009b06 100644 --- a/packages/objectql/test/unit/driver/sqlite3/fields.ts +++ b/packages/objectql/test/unit/driver/sqlite3/fields.ts @@ -68,7 +68,7 @@ describe('fetch records width specific fields for sqlite3 database', () => { objects: { test: { label: 'Sqlite3 Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlite3/filters.ts b/packages/objectql/test/unit/driver/sqlite3/filters.ts index dbe54b1070..9e301c2829 100644 --- a/packages/objectql/test/unit/driver/sqlite3/filters.ts +++ b/packages/objectql/test/unit/driver/sqlite3/filters.ts @@ -202,7 +202,7 @@ describe('filters for sqlite3 database', () => { objects: { test: { label: 'Sqlite3 Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlite3/page.ts b/packages/objectql/test/unit/driver/sqlite3/page.ts index 6fc942cae7..93d5fa27bd 100644 --- a/packages/objectql/test/unit/driver/sqlite3/page.ts +++ b/packages/objectql/test/unit/driver/sqlite3/page.ts @@ -139,7 +139,7 @@ describe('fetch records by paging for sqlite3 database', () => { objects: { test: { label: 'Sqlite3 Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlite3/primaryKeyAutoincrement.ts b/packages/objectql/test/unit/driver/sqlite3/primaryKeyAutoincrement.ts index b1b31cce6d..683538215f 100644 --- a/packages/objectql/test/unit/driver/sqlite3/primaryKeyAutoincrement.ts +++ b/packages/objectql/test/unit/driver/sqlite3/primaryKeyAutoincrement.ts @@ -105,7 +105,7 @@ describe('primary key autoincrement test for sqlite3 database', () => { objects: { test: { label: 'Sqlite3 Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlite3/sort.ts b/packages/objectql/test/unit/driver/sqlite3/sort.ts index f7cdac2346..1d7d776e6b 100644 --- a/packages/objectql/test/unit/driver/sqlite3/sort.ts +++ b/packages/objectql/test/unit/driver/sqlite3/sort.ts @@ -85,7 +85,7 @@ describe('fetch records for sqlite3 with sort arguments as a string that comply objects: { test: { label: 'Sqlite3 Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlserver/basicFieldTypes.ts b/packages/objectql/test/unit/driver/sqlserver/basicFieldTypes.ts index 74db3641b4..35470333de 100644 --- a/packages/objectql/test/unit/driver/sqlserver/basicFieldTypes.ts +++ b/packages/objectql/test/unit/driver/sqlserver/basicFieldTypes.ts @@ -36,7 +36,7 @@ describe('basic field types for sqlserver database', () => { objects: { test: { label: 'SqlServer Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlserver/crud.ts b/packages/objectql/test/unit/driver/sqlserver/crud.ts index 0aa4ccaf09..8bfe70fd60 100644 --- a/packages/objectql/test/unit/driver/sqlserver/crud.ts +++ b/packages/objectql/test/unit/driver/sqlserver/crud.ts @@ -63,7 +63,7 @@ describe('crud for sqlserver database', () => { objects: { test: { label: 'SqlServer Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlserver/fields.ts b/packages/objectql/test/unit/driver/sqlserver/fields.ts index 30cc38643f..0e43fe771c 100644 --- a/packages/objectql/test/unit/driver/sqlserver/fields.ts +++ b/packages/objectql/test/unit/driver/sqlserver/fields.ts @@ -71,7 +71,7 @@ describe('fetch records width specific fields for sqlserver database', () => { objects: { test: { label: 'SqlServer Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlserver/filters.ts b/packages/objectql/test/unit/driver/sqlserver/filters.ts index fa6f95d5c7..dd1c93caaf 100644 --- a/packages/objectql/test/unit/driver/sqlserver/filters.ts +++ b/packages/objectql/test/unit/driver/sqlserver/filters.ts @@ -170,7 +170,7 @@ describe('filters for sqlserver database', () => { objects: { test: { label: 'SqlServer Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlserver/page.ts b/packages/objectql/test/unit/driver/sqlserver/page.ts index d6a10cca6c..852faf9510 100644 --- a/packages/objectql/test/unit/driver/sqlserver/page.ts +++ b/packages/objectql/test/unit/driver/sqlserver/page.ts @@ -137,7 +137,7 @@ describe('fetch records by paging for sqlserver database', () => { objects: { test: { label: 'SqlServer Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlserver/primaryKeyAutoincrement.ts b/packages/objectql/test/unit/driver/sqlserver/primaryKeyAutoincrement.ts index 6e0c5c8d07..069dd215f3 100644 --- a/packages/objectql/test/unit/driver/sqlserver/primaryKeyAutoincrement.ts +++ b/packages/objectql/test/unit/driver/sqlserver/primaryKeyAutoincrement.ts @@ -103,7 +103,7 @@ describe('primary key autoincrement test for sqlserver database', () => { objects: { test: { label: 'SqlServer Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/driver/sqlserver/utc.ts b/packages/objectql/test/unit/driver/sqlserver/utc.ts index ef96861657..bb0d165635 100644 --- a/packages/objectql/test/unit/driver/sqlserver/utc.ts +++ b/packages/objectql/test/unit/driver/sqlserver/utc.ts @@ -39,7 +39,7 @@ describe('utc of datetime/date for sqlserver database', () => { objects: { test: { label: 'SqlServer Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/idFieldTest.ts b/packages/objectql/test/unit/idFieldTest.ts index f2f89b86d6..6f95315be3 100644 --- a/packages/objectql/test/unit/idFieldTest.ts +++ b/packages/objectql/test/unit/idFieldTest.ts @@ -9,7 +9,7 @@ describe('Test idField', () => { default: { driver: SteedosDatabaseDriverType.Mongo, url: 'mongodb://127.0.0.1/steedos', - objectFiles: [path.resolve(__dirname, "./load")] + objectFiles: [path.resolve(__dirname, "./load/base")] }, sqlite: { driver: SteedosDatabaseDriverType.Sqlite, diff --git a/packages/objectql/test/unit/load/base/users.object.yml b/packages/objectql/test/unit/load/base/users.object.yml new file mode 100644 index 0000000000..0ab81481f5 --- /dev/null +++ b/packages/objectql/test/unit/load/base/users.object.yml @@ -0,0 +1,280 @@ +name: users +label: 用户 +icon: user +enable_api: true +fields: + avatar: + label: 头像 + type: avatar + group: '-' + name: avatar + avatarUrl: + label: 头像URL + type: text + omit: true + name: avatarUrl + name: + label: 姓名 + type: text + required: true + searchable: true + index: true + name: name + company: + type: text + label: 公司 + required: true + name: company + position: + type: text + label: 职务 + required: true + name: position + mobile: + type: text + label: 手机 + group: '-' + required: true + readonly: true + name: mobile + mobile2: + type: text + label: 手机 + required: true + hidden: true + group: '-' + name: mobile2 + wechat: + type: text + label: 微信号 + name: wechat + work_phone: + type: text + label: 座机 + name: work_phone + email: + type: text + label: 邮件 + name: email + email2: + type: text + label: 邮件 + required: true + name: email2 + location: + label: 地址 + type: location + system: gcj02 + required: true + name: location + voice: + label: 语音介绍 + type: audio + group: '-' + name: voice + self_introduction: + type: textarea + is_wide: true + label: 个人简介 + group: '-' + name: self_introduction + photos: + label: 照片 + type: image + multiple: true + max: 9 + group: '-' + name: photos + card_published: + label: 名片已发布 + type: boolean + omit: true + name: card_published + profile: + type: '[Object]' + label: 用户信息 + omit: true + name: profile + profile.sex: + type: select + label: 性别 + options: + - label: 男 + value: 男 + - label: 女 + value: 女 + group: '-' + name: profile.sex + filterable: true + profile.birthdate: + type: date + label: 生日 + name: profile.birthdate + profile.avatar: + type: text + label: 头像 + group: '-' + name: profile.avatar + qrcode: + type: image + label: 二维码 + name: qrcode + sex: + type: select + label: 性别 + options: + - label: 男 + value: 男 + - label: 女 + value: 女 + group: '-' + name: sex + filterable: true + birthday: + type: date + label: 生日 + name: birthday + live: + type: selectCity + label: 现居地 + name: live + hometown: + type: selectCity + label: 家乡 + name: hometown + age: + type: number + label: 年龄 + hidden: true + name: age + zodiac: + type: text + label: 生肖 + hidden: true + name: zodiac + constellation: + type: text + label: 星座 + hidden: true + name: constellation + friends_count: + label: 好友个数 + type: number + omit: true + name: friends_count + heart_count: + label: 点赞数 + type: number + omit: true + name: heart_count + tags: + label: 好友标签 + type: text + multiple: true + omit: true + name: tags + username: + type: text + unique: true + omit: true + name: username + steedos_id: + type: text + unique: true + readonly: true + omit: true + name: steedos_id + locale: + label: 语言 + type: select + allowedValues: + - en-us + - zh-cn + options: + - label: 简体中文 + value: zh-cn + - label: English + value: en-us + name: locale + filterable: true + email_notification: + label: 接收邮件通知 + type: boolean + name: email_notification + primary_email_verified: + type: boolean + omit: true + hidden: true + name: primary_email_verified + last_logon: + type: date + omit: true + hidden: true + name: last_logon + is_cloudadmin: + type: boolean + omit: true + hidden: true + name: is_cloudadmin + is_deleted: + type: boolean + omit: true + hidden: true +list_views: + all: + label: 所有 + columns: + - name + - username + filter_scope: all + filters: + - - _id + - = + - '{userId}' +# triggers: +# before.update.server.user: +# 'on': server +# when: before.update +# todo: !!js/function | +# function (userId, doc, fieldNames, modifier, options) { +# var profileAvatar, ref, user; +# profileAvatar = ((ref = modifier.$set.profile) != null ? ref.avatar : void 0) || modifier.$set["profile.avatar"]; + +# if (modifier.$set.avatar) { +# return modifier.$set.avatarUrl = "/api/files/avatars/" + modifier.$set.avatar; +# } else if (profileAvatar) { +# user = Creator.getCollection("users").findOne({ +# _id: userId +# }, { +# fields: { +# avatarUrl: 1 +# } +# }); + +# if (!user.avatarUrl) { +# return modifier.$set.avatarUrl = profileAvatar; +# } +# } +# } +permission_set: + guest: + allowCreate: false + allowDelete: false + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: true + user: + allowCreate: false + allowDelete: false + allowEdit: false + allowRead: true + modifyAllRecords: false + viewAllRecords: true + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true diff --git a/packages/objectql/test/unit/object/name_unique.ts b/packages/objectql/test/unit/object/name_unique.ts new file mode 100644 index 0000000000..a98e812e56 --- /dev/null +++ b/packages/objectql/test/unit/object/name_unique.ts @@ -0,0 +1,49 @@ +import { expect } from 'chai'; +import { SteedosSchema } from '../../../src'; +var path = require('path') + +describe('Test object name is unique', async () => { + let mySchema = new SteedosSchema({ + datasources: { + mongo: { + driver: 'mongo', + url: 'mongodb://127.0.0.1/steedos', + objectFiles: [path.resolve(__dirname, "./src")] + }, + mongo2: { + driver: 'mongo', + url: 'mongodb://127.0.0.1/steedos', + objectFiles: [path.resolve(__dirname, "./src")] + }, + mongo3: { + driver: 'mongo', + url: 'mongodb://127.0.0.1/steedos', + objectFiles: [path.resolve(__dirname, "./src3")] + } + } + }) + await mySchema.getDataSource("mongo").init(); + + it('name is unique check', async () => { + + let nameRepeatTest = false + try { + await mySchema.getDataSource("mongo2").init() + } catch (error) { + if(error.message.indexOf("is unique") > -1){ + nameRepeatTest = true + } + } + expect(nameRepeatTest).to.equal(true) + }); + + it('name is unique use', async () => { + await mySchema.getDataSource("mongo3").init(); + let accounts3IsUndefined = true + let accounts3 = mySchema.getObject("accounts3") + if(accounts3){ + accounts3IsUndefined = false + } + expect(accounts3IsUndefined).to.equal(false) + }); + }); \ No newline at end of file diff --git a/packages/objectql/test/unit/object/src3/accounts.object.yml b/packages/objectql/test/unit/object/src3/accounts.object.yml new file mode 100644 index 0000000000..fc06773a79 --- /dev/null +++ b/packages/objectql/test/unit/object/src3/accounts.object.yml @@ -0,0 +1,53 @@ +name: accounts3 +table_name: account +label: 单位 +icon: person_account +description: 统一保存客户、合作伙伴、供应商数据 +fields: + name: + type: text + label: 标题 + priority: + type: text + label: 优先级 + options: + - label: 高 + value: high + - label: 中 + value: normal + - label: 低 + value: low + owner: + label: 所有人 + type: lookup + reference_to: users +list_views: + recent: + label: 最近查看 + all: + label: 所有单位 + columns: + - name + - priority + - owner + - modified + filter_fields: + - priority + high_priority: + label: 重点关注 + filters: [["priority", "=", "high"]] +permission_set: + user: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: false + viewAllRecords: false + admin: + allowCreate: true + allowDelete: true + allowEdit: true + allowRead: true + modifyAllRecords: true + viewAllRecords: true \ No newline at end of file diff --git a/packages/objectql/test/unit/object/src3/accounts.trigger.js b/packages/objectql/test/unit/object/src3/accounts.trigger.js new file mode 100644 index 0000000000..6b778fef3c --- /dev/null +++ b/packages/objectql/test/unit/object/src3/accounts.trigger.js @@ -0,0 +1,16 @@ +module.exports = { + + name: 'accountsTriggers', + + listenTo: 'accounts3', + + afterInsert: async function () { + console.log('afterInsert'); + }, + afterUpdate: async function () { + console.log('afterUpdate'); + }, + afterDelete: async function () { + console.log('afterDelete'); + } +} \ No newline at end of file diff --git a/packages/objectql/test/unit/object/src3/accounts_extend.object.yml b/packages/objectql/test/unit/object/src3/accounts_extend.object.yml new file mode 100644 index 0000000000..e7efe3a938 --- /dev/null +++ b/packages/objectql/test/unit/object/src3/accounts_extend.object.yml @@ -0,0 +1,8 @@ +extend: accounts3 +fields: + company_id: + required: true + omit: false + hidden: false + type: lookup + reference_to: organizations \ No newline at end of file diff --git a/packages/objectql/test/unit/permissionTest.ts b/packages/objectql/test/unit/permissionTest.ts index d42caa70d6..0a70d6ce0f 100644 --- a/packages/objectql/test/unit/permissionTest.ts +++ b/packages/objectql/test/unit/permissionTest.ts @@ -51,7 +51,7 @@ describe('Test Permission', async () => { objects: { test2: { label: 'Test2', - tableName: 'test2.cccccc', + table_name: 'test2.cccccc', fields: { name: { label: '名称', diff --git a/packages/objectql/test/unit/schema/datasource/sqlite3/crud.ts b/packages/objectql/test/unit/schema/datasource/sqlite3/crud.ts index dece9dd045..4460addfea 100644 --- a/packages/objectql/test/unit/schema/datasource/sqlite3/crud.ts +++ b/packages/objectql/test/unit/schema/datasource/sqlite3/crud.ts @@ -74,7 +74,7 @@ describe('crud for schema with splite3 datasource', () => { objects: { test: { label: 'Sqlite3 Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', diff --git a/packages/objectql/test/unit/schema/datasource/sqlite3/filters.ts b/packages/objectql/test/unit/schema/datasource/sqlite3/filters.ts index 16fc660f13..09494c8110 100644 --- a/packages/objectql/test/unit/schema/datasource/sqlite3/filters.ts +++ b/packages/objectql/test/unit/schema/datasource/sqlite3/filters.ts @@ -203,7 +203,7 @@ describe('filters for sqlite3 database', () => { objects: { test: { label: 'Sqlite3 Schema', - tableName: tableName, + table_name: tableName, fields: { id: { label: '主键', From 2390ddfe7e1464520562cfe86794193645856059 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Wed, 21 Aug 2019 16:32:33 +0800 Subject: [PATCH 099/154] Update History.md --- packages/objectql/History.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/objectql/History.md b/packages/objectql/History.md index c6630db42b..6bf8ea2e3a 100644 --- a/packages/objectql/History.md +++ b/packages/objectql/History.md @@ -1,3 +1,7 @@ +1.0.7 / 2019-08-21 +=================== + + * object 禁止重名; object.tableName 属性调整为 table_name 1.0.5 / 2019-08-17 =================== From 2449b74a0f28ad8257afd1392af8625af2018f0b Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Thu, 22 Aug 2019 16:19:29 +0800 Subject: [PATCH 100/154] @steedos/objectql@1.0.8 --- packages/objectql/package.json | 4 ++-- packages/objectql/src/util/index.ts | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/objectql/package.json b/packages/objectql/package.json index eb824332e0..15aaf824c4 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.0.7", + "version": "1.0.8", "description": "", "main": "lib/index.js", "scripts": { @@ -20,7 +20,7 @@ "@salesforce/ts-types": "^1.1.1", "@steedos/filters": "^1.0.0", "@steedos/odata-v4-typeorm": "^0.0.24", - "@steedos/schemas": "^1.0.3", + "@steedos/schemas": "^1.0.4", "@steedos/standard-objects": "^1.0.4", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", diff --git a/packages/objectql/src/util/index.ts b/packages/objectql/src/util/index.ts index 0446985f5b..a1e0a5d641 100644 --- a/packages/objectql/src/util/index.ts +++ b/packages/objectql/src/util/index.ts @@ -49,9 +49,7 @@ function validateObject(json){ let validate = Validators['steedos-schema_object']; let objectName = json.name; if (!validate(JSON.parse(JSON.stringify(json)))) { - console.error(`对象${objectName}校验不通过: `, validate.errors); - console.error(`${objectName}: `, json); - return false; + throw new Error(`对象${objectName}校验不通过: ${JSON.stringify(validate.errors)}`); } return true; From cfe309f16b53d7bb309ee50cc9523046ea9648ea Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Fri, 23 Aug 2019 17:33:19 +0800 Subject: [PATCH 101/154] =?UTF-8?q?app=20=E5=AF=B9=E8=B1=A1=E6=96=B0?= =?UTF-8?q?=E5=A2=9Emobile=5Fobjects=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/steedos/creator/issues/1309 --- packages/objectql/src/types/app.ts | 13 +++++++- .../objectql/test/unit/app/mobile_objects.ts | 31 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 packages/objectql/test/unit/app/mobile_objects.ts diff --git a/packages/objectql/src/types/app.ts b/packages/objectql/src/types/app.ts index f16d7d454c..0658961f38 100644 --- a/packages/objectql/src/types/app.ts +++ b/packages/objectql/src/types/app.ts @@ -6,7 +6,8 @@ export type SteedosAppTypeConfig = { name: string, description: string, icon_slds: string, - objects: string[] + objects: string[], + mobile_objects?: string[] } export class SteedosAppType{ @@ -54,6 +55,14 @@ export class SteedosAppType{ public get is_creator(): boolean { return this._is_creator; } + + private _mobile_objects: string[]; + public get mobile_objects(): string[] { + return this._mobile_objects; + } + public set mobile_objects(value: string[]) { + this._mobile_objects = value; + } constructor(config: SteedosAppTypeConfig, datasource: SteedosDataSourceType){ this._datasource = datasource @@ -63,6 +72,7 @@ export class SteedosAppType{ this.description = config.description this.icon_slds = config.icon_slds this.objects = config.objects + this.mobile_objects = config.mobile_objects } toConfig(){ @@ -73,6 +83,7 @@ export class SteedosAppType{ config.icon_slds = this.icon_slds config.objects = this.objects config.is_creator = this.is_creator + config.mobile_objects = this.mobile_objects return config } diff --git a/packages/objectql/test/unit/app/mobile_objects.ts b/packages/objectql/test/unit/app/mobile_objects.ts new file mode 100644 index 0000000000..f6240208ec --- /dev/null +++ b/packages/objectql/test/unit/app/mobile_objects.ts @@ -0,0 +1,31 @@ +import { expect } from 'chai'; +import { SteedosSchema } from '../../../src'; +var _ =require("underscore") + +describe('Test App mobile_objects', () => { + it('App mobile_objects return true', async () => { + let mySchema = new SteedosSchema({ + datasources: { + mongo: { + driver: 'mongo', + url: 'mongodb://127.0.0.1/steedos', + apps: { + test: { + _id: "test", + name: "Test", + description: "Test", + icon_slds: "", + objects: ["test"], + mobile_objects: ["test"] + } + }, + } + } + }) + + mySchema.getDataSource("mongo").init(); + + let testApp = mySchema.getDataSource("mongo").getApp("test") + expect(_.isEmpty(testApp.toConfig().mobile_objects)).to.equal(false) + }); + }); \ No newline at end of file From 370a4020a5b1999071ad71793eaf6e8bd7a7d48c Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Fri, 23 Aug 2019 18:05:40 +0800 Subject: [PATCH 102/154] publish @steedos/objectql@1.0.9 --- packages/objectql/History.md | 4 ++++ packages/objectql/package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/objectql/History.md b/packages/objectql/History.md index 6bf8ea2e3a..babca5460b 100644 --- a/packages/objectql/History.md +++ b/packages/objectql/History.md @@ -1,3 +1,7 @@ +1.0.9 / 2019-08-21 +=================== + + * app 新增mobile_objects属性,用于指定在手机上显示应用的对象 1.0.7 / 2019-08-21 =================== diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 15aaf824c4..19762051db 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.0.8", + "version": "1.0.9", "description": "", "main": "lib/index.js", "scripts": { From 3c61843831ccd2d6976a100eba43dcca99588a4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Tue, 27 Aug 2019 11:55:53 +0800 Subject: [PATCH 103/154] Update spaces.object.yml --- packages/standard-objects/spaces.object.yml | 34 +++++---------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/packages/standard-objects/spaces.object.yml b/packages/standard-objects/spaces.object.yml index 942bece1af..f59700d006 100644 --- a/packages/standard-objects/spaces.object.yml +++ b/packages/standard-objects/spaces.object.yml @@ -11,7 +11,6 @@ fields: required: true searchable: true index: true - name: name admins: label: 管理员 type: lookup @@ -19,100 +18,83 @@ fields: index: true multiple: true is_wide: true - name: admins filterable: true avatar: - label: 浅色公司Logo + label: Logo type: avatar - name: avatar - avatar_dark: - label: 深色公司Logo + # avatar_dark: + # label: 深色公司Logo + # type: avatar + avatar_square: + label: 正方形Logo type: avatar - name: avatar_dark location: label: 地址 type: location system: gcj02 omit: true hidden: true - name: location apps: label: 启用应用 type: lookup reference_to: apps multiple: true hidden: true - name: apps filterable: true apps_paid: label: 已付费应用 type: '[text]' omit: true - name: apps_paid hostname: label: 绑定域名 - type: '[text]' + type: 'text' hidden: true - name: hostname is_paid: label: 已付费 type: boolean group: 账务 omit: true readonly: true - name: is_paid balance: label: 账户余额 type: number scale: 2 omit: true hidden: true - name: balance services: type: object blackbox: true omit: true hidden: true - name: services - is_deleted: - type: boolean - omit: true - hidden: true billing.remaining_months: type: number omit: true hidden: true - name: billing.remaining_months user_limit: label: 已购买用户数 type: number omit: true group: 账务 - name: user_limit start_date: label: 付费开始时间 type: datetime omit: true group: 账务 - name: start_date end_date: label: 付费截止时间 type: datetime omit: true group: 账务 - name: end_date modules: label: 模块 type: '[text]' omit: true hidden: true - name: modules enable_register: label: 允许新用户注册 type: boolean defaultValue: false - hidden: true - name: enable_register + hidden: false owner: label: 所有者 type: lookup From 7cecc4c57faea89fe4a59bb9e00d5bbc83c1bcd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Tue, 27 Aug 2019 11:57:42 +0800 Subject: [PATCH 104/154] Update package.json --- packages/standard-objects/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 1d7d7ccbb4..fef611a100 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.0.6", + "version": "1.0.7", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", From 144b9dc10786bcaa880f00d8b1803965cb233248 Mon Sep 17 00:00:00 2001 From: chenzhipei Date: Tue, 27 Aug 2019 15:19:42 +0800 Subject: [PATCH 105/154] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E7=A8=8B?= =?UTF-8?q?=E8=A7=86=E5=9B=BEfilters?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/standard-objects/events.object.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/standard-objects/events.object.yml b/packages/standard-objects/events.object.yml index f12d1888b8..c8b87d955a 100644 --- a/packages/standard-objects/events.object.yml +++ b/packages/standard-objects/events.object.yml @@ -83,6 +83,14 @@ list_views: type: calendar label: 日历视图 filter_scope: space + filters: + - - owner + - = + - '{userId}' + - or + - - assignees + - = + - '{userId}' options: startDateExpr: start endDateExpr: end @@ -99,6 +107,14 @@ list_views: all: label: 全部 filter_scope: space + filters: + - - owner + - = + - '{userId}' + - or + - - assignees + - = + - '{userId}' columns: - name - start @@ -112,7 +128,7 @@ permission_set: allowEdit: true allowRead: true modifyAllRecords: false - viewAllRecords: false + viewAllRecords: true admin: allowCreate: true allowDelete: true From 31e7ba422c8989aefa3ef7cd76f713545db32039 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Wed, 28 Aug 2019 11:05:27 +0800 Subject: [PATCH 106/154] @steedos/objectql@1.0.10 --- packages/objectql/History.md | 4 ++ packages/objectql/package.json | 2 +- packages/objectql/src/graphql/index.ts | 79 +++++++++++--------------- 3 files changed, 37 insertions(+), 48 deletions(-) diff --git a/packages/objectql/History.md b/packages/objectql/History.md index babca5460b..54402dd275 100644 --- a/packages/objectql/History.md +++ b/packages/objectql/History.md @@ -1,3 +1,7 @@ +1.0.10 / 2019-08-28 +=================== + + * [graphql api 的url 取消 datasource_name 部分](https://github.com/steedos/object-server/issues/125) 1.0.9 / 2019-08-21 =================== diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 19762051db..0848bbbaac 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.0.9", + "version": "1.0.10", "description": "", "main": "lib/index.js", "scripts": { diff --git a/packages/objectql/src/graphql/index.ts b/packages/objectql/src/graphql/index.ts index d1a12c384f..e012d1c597 100644 --- a/packages/objectql/src/graphql/index.ts +++ b/packages/objectql/src/graphql/index.ts @@ -12,8 +12,6 @@ import { var _ = require("underscore"); import { ObjectId } from 'mongodb'; var GraphQLJSON = require('graphql-type-json'); -import express = require('express'); -import graphqlHTTP = require('express-graphql'); /** Maps basic creator field types to basic GraphQL types */ const BASIC_TYPE_MAPPING = { @@ -32,7 +30,7 @@ const BASIC_TYPE_MAPPING = { const knownTypes = {}; -function convertFields(steedosSchema: SteedosSchema, fields, knownTypes, datasourceName) { +function convertFields(steedosSchema: SteedosSchema, fields, knownTypes) { let objTypeFields = {}; objTypeFields["_id"] = { type: GraphQLString @@ -53,14 +51,12 @@ function convertFields(steedosSchema: SteedosSchema, fields, knownTypes, datasou } else if ((v.type == 'lookup' || v.type == 'master_detail') && v.reference_to && _.isString(v.reference_to)) { - let reference_to = v.reference_to; - let objectName = reference_to.indexOf('.') > -1 ? reference_to : `${datasourceName}.${reference_to}`; + let objectName = v.reference_to; let corName = correctName(objectName); - if (reference_to.indexOf('.') > -1 && !knownTypes[corName]) { - let refDatasourceName = reference_to.split('.')[0] - let object = steedosSchema.getObject(reference_to); + if (!knownTypes[corName]) { + let object = steedosSchema.getObject(objectName); if (object) { - knownTypes[corName] = buildGraphQLObjectType(object, steedosSchema, knownTypes, datasourceName, refDatasourceName) + knownTypes[corName] = buildGraphQLObjectType(object, steedosSchema, knownTypes) } } @@ -106,49 +102,47 @@ function correctName(name: string) { return name.replace(/\./g, '_'); } -function buildGraphQLObjectType(obj, steedosSchema, knownTypes, thisDatasourceName, refDatasourceName?) { +function buildGraphQLObjectType(obj, steedosSchema, knownTypes) { let corName = correctName(obj.name); - if (refDatasourceName && refDatasourceName != thisDatasourceName) { - corName = correctName(refDatasourceName + '.' + obj.name); - } return new GraphQLObjectType({ name: corName, fields: function () { - return convertFields(steedosSchema, obj.fields, knownTypes, thisDatasourceName); + return convertFields(steedosSchema, obj.fields, knownTypes); } }) } -export function buildGraphQLSchema(steedosSchema: SteedosSchema, datasource: SteedosDataSourceType): GraphQLSchema { +export function buildGraphQLSchema(steedosSchema: SteedosSchema, datasource?: SteedosDataSourceType): GraphQLSchema { let rootQueryfields = {}; - let datasourceName = datasource.name; - - _.each(datasource.getObjects(), function (obj, object_name) { + _.each(steedosSchema.getDataSources(), function (datasource) { + _.each(datasource.getObjects(), function (obj, object_name) { - if (!obj.name) { - return; - } + if (!obj.name) { + return; + } - let corName = correctName(obj.name); - let objName: string = correctName(datasourceName + '.' + obj.name); + let corName = correctName(obj.name); + let objName: string = correctName(obj.name); - if (!knownTypes[objName]) { - knownTypes[objName] = buildGraphQLObjectType(obj, steedosSchema, knownTypes, datasourceName) - } + if (!knownTypes[objName]) { + knownTypes[objName] = buildGraphQLObjectType(obj, steedosSchema, knownTypes) + } - rootQueryfields[corName] = { - type: new GraphQLList(knownTypes[objName]), - args: { 'fields': { type: new GraphQLList(GraphQLString) || GraphQLString }, 'filters': { type: GraphQLJSON }, 'top': { type: GraphQLInt }, 'skip': { type: GraphQLInt }, 'sort': { type: GraphQLString } }, - resolve: async function (source, args, context, info) { - let object = steedosSchema.getObject(`${datasourceName}.${obj.name}`); - let userSession = context ? context.user : null; - console.log('context.user: ', userSession); - return object.find(args, userSession); + rootQueryfields[corName] = { + type: new GraphQLList(knownTypes[objName]), + args: { 'fields': { type: new GraphQLList(GraphQLString) || GraphQLString }, 'filters': { type: GraphQLJSON }, 'top': { type: GraphQLInt }, 'skip': { type: GraphQLInt }, 'sort': { type: GraphQLString } }, + resolve: async function (source, args, context, info) { + let object = steedosSchema.getObject(`${obj.name}`); + let userSession = context ? context.user : null; + console.log('context.user: ', userSession); + return object.find(args, userSession); + } } - } + }) }) + let rootMutationfields = {}; _.each(rootQueryfields, function (type, objName) { rootMutationfields[objName + '_INSERT_ONE'] = { @@ -158,7 +152,7 @@ export function buildGraphQLSchema(steedosSchema: SteedosSchema, datasource: Ste console.log('args: ', args); var data = args['data']; data._id = data._id || new ObjectId().toHexString(); - let object = steedosSchema.getObject(`${datasourceName}.${type.name}`); + let object = steedosSchema.getObject(`${type.name}`); let userSession = context ? context.user : null; return object.insert(data, userSession); } @@ -170,7 +164,7 @@ export function buildGraphQLSchema(steedosSchema: SteedosSchema, datasource: Ste console.log('args: ', args); let data = args['data']; let _id = args['_id']; - let object = steedosSchema.getObject(`${datasourceName}.${type.name}`); + let object = steedosSchema.getObject(`${type.name}`); let userSession = context ? context.user : null; return object.update(_id, data, userSession); } @@ -181,7 +175,7 @@ export function buildGraphQLSchema(steedosSchema: SteedosSchema, datasource: Ste resolve: async function (source, args, context, info) { console.log('args: ', args); let _id = args['_id']; - let object = steedosSchema.getObject(`${datasourceName}.${type.name}`); + let object = steedosSchema.getObject(`${type.name}`); let userSession = context ? context.user : null; return object.delete(_id, userSession); } @@ -200,13 +194,4 @@ export function buildGraphQLSchema(steedosSchema: SteedosSchema, datasource: Ste }; return new GraphQLSchema(schemaConfig); -} - -export function getGraphQLRoutes(datasource: SteedosDataSourceType) { - let router = express.Router(); - router.use(`/${datasource.name}`, graphqlHTTP({ - schema: datasource.buildGraphQLSchema(), - graphiql: true - })) - return router; } \ No newline at end of file From 3164a0f6ecd443d5d2bb2f62025a8b3206e5062e Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Wed, 28 Aug 2019 11:07:26 +0800 Subject: [PATCH 107/154] @steedos/core@1.3.19 --- packages/core/History.md | 4 ++++ packages/core/package.json | 4 ++-- packages/core/src/init/core.ts | 11 +++++------ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/core/History.md b/packages/core/History.md index 514608045b..ffd6849efa 100644 --- a/packages/core/History.md +++ b/packages/core/History.md @@ -1,3 +1,7 @@ +1.3.19 / 2019-08-20 +=================== + + * [graphql api 的url 取消 datasource_name 部分](https://github.com/steedos/object-server/issues/125) 1.3.18 / 2019-08-20 =================== diff --git a/packages/core/package.json b/packages/core/package.json index 24f99700b1..fca97c2f7e 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.18", + "version": "1.3.19", "description": "", "main": "lib/index.js", "scripts": { @@ -19,7 +19,7 @@ "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", "@steedos/auth": "^1.1.5", - "@steedos/objectql": "^1.0.6", + "@steedos/objectql": "^1.0.10", "@steedos/standard-objects": "^1.0.4", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", diff --git a/packages/core/src/init/core.ts b/packages/core/src/init/core.ts index fa63e70619..61dd6ea072 100644 --- a/packages/core/src/init/core.ts +++ b/packages/core/src/init/core.ts @@ -103,12 +103,11 @@ export class Core { } }); - _.each(Creator.steedosSchema.getDataSources(), function (datasource: any, name) { - return router.use("/" + name, graphqlHTTP({ - schema: datasource.buildGraphQLSchema(), - graphiql: true - })); - }); + + router.use("/", graphqlHTTP({ + schema: objectql.buildGraphQLSchema(objectql.getSteedosSchema()), + graphiql: true + })); app.use('/graphql', router); return WebApp.connectHandlers.use(app); } From eb45c65774d76c642e5851019dba79862a160ebe Mon Sep 17 00:00:00 2001 From: chenzhipei Date: Wed, 28 Aug 2019 11:13:25 +0800 Subject: [PATCH 108/154] update @steedos/standard-objects: 1.0.8 --- packages/standard-objects/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index fef611a100..a35de5ccbe 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.0.7", + "version": "1.0.8", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", From 07e0de6dc1b8b138ad37c286a9228f7d83f1e5af Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Thu, 29 Aug 2019 11:24:18 +0800 Subject: [PATCH 109/154] =?UTF-8?q?=E5=BD=93=E4=BC=A0=E5=85=A5authorizatio?= =?UTF-8?q?n=E6=97=B6=E4=BB=A5authorization=E4=B8=BA=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/auth/src/session.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/auth/src/session.ts b/packages/auth/src/session.ts index ff80a3d654..562d4e1d91 100644 --- a/packages/auth/src/session.ts +++ b/packages/auth/src/session.ts @@ -231,12 +231,8 @@ export async function auth(request: Request, response: Response): Promise { || request.headers['x-space-id']; if (authorization && authorization.split(' ')[0] == 'Bearer') { let spaceAuthToken = authorization.split(' ')[1]; - if (!spaceId) { - spaceId = spaceAuthToken.split(',')[0]; - } - if (!authToken) { - authToken = spaceAuthToken.split(',')[1]; - } + spaceId = spaceAuthToken.split(',')[0]; + authToken = spaceAuthToken.split(',')[1]; } if (spaceToken) { From cd1b711e6cf57032b5a673b7726c83497b34fa93 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Thu, 29 Aug 2019 11:25:36 +0800 Subject: [PATCH 110/154] @steedos/auth@1.1.6 --- packages/auth/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/auth/package.json b/packages/auth/package.json index 9d98323e53..4d5cd471bc 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.1.5", + "version": "1.1.6", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", From 9be3fb42000ec3cf7b062a3a1e9ca6acfb39b374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=B7=E4=BA=AE=E8=BE=89?= Date: Thu, 29 Aug 2019 13:42:23 +0800 Subject: [PATCH 111/154] =?UTF-8?q?authToken=E4=B8=AD=E7=9A=84company?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E6=8C=87=E5=90=91company=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E5=86=8D=E6=8C=87=E5=90=91org=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=20#128?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/api_auth.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/api_auth.md b/docs/api_auth.md index b4343de253..33487c5ceb 100644 --- a/docs/api_auth.md +++ b/docs/api_auth.md @@ -47,11 +47,13 @@ spaces: [space] # 数组,用户所属的所有工作区 company: _id: i6thCRrKWYmdjxpzt # 用户所属主单位 name: Apple China # 用户所属主单位名称 + organization: xxx # 用户所属主单位关联组织id companies: [company] # 数组,用户所属的所有单位 organization: _id: i6thCRrKWYmdjxpzt name: Sales # 用户所属部门 fullname: Apple China/Sales # 用户所属部门的全称 + company_id: xxx # 用户所属部门关联单位id organizations: [organization] # 数组,用户所属的所有部门 ``` @@ -85,4 +87,4 @@ POST 'http://localhost:5000/api/v4/users/validate' Authorization: Bearer i6thCRrKWYmdjxpzt,392mkylUmFyNTRLR3aSTbsyM287On8bTULh-GDO1sH_ ``` ### 返回结果 -如果当前用户已登录,则返回userContext。 \ No newline at end of file +如果当前用户已登录,则返回userContext。 From 9d6b6101b2d7be41f6b035ba8d9f098d213e4a32 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Fri, 30 Aug 2019 17:26:58 +0800 Subject: [PATCH 112/154] =?UTF-8?q?#132=20=E8=87=AA=E5=8A=A8=E5=8A=A0?= =?UTF-8?q?=E8=BD=BDplugins=20=E6=94=AF=E6=8C=81=20=E5=86=85=E7=BD=AE?= =?UTF-8?q?=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/init/init-config.json | 3 +++ packages/core/src/init/plugins.ts | 5 ++++- packages/core/tsconfig.json | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 packages/core/src/init/init-config.json diff --git a/packages/core/src/init/init-config.json b/packages/core/src/init/init-config.json new file mode 100644 index 0000000000..b4fabcb80b --- /dev/null +++ b/packages/core/src/init/init-config.json @@ -0,0 +1,3 @@ +{ + "built_in_plugins": ["@steedos/steedos-plugin-workflow"] +} \ No newline at end of file diff --git a/packages/core/src/init/plugins.ts b/packages/core/src/init/plugins.ts index 05e8b5e6ef..9ebe010e90 100644 --- a/packages/core/src/init/plugins.ts +++ b/packages/core/src/init/plugins.ts @@ -7,13 +7,16 @@ const objectql = require('@steedos/objectql') const util = require('../util/index') import {LoadFiles} from './loadFiles' const ConfigName = 'plugin.config.yml' +import * as initConfig from './init-config.json' export class Plugins { static init() { const pluginContext = { app, settings: Meteor.settings }; - const plugins = Meteor.settings.plugins + const builtInPlugins= initConfig.built_in_plugins + const settingsPlugins = Meteor.settings.plugins + let plugins = _.union(builtInPlugins, settingsPlugins) if (_.isArray(plugins)) { _.each(plugins, (pluginName) => { try { diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 0a678b9d95..ff157902eb 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -6,7 +6,8 @@ "noUnusedLocals": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, - "sourceMap": true + "sourceMap": true, + "resolveJsonModule": true }, "include": [ "./src/**/*" From ca1d61a86952b3f34156b4fa7cc9475e356caf16 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Sat, 31 Aug 2019 15:42:31 +0800 Subject: [PATCH 113/154] @steedos/standard-objects@1.0.9 --- packages/standard-objects/History.md | 4 ++++ packages/standard-objects/package.json | 2 +- packages/standard-objects/workflow/flows.object.yml | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/standard-objects/History.md b/packages/standard-objects/History.md index 724f1b0769..db016620c9 100644 --- a/packages/standard-objects/History.md +++ b/packages/standard-objects/History.md @@ -1,3 +1,7 @@ +1.0.9 / 2019-08-31 +=================== + + * 流程可上传附件用作正文模板,[审批王需实现每个流程可配置相应的正文模板功能](https://github.com/steedos/workflow/issues/2045) 1.0.4 / 2019-08-19 =================== diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index a35de5ccbe..22a177445f 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.0.8", + "version": "1.0.9", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/standard-objects/workflow/flows.object.yml b/packages/standard-objects/workflow/flows.object.yml index b3333da3ef..d6085ab47b 100644 --- a/packages/standard-objects/workflow/flows.object.yml +++ b/packages/standard-objects/workflow/flows.object.yml @@ -1,6 +1,7 @@ name: flows icon: timesheet label: 流程 +enable_files: true fields: name: type: text From c5409d24ca20089c777a2134a31a946725b5c3a5 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Sat, 31 Aug 2019 19:00:07 +0800 Subject: [PATCH 114/154] =?UTF-8?q?fix=20bug:=E8=87=AA=E5=8A=A8=E5=8A=A0?= =?UTF-8?q?=E8=BD=BDplugins=20=E6=94=AF=E6=8C=81=20=E5=86=85=E7=BD=AE?= =?UTF-8?q?=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/init/plugins.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/init/plugins.ts b/packages/core/src/init/plugins.ts index 9ebe010e90..c3e4d18a74 100644 --- a/packages/core/src/init/plugins.ts +++ b/packages/core/src/init/plugins.ts @@ -14,8 +14,8 @@ export class Plugins { app, settings: Meteor.settings }; - const builtInPlugins= initConfig.built_in_plugins - const settingsPlugins = Meteor.settings.plugins + const builtInPlugins= initConfig.built_in_plugins || []; + const settingsPlugins = Meteor.settings.plugins || []; let plugins = _.union(builtInPlugins, settingsPlugins) if (_.isArray(plugins)) { _.each(plugins, (pluginName) => { From 012499c7ac29772f70957969c6551f6280e93358 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Sat, 31 Aug 2019 19:04:46 +0800 Subject: [PATCH 115/154] =?UTF-8?q?=E6=95=B4=E7=90=86base=20object?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/steedos/creator/issues/1317 --- .../base.audit.trigger.todo.js | 24 - .../base.client.trigger.todo.js | 13 - packages/standard-objects/base.object.js | 409 ++++++++++++++++++ packages/standard-objects/base.object.yml | 190 +------- .../base.sharing.trigger.todo.js | 110 ----- 5 files changed, 432 insertions(+), 314 deletions(-) delete mode 100644 packages/standard-objects/base.audit.trigger.todo.js delete mode 100644 packages/standard-objects/base.client.trigger.todo.js create mode 100644 packages/standard-objects/base.object.js delete mode 100644 packages/standard-objects/base.sharing.trigger.todo.js diff --git a/packages/standard-objects/base.audit.trigger.todo.js b/packages/standard-objects/base.audit.trigger.todo.js deleted file mode 100644 index 76b7c371f9..0000000000 --- a/packages/standard-objects/base.audit.trigger.todo.js +++ /dev/null @@ -1,24 +0,0 @@ -//TODO 处理 -module.exports = { - - name: 'baseAuditTrigger', - - listenTo: 'base', - - afterInsert: function (userId, doc, fieldNames, modifier, options) { - var obj, object_name, ref; - object_name = this.object_name; - obj = Creator.getObject(object_name); - if (obj.enable_audit) { - return (ref = Creator.AuditRecords) != null ? ref.add('update', userId, this.object_name, doc, this.previous, modifier) : void 0; - } - }, - afterUpdate: function (userId, doc) { - var obj, object_name, ref; - object_name = this.object_name; - obj = Creator.getObject(object_name); - if (obj.enable_audit) { - return (ref = Creator.AuditRecords) != null ? ref.add('insert', userId, this.object_name, doc) : void 0; - } - } -} \ No newline at end of file diff --git a/packages/standard-objects/base.client.trigger.todo.js b/packages/standard-objects/base.client.trigger.todo.js deleted file mode 100644 index 04ba5f57bb..0000000000 --- a/packages/standard-objects/base.client.trigger.todo.js +++ /dev/null @@ -1,13 +0,0 @@ -//TODO client trigger -module.exports = { - - name: 'baseClientTrigger', - - listenTo: 'base', - - on: 'client', - - beforeInsert: function(userId, doc) { - return doc.space = Session.get("spaceId"); - } - } \ No newline at end of file diff --git a/packages/standard-objects/base.object.js b/packages/standard-objects/base.object.js new file mode 100644 index 0000000000..f1210f318d --- /dev/null +++ b/packages/standard-objects/base.object.js @@ -0,0 +1,409 @@ +Creator.baseObject.actions = { + standard_query: { + label: "查找", + visible: true, + on: "list", + todo: "standard_query" + }, + standard_new: { + label: "新建", + visible: function () { + var permissions; + permissions = Creator.getPermissions(); + if (permissions) { + return permissions["allowCreate"]; + } + }, + on: "list", + todo: "standard_new" + }, + standard_open_view: { + label: "查看", + visible: false, + on: "record", + only_list_item: true, + todo: "standard_open_view" + }, + standard_edit: { + label: "编辑", + sort: 0, + visible: function (object_name, record_id, record_permissions) { + var perms, record; + perms = {}; + if (record_permissions) { + perms = record_permissions; + } else { + record = Creator.getObjectRecord(object_name, record_id); + record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId()); + if (record_permissions) { + perms = record_permissions; + } + } + return perms["allowEdit"]; + }, + on: "record", + todo: "standard_edit" + }, + standard_delete: { + label: "删除", + visible: function (object_name, record_id, record_permissions) { + var perms, record; + perms = {}; + if (record_permissions) { + perms = record_permissions; + } else { + record = Creator.getObjectRecord(object_name, record_id); + record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId()); + if (record_permissions) { + perms = record_permissions; + } + } + return perms["allowDelete"]; + }, + on: "record_more", + todo: "standard_delete" + }, + standard_approve: { + label: "发起审批", + visible: function (object_name, record_id, record_permissions) { + var object_workflow, record; + if (record_permissions && !record_permissions["allowEdit"]) { + return false; + } + record = Creator.getObjectRecord(object_name, record_id); + record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId()); + if (record_permissions && !record_permissions["allowEdit"]) { + return false; + } + object_workflow = _.find(Creator.object_workflows, function (ow) { + return ow.object_name === object_name; + }); + if (!object_workflow) { + return false; + } + if (record && record.instances && record.instances.length > 0) { + return false; + } + return true; + }, + on: "record", + todo: function () { + return Modal.show('initiate_approval', { + object_name: this.object_name, + record_id: this.record_id + }); + } + }, + standard_view_instance: { + label: "查看审批单", + visible: function (object_name, record_id, record_permissions) { + var record; + record = Creator.getObjectRecord(object_name, record_id); + if (record && !_.isEmpty(record.instances)) { + return true; + } + return false; + }, + on: "record", + todo: function () { + var data, instanceId, uobj, url; + instanceId = this.record.instances[0]._id; + if (!instanceId) { + console.error('instanceId not exists'); + return; + } + uobj = {}; + uobj['X-User-Id'] = Meteor.userId(); + uobj['X-Auth-Token'] = Accounts._storedLoginToken(); + data = { + object_name: this.object_name, + record_id: this.record_id, + space_id: Session.get("spaceId") + }; + url = Meteor.absoluteUrl() + ("api/workflow/view/" + instanceId + "?") + $.param(uobj); + data = JSON.stringify(data); + $(document.body).addClass('loading'); + return $.ajax({ + url: url, + type: 'POST', + async: true, + data: data, + dataType: 'json', + processData: false, + contentType: 'application/json', + success: function (responseText, status) { + $(document.body).removeClass('loading'); + if (responseText.errors) { + responseText.errors.forEach(function (e) { + toastr.error(e.errorMessage); + }); + return; + } else if (responseText.redirect_url) { + Steedos.openWindow(responseText.redirect_url); + } + }, + error: function (xhr, msg, ex) { + $(document.body).removeClass('loading'); + toastr.error(msg); + } + }); + } + } +} + +Creator.baseObject.triggers = { + "before.insert.server.default": { + on: "server", + when: "before.insert", + todo: function (userId, doc) { + doc.created = new Date(); + doc.modified = new Date(); + if (userId) { + if (!doc.owner) { + doc.owner = userId; + } + if (doc.owner === '{userId}') { + doc.owner = userId; + } + doc.created_by = userId; + return doc.modified_by = userId; + } + } + }, + "before.update.server.default": { + on: "server", + when: "before.update", + todo: function (userId, doc, fieldNames, modifier, options) { + modifier.$set = modifier.$set || {}; + modifier.$set.modified = new Date(); + if (userId) { + return modifier.$set.modified_by = userId; + } + } + }, + "before.insert.client.default": { + on: "client", + when: "before.insert", + todo: function (userId, doc) { + return doc.space = Session.get("spaceId"); + } + }, + "after.insert.server.sharing": { + on: "server", + when: "after.insert", + todo: function (userId, doc, fieldNames, modifier, options) { + var collection, obj, object_name, psCollection, psRecords, selector; + object_name = this.object_name; + obj = Creator.getObject(object_name); + if (obj.enable_share) { + collection = Creator.getCollection(object_name); + psCollection = Creator.getCollection("permission_shares"); + selector = { + space: doc.space, + object_name: object_name + }; + psRecords = psCollection.find(selector, { + fields: { + _id: 1, + filters: 1, + organizations: 1, + users: 1 + } + }); + return psRecords.forEach(function (ps) { + var count, filters, push; + filters = Creator.formatFiltersToMongo(ps.filters, { + extend: false + }); + selector = { + space: doc.space, + _id: doc._id, + $and: filters + }; + count = collection.find(selector).count(); + if (count) { + push = { + sharing: { + "u": ps.users, + "o": ps.organizations, + "r": ps._id + } + }; + return collection.direct.update({ + _id: doc._id + }, { + $push: push + }); + } + }); + } + } + }, + "after.update.server.sharing": { + on: "server", + when: "after.update", + todo: function (userId, doc, fieldNames, modifier, options) { + var collection, obj, object_name, psCollection, psRecords, selector; + object_name = this.object_name; + obj = Creator.getObject(object_name); + if (obj.enable_share) { + collection = Creator.getCollection(object_name); + psCollection = Creator.getCollection("permission_shares"); + selector = { + space: doc.space, + object_name: object_name + }; + psRecords = psCollection.find(selector, { + fields: { + _id: 1, + filters: 1, + organizations: 1, + users: 1 + } + }); + collection.direct.update({ + _id: doc._id + }, { + $unset: { + "sharing": 1 + } + }); + return psRecords.forEach(function (ps) { + var count, filters, push; + filters = Creator.formatFiltersToMongo(ps.filters, { + extend: false + }); + selector = { + space: doc.space, + _id: doc._id, + $and: filters + }; + count = collection.find(selector).count(); + if (count) { + push = { + sharing: { + "u": ps.users, + "o": ps.organizations, + "r": ps._id + } + }; + return collection.direct.update({ + _id: doc._id + }, { + $push: push + }); + } + }); + } + } + }, + "after.update.server.audit": { + "on": "server", + when: "after.update", + todo: function (userId, doc, fieldNames, modifier, options) { + var obj, object_name, ref; + object_name = this.object_name; + obj = Creator.getObject(object_name); + if (obj.enable_audit) { + return (ref = Creator.AuditRecords) != null ? ref.add('update', userId, this.object_name, doc, this.previous, modifier) : void 0; + } + } + }, + "after.insert.server.audit": { + "on": "server", + when: "after.insert", + todo: function (userId, doc) { + var obj, object_name, ref; + object_name = this.object_name; + obj = Creator.getObject(object_name); + if (obj.enable_audit) { + return (ref = Creator.AuditRecords) != null ? ref.add('insert', userId, this.object_name, doc) : void 0; + } + } + }, + "after.insert.server.objectwebhooks": { + "on": "server", + when: "after.insert", + todo: function (userId, doc) { + return Creator.objectWebhooksPreSend(userId, doc, this.object_name, 'create'); + } + }, + "after.update.server.objectwebhooks": { + "on": "server", + when: "after.update", + todo: function (userId, doc, fieldNames, modifier, options) { + return Creator.objectWebhooksPreSend(userId, doc, this.object_name, 'update'); + } + }, + "after.delete.server.objectwebhooks": { + "on": "server", + when: "after.remove", + todo: function (userId, doc) { + return Creator.objectWebhooksPreSend(userId, doc, this.object_name, 'delete'); + } + } +} + +if (Meteor.isServer) { + Creator.objectWebhooksPreSend = function (userId, doc, object_name, action) { + var actionUserInfo, obj, owCollection, redirectUrl; + if (!ObjectWebhooksQueue) { + console.error('not found ObjectWebhooksQueue'); + return; + } + owCollection = Creator.getCollection('object_webhooks'); + if (!owCollection) { + console.error('not found collection object_webhooks'); + return; + } + obj = Creator.getObject(object_name); + actionUserInfo = Creator.getCollection('users').findOne(userId, { + fields: { + name: 1 + } + }); + redirectUrl = Steedos.absoluteUrl(Creator.getObjectUrl(object_name, doc._id, object_name)); + owCollection.find({ + object_name: object_name, + active: true, + events: action + }).forEach(function (oh) { + var data; + data = {}; + if (_.isEmpty(oh.fields)) { + data = doc; + } else { + _.each(oh.fields, function (fieldName) { + var objField, refCollection, refFilterFields, refNameFieldKey, refObj, refRecord; + objField = obj.fields[fieldName]; + if (objField.type === 'lookup' && _.isString(objField.reference_to) && !objField.multiple) { + refCollection = Creator.getCollection(objField.reference_to); + refObj = Creator.getObject(objField.reference_to); + if (refCollection && refObj) { + refNameFieldKey = refObj.NAME_FIELD_KEY; + refFilterFields = {}; + refFilterFields[refNameFieldKey] = 1; + refRecord = refCollection.findOne(doc[fieldName], refFilterFields); + if (refRecord) { + return data[fieldName] = refRecord[refNameFieldKey]; + } + } + } else { + return data[fieldName] = doc[fieldName]; + } + }); + } + return ObjectWebhooksQueue.send({ + data: data, + payload_url: oh.payload_url, + content_type: oh.content_type, + action: action, + actionUserInfo: actionUserInfo, + objectName: object_name, + objectDisplayName: obj.label, + nameFieldKey: obj.NAME_FIELD_KEY, + redirectUrl: redirectUrl + }); + }); + }; +} \ No newline at end of file diff --git a/packages/standard-objects/base.object.yml b/packages/standard-objects/base.object.yml index dd417eaf3f..389a241a4f 100644 --- a/packages/standard-objects/base.object.yml +++ b/packages/standard-objects/base.object.yml @@ -6,7 +6,7 @@ fields: reference_to: users sortable: true index: true - defaultValue: "{userId}" + defaultValue: '{userId}' omit: true hidden: true space: @@ -15,7 +15,7 @@ fields: reference_to: spaces index: true hidden: true - defaultValue: "{spaceId}" + defaultValue: '{spaceId}' created: type: datetime label: 创建时间 @@ -94,12 +94,12 @@ fields: hidden: true sharing.$.u: label: 授权用户 - type: "[text]" + type: '[text]' omit: true hidden: true sharing.$.o: label: 授权组织 - type: "[text]" + type: '[text]' omit: true hidden: true sharing.$.r: @@ -124,30 +124,30 @@ fields: sortable: true index: true is_company_only: true - defaultValue: !!js/function | - function(){ - if(Meteor.isClient){ - return Session.get("user_company_id") - } - } + defaultValue: ! |- + function () { + if (Meteor.isClient) { + return Session.get("user_company_id"); + } + } omit: true hidden: true instance_state: label: 审批状态 type: select options: - - label: 草稿 - value: draft - - label: 进行中 - value: pending - - label: 已完成 - value: completed - - label: 已核准 - value: approved - - label: 已驳回 - value: rejected - - label: 已取消 - value: terminated + - label: 草稿 + value: draft + - label: 进行中 + value: pending + - label: 已完成 + value: completed + - label: 已核准 + value: approved + - label: 已驳回 + value: rejected + - label: 已取消 + value: terminated omit: true hidden: true permission_set: @@ -170,148 +170,4 @@ permission_set: allowEdit: true allowRead: true modifyAllRecords: true - viewAllRecords: true -actions: - standard_query: - label: 查找 - visible: true - 'on': list - todo: standard_query - standard_new: - label: 新建 - 'on': list - todo: standard_new - visible: !!js/function | - function(){ - var permissions = Creator.getPermissions(); - if (permissions) { - return permissions["allowCreate"]; - } - } - standard_edit: - label: 编辑 - sort: 0 - 'on': record - todo: standard_edit - visible: !!js/function | - function(object_name, record_id, record_permissions) { - var perms, record; - perms = {}; - if (record_permissions) { - perms = record_permissions; - } else { - record = Creator.getObjectRecord(object_name, record_id); - record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId()); - if (record_permissions) { - perms = record_permissions; - } - } - return perms["allowEdit"]; - } - standard_delete: - label: 删除 - 'on': record_more - todo: standard_delete - visible: !!js/function | - function(object_name, record_id, record_permissions) { - var perms, record; - perms = {}; - if (record_permissions) { - perms = record_permissions; - } else { - record = Creator.getObjectRecord(object_name, record_id); - record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId()); - if (record_permissions) { - perms = record_permissions; - } - } - return perms["allowDelete"]; - } - standard_approve: - label: 发起审批 - 'on': record - visible: !!js/function | - function(object_name, record_id, record_permissions) { - var object_workflow, record; - if (record_permissions && !record_permissions["allowEdit"]) { - return false; - } - record = Creator.getObjectRecord(object_name, record_id); - record_permissions = Creator.getRecordPermissions(object_name, record, Meteor.userId()); - if (record_permissions && !record_permissions["allowEdit"]) { - return false; - } - object_workflow = _.find(Creator.object_workflows, function(ow) { - return ow.object_name === object_name; - }); - if (!object_workflow) { - return false; - } - if (record && record.instances && record.instances.length > 0) { - return false; - } - return false; - } - todo: !!js/function | - function() { - return Modal.show('initiate_approval', { - object_name: this.object_name, - record_id: this.record_id - }); - } - standard_view_instance: - label: 查看审批单 - 'on': record - visible: !!js/function | - function(object_name, record_id, record_permissions) { - var record; - record = Creator.getObjectRecord(object_name, record_id); - if (record && !_.isEmpty(record.instances)) { - return true; - } - return false; - } - todo: !!js/function | - function() { - var data, instanceId, uobj, url; - instanceId = this.record.instances[0]._id; - if (!instanceId) { - console.error('instanceId not exists'); - return; - } - uobj = {}; - uobj['X-User-Id'] = Meteor.userId(); - uobj['X-Auth-Token'] = Accounts._storedLoginToken(); - data = { - object_name: this.object_name, - record_id: this.record_id, - space_id: Session.get("spaceId") - }; - url = Meteor.absoluteUrl() + ("api/workflow/view/" + instanceId + "?") + $.param(uobj); - data = JSON.stringify(data); - $(document.body).addClass('loading'); - return $.ajax({ - url: url, - type: 'POST', - async: true, - data: data, - dataType: 'json', - processData: false, - contentType: 'application/json', - success: function(responseText, status) { - $(document.body).removeClass('loading'); - if (responseText.errors) { - responseText.errors.forEach(function(e) { - toastr.error(e.errorMessage); - }); - return; - } else if (responseText.redirect_url) { - Steedos.openWindow(responseText.redirect_url); - } - }, - error: function(xhr, msg, ex) { - $(document.body).removeClass('loading'); - toastr.error(msg); - } - }); - } \ No newline at end of file + viewAllRecords: true \ No newline at end of file diff --git a/packages/standard-objects/base.sharing.trigger.todo.js b/packages/standard-objects/base.sharing.trigger.todo.js deleted file mode 100644 index 52b3b0417f..0000000000 --- a/packages/standard-objects/base.sharing.trigger.todo.js +++ /dev/null @@ -1,110 +0,0 @@ -module.exports = { - - name: 'baseSharingTrigger', - - listenTo: 'base', - - afterInsert: function (userId, doc, fieldNames, modifier, options) { - var collection, obj, object_name, psCollection, psRecords, selector; - object_name = this.object_name; - obj = Creator.getObject(object_name); - if (obj.enable_share) { - collection = Creator.getCollection(object_name); - psCollection = Creator.getCollection("permission_shares"); - selector = { - space: doc.space, - object_name: object_name - }; - psRecords = psCollection.find(selector, { - fields: { - _id: 1, - filters: 1, - organizations: 1, - users: 1 - } - }); - return psRecords.forEach(function (ps) { - var count, filters, push; - filters = Creator.formatFiltersToMongo(ps.filters, { - extend: false - }); - selector = { - space: doc.space, - _id: doc._id, - $and: filters - }; - count = collection.find(selector).count(); - if (count) { - push = { - sharing: { - "u": ps.users, - "o": ps.organizations, - "r": ps._id - } - }; - return collection.direct.update({ - _id: doc._id - }, { - $push: push - }); - } - }); - } - }, - - afterUpdate: function (userId, doc, fieldNames, modifier, options) { - var collection, obj, object_name, psCollection, psRecords, selector; - object_name = this.object_name; - obj = Creator.getObject(object_name); - if (obj.enable_share) { - collection = Creator.getCollection(object_name); - psCollection = Creator.getCollection("permission_shares"); - selector = { - space: doc.space, - object_name: object_name - }; - psRecords = psCollection.find(selector, { - fields: { - _id: 1, - filters: 1, - organizations: 1, - users: 1 - } - }); - collection.direct.update({ - _id: doc._id - }, { - $unset: { - "sharing": 1 - } - }); - return psRecords.forEach(function (ps) { - var count, filters, push; - filters = Creator.formatFiltersToMongo(ps.filters, { - extend: false - }); - selector = { - space: doc.space, - _id: doc._id, - $and: filters - }; - count = collection.find(selector).count(); - if (count) { - push = { - sharing: { - "u": ps.users, - "o": ps.organizations, - "r": ps._id - } - }; - return collection.direct.update({ - _id: doc._id - }, { - $push: push - }); - } - }); - } - }, - -} \ No newline at end of file From ea0a4d519c19236bcf03c2c76106524a32764138 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Sat, 31 Aug 2019 19:05:15 +0800 Subject: [PATCH 116/154] =?UTF-8?q?=E5=A4=84=E7=90=86Creator.baseObject?= =?UTF-8?q?=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/steedos/creator/issues/1317 --- packages/core/src/init/core.ts | 29 +++++++++++++++++++++++++++++ packages/core/src/init/index.ts | 2 ++ 2 files changed, 31 insertions(+) diff --git a/packages/core/src/init/core.ts b/packages/core/src/init/core.ts index 61dd6ea072..64b8846a61 100644 --- a/packages/core/src/init/core.ts +++ b/packages/core/src/init/core.ts @@ -5,6 +5,9 @@ const graphqlHTTP = require('express-graphql'); const _ = require("underscore"); const app = express(); const router = express.Router(); +var path = require('path') +var util = require('../util/index') +const UglifyJS = require("uglify-js"); import { Publish } from '../publish' export class Core { @@ -21,6 +24,32 @@ export class Core { this.initRoutes(); } + static addStaticJs(){ + let baseObject = JSON.stringify(Creator.baseObject, function (key, val) { + if (typeof val === 'function') { + return "$FS$" + val.toString().replace(/\"/g, "'")+"$FE$"; + } + return val; + }); + let minifyJs = UglifyJS.minify("Creator.baseObject=" + baseObject) + let minifyJsCode = minifyJs.code; + let minifyJsError = minifyJs.error; + if(minifyJsCode){ + minifyJsCode = minifyJsCode.replace(/"\$FS\$/g, "").replace(/\$FE\$"/g, "").replace(/'\$FS\$/g, "").replace(/\$FE\$'/g, "").replace(/\\r/g, "").replace(/\\n/g, "") + WebAppInternals.addStaticJs(minifyJsCode); + }else{ + throw new Error(minifyJsError) + } + } + + static createBaseObject(){ + let standardObjectsDir = path.dirname(require.resolve("@steedos/standard-objects")) + if (standardObjectsDir) { + let baseObject = util.loadFile(path.join(standardObjectsDir, "base.object.yml")) + Creator.baseObject = baseObject + } + } + private static expandSimpleSchemaPres() { SimpleSchema.extendOptions({ filtersFunction: Match.Optional(Match.OneOf(Function, String)) diff --git a/packages/core/src/init/index.ts b/packages/core/src/init/index.ts index 97cae1cfe5..b93df91fcd 100644 --- a/packages/core/src/init/index.ts +++ b/packages/core/src/init/index.ts @@ -4,7 +4,9 @@ import { Core } from './core' import { Plugins } from './plugins'; export async function init() { + Core.createBaseObject() LoadFiles.initStandardObjects(); + Core.addStaticJs() Datasources.create(); Plugins.init(); LoadFiles.initProjectObjects() From 6f4e6cf9f237ea338557c37716a572907961a360 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Mon, 2 Sep 2019 09:44:24 +0800 Subject: [PATCH 117/154] publish standard-objects@1.0.10 --- packages/standard-objects/History.md | 4 ++++ packages/standard-objects/package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/standard-objects/History.md b/packages/standard-objects/History.md index db016620c9..21e0a5f7f6 100644 --- a/packages/standard-objects/History.md +++ b/packages/standard-objects/History.md @@ -1,3 +1,7 @@ +1.0.10 / 2019-09-02 +=================== + + * 整理base object 1.0.9 / 2019-08-31 =================== diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 22a177445f..b940870d65 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.0.9", + "version": "1.0.10", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", From f643b4ea1f5730de00dc458c3ce718c30a3e0628 Mon Sep 17 00:00:00 2001 From: baozhoutao Date: Mon, 2 Sep 2019 09:46:51 +0800 Subject: [PATCH 118/154] publish core@1.3.20 --- packages/core/History.md | 4 ++++ packages/core/package.json | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/core/History.md b/packages/core/History.md index ffd6849efa..13bf48adb6 100644 --- a/packages/core/History.md +++ b/packages/core/History.md @@ -1,4 +1,8 @@ 1.3.19 / 2019-08-20 +=================== + + * base object 迁移到standard-objects +1.3.19 / 2019-08-20 =================== * [graphql api 的url 取消 datasource_name 部分](https://github.com/steedos/object-server/issues/125) diff --git a/packages/core/package.json b/packages/core/package.json index fca97c2f7e..15e53edf75 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.19", + "version": "1.3.20", "description": "", "main": "lib/index.js", "scripts": { @@ -20,7 +20,7 @@ "@salesforce/ts-types": "^1.1.1", "@steedos/auth": "^1.1.5", "@steedos/objectql": "^1.0.10", - "@steedos/standard-objects": "^1.0.4", + "@steedos/standard-objects": "^1.0.10", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", From 4f0544b3e07f738f1e22080a3762c7766e24a94c Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 2 Sep 2019 13:58:02 +0800 Subject: [PATCH 119/154] =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E7=9A=84action.only?= =?UTF-8?q?=5Flist=5Fitem=E5=B1=9E=E6=80=A7=E4=BD=9C=E5=BA=9F=EF=BC=8C?= =?UTF-8?q?=E6=89=A9=E5=B1=95action.on=E5=80=BC=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=80=89=E9=A1=B9list=5Fitem=E4=BB=A3=E6=9B=BF=20#1322?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/objectql/History.md | 4 ++++ packages/objectql/package.json | 6 +++--- packages/standard-objects/History.md | 4 ++++ packages/standard-objects/base.object.js | 3 +-- packages/standard-objects/cms_files.object.yml | 3 +-- packages/standard-objects/package.json | 2 +- 6 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/objectql/History.md b/packages/objectql/History.md index 54402dd275..d5d7eeb55e 100644 --- a/packages/objectql/History.md +++ b/packages/objectql/History.md @@ -1,3 +1,7 @@ +1.0.12 / 2019-09-02 +=================== + + * @steedos/schemas、standard-objects升级到新版本 1.0.10 / 2019-08-28 =================== diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 0848bbbaac..74c9a0361d 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.0.10", + "version": "1.0.12", "description": "", "main": "lib/index.js", "scripts": { @@ -20,8 +20,8 @@ "@salesforce/ts-types": "^1.1.1", "@steedos/filters": "^1.0.0", "@steedos/odata-v4-typeorm": "^0.0.24", - "@steedos/schemas": "^1.0.4", - "@steedos/standard-objects": "^1.0.4", + "@steedos/schemas": "^1.0.5", + "@steedos/standard-objects": "^1.0.11", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", diff --git a/packages/standard-objects/History.md b/packages/standard-objects/History.md index 21e0a5f7f6..20a10b406c 100644 --- a/packages/standard-objects/History.md +++ b/packages/standard-objects/History.md @@ -1,3 +1,7 @@ +1.0.11 / 2019-09-02 +=================== + + * 对象扩展action.on值,增加选项list_item、record_only,移除原来的action.only_list_item、action.only_detail属性 1.0.10 / 2019-09-02 =================== diff --git a/packages/standard-objects/base.object.js b/packages/standard-objects/base.object.js index f1210f318d..1e5dd90511 100644 --- a/packages/standard-objects/base.object.js +++ b/packages/standard-objects/base.object.js @@ -20,8 +20,7 @@ Creator.baseObject.actions = { standard_open_view: { label: "查看", visible: false, - on: "record", - only_list_item: true, + on: "list_item", todo: "standard_open_view" }, standard_edit: { diff --git a/packages/standard-objects/cms_files.object.yml b/packages/standard-objects/cms_files.object.yml index 980324b489..dce3d406b2 100644 --- a/packages/standard-objects/cms_files.object.yml +++ b/packages/standard-objects/cms_files.object.yml @@ -210,8 +210,7 @@ actions: } return perms["allowEdit"]; } - only_detail: true is_file: true - 'on': record + 'on': record_only todo: ! |- function (object_name, record_id) {} diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index b940870d65..ff637d09af 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.0.10", + "version": "1.0.11", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", From 5686ea6ab73eb2f7a232abd7871a4735e7d1fb00 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 2 Sep 2019 14:43:05 +0800 Subject: [PATCH 120/154] @steedos/objectql@1.0.13 --- packages/objectql/package.json | 2 +- packages/objectql/src/types/object.ts | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 74c9a0361d..38ffcc3272 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.0.12", + "version": "1.0.13", "description": "", "main": "lib/index.js", "scripts": { diff --git a/packages/objectql/src/types/object.ts b/packages/objectql/src/types/object.ts index b23dd1f8e7..babc85db5d 100644 --- a/packages/objectql/src/types/object.ts +++ b/packages/objectql/src/types/object.ts @@ -201,8 +201,8 @@ export class SteedosObjectType extends SteedosObjectProperties { if (this._datasource.driver == SteedosDatabaseDriverType.Mongo || this._datasource.driver == SteedosDatabaseDriverType.MeteorMongo) { this._idFieldName = '_id' } - - this.schema.setObjectMap(this.name, {datasourceName: this.datasource.name}) + + this.schema.setObjectMap(this.name, { datasourceName: this.datasource.name }) } setPermission(config: SteedosObjectPermissionTypeConfig) { @@ -508,7 +508,7 @@ export class SteedosObjectType extends SteedosObjectProperties { async count(query: SteedosQueryOptions, userSession?: SteedosUserSession) { let clonedQuery = Object.assign({}, query); - return await this.callAdapter('count', this.table_name, clonedQuery, userSession) + return await this.callAdapter('count', this.table_name, clonedQuery, userSession) } private async allow(method: string, userSession: SteedosUserSession) { @@ -673,6 +673,11 @@ export class SteedosObjectType extends SteedosObjectProperties { if (query.filters && !_.isString(query.filters)) { query.filters = formatFiltersToODataQuery(query.filters); } + + if (this.table_name == 'cfs.files.filerecord') { + return; + } + if (spaceId) { // 工作区级 query.filters = query.filters ? `(${query.filters}) and (space eq \'${spaceId}\')` : `(space eq \'${spaceId}\')`; } From a58339910be2bc18f6a9a58dd17a280a75131658 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 2 Sep 2019 14:46:30 +0800 Subject: [PATCH 121/154] @steedos/core@1.3.21 --- packages/core/package.json | 4 ++-- packages/core/src/init/core.ts | 2 +- packages/core/src/odata/MeteorODataRouter.ts | 15 +++++++++++++-- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 15e53edf75..f0ae41f25c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.20", + "version": "1.3.21", "description": "", "main": "lib/index.js", "scripts": { @@ -19,7 +19,7 @@ "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", "@steedos/auth": "^1.1.5", - "@steedos/objectql": "^1.0.10", + "@steedos/objectql": "^1.0.13", "@steedos/standard-objects": "^1.0.10", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", diff --git a/packages/core/src/init/core.ts b/packages/core/src/init/core.ts index 64b8846a61..353eeacc47 100644 --- a/packages/core/src/init/core.ts +++ b/packages/core/src/init/core.ts @@ -74,7 +74,7 @@ export class Core { var _key, _obj; if (/^[_a-zA-Z][_a-zA-Z0-9]*$/.test(key) === false) { _obj = _.clone(obj); - _obj.tableName = _.clone(key); + _obj.table_name = _.clone(key); _key = key.replace(new RegExp('\\.', 'g'), '_'); _obj.name = _key; newObjects[_key] = _obj; diff --git a/packages/core/src/odata/MeteorODataRouter.ts b/packages/core/src/odata/MeteorODataRouter.ts index eb017789de..6192b6c5ba 100644 --- a/packages/core/src/odata/MeteorODataRouter.ts +++ b/packages/core/src/odata/MeteorODataRouter.ts @@ -166,19 +166,29 @@ router.get('/:spaceId/:objectName/recent', async function (req: Request, res: Re query: {}, sort: undefined, projection: {}, - includes: [] + includes: [], + limit: 100 }; } let entities = []; let filters = queryParams.$filter; let fields = []; - filters = filters ? `(${filters}) and (space eq \'${spaceId}\')` : `(space eq \'${spaceId}\')`; if (queryParams.$select) { fields = _.keys(createQuery.projection) } getODataManager().excludeDeleted(filters) if (queryParams.$top !== '0') { + if (recent_view_records_ids.length > createQuery.limit) { + recent_view_records_ids = _.first(recent_view_records_ids, createQuery.limit) + } + let idsFilters = _.map(recent_view_records_ids, function (reid) { + return `(_id eq '${reid}')` + }).join(' or ') + if (_.isEmpty(recent_view_records_ids)) { + idsFilters = '_id eq -1' + } + filters = filters ? `(${filters}) and (${idsFilters})` : idsFilters; let query = { filters: filters, fields: fields, top: Number(queryParams.$top) }; if (queryParams.hasOwnProperty('$skip')) { query['skip'] = Number(queryParams.$skip); @@ -186,6 +196,7 @@ router.get('/:spaceId/:objectName/recent', async function (req: Request, res: Re if (queryParams.$orderby) { query['sort'] = queryParams.$orderby; } + entities = await collection.find(query, userSession); } let entities_ids = _.pluck(entities, '_id'); From a4467b1b9480823e3ac3d65a82093937e98a6d9c Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 2 Sep 2019 15:47:51 +0800 Subject: [PATCH 122/154] @steedos/core@1.3.22 --- packages/core/package.json | 2 +- packages/core/src/odata/MeteorODataRouter.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index f0ae41f25c..a2a168ffbe 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.21", + "version": "1.3.22", "description": "", "main": "lib/index.js", "scripts": { diff --git a/packages/core/src/odata/MeteorODataRouter.ts b/packages/core/src/odata/MeteorODataRouter.ts index 6192b6c5ba..251c6990cd 100644 --- a/packages/core/src/odata/MeteorODataRouter.ts +++ b/packages/core/src/odata/MeteorODataRouter.ts @@ -216,7 +216,7 @@ router.get('/:spaceId/:objectName/recent', async function (req: Request, res: Re await getODataManager().dealWithExpand(createQuery, sort_entities, key, urlParams.spaceId, userSession); let body = {}; body['@odata.context'] = getCreator().getODataContextPath(spaceId, key); - body['@odata.count'] = sort_entities.length; + body['@odata.count'] = recent_view_records_ids.length; let entities_OdataProperties = getCreator().setOdataProperty(sort_entities, spaceId, key); body['value'] = entities_OdataProperties; getODataManager().setHeaders(res); From 6740183a1e38960922e79e36aa4338940967ca73 Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 2 Sep 2019 16:19:31 +0800 Subject: [PATCH 123/154] @steedos/core@1.3.23 --- packages/core/package.json | 2 +- packages/core/src/odata/MeteorODataRouter.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index a2a168ffbe..2803bd6045 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.22", + "version": "1.3.23", "description": "", "main": "lib/index.js", "scripts": { diff --git a/packages/core/src/odata/MeteorODataRouter.ts b/packages/core/src/odata/MeteorODataRouter.ts index 251c6990cd..a1235db90a 100644 --- a/packages/core/src/odata/MeteorODataRouter.ts +++ b/packages/core/src/odata/MeteorODataRouter.ts @@ -68,7 +68,7 @@ router.get('/:spaceId/:objectName', async function (req: Request, res: Response) let entities = []; let filters = queryParams.$filter; let fields = []; - if (collection.tableName === 'cfs.files.filerecord') { + if (collection.table_name === 'cfs.files.filerecord') { filters = filters ? `(${filters}) and (metadata/space eq \'${spaceId}\')` : `(metadata/space eq \'${spaceId}\')`; } else { filters = filters ? `(${filters}) and (space eq \'${spaceId}\')` : `(space eq \'${spaceId}\')`; From fc256903228132fcc8033526d37eae5d7b38326d Mon Sep 17 00:00:00 2001 From: sunhaolin Date: Mon, 2 Sep 2019 17:35:06 +0800 Subject: [PATCH 124/154] @steedos/standard-objects@1.0.12 --- packages/standard-objects/History.md | 5 ++++- packages/standard-objects/package.json | 2 +- .../workflow/webhooks.object.yml | 18 ++++++++++++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/packages/standard-objects/History.md b/packages/standard-objects/History.md index 20a10b406c..578449da9a 100644 --- a/packages/standard-objects/History.md +++ b/packages/standard-objects/History.md @@ -1,4 +1,7 @@ -1.0.11 / 2019-09-02 +1.0.12 / 2019-09-02 +=================== + + * [webhook增加全局checkbox选项](https://github.com/steedos/workflow/issues/2035) =================== * 对象扩展action.on值,增加选项list_item、record_only,移除原来的action.only_list_item、action.only_detail属性 diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index ff637d09af..1ea03f8545 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.0.11", + "version": "1.0.12", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/standard-objects/workflow/webhooks.object.yml b/packages/standard-objects/workflow/webhooks.object.yml index 360afe7d6c..d6aae274e3 100644 --- a/packages/standard-objects/workflow/webhooks.object.yml +++ b/packages/standard-objects/workflow/webhooks.object.yml @@ -2,22 +2,34 @@ name: webhooks icon: metrics label: Webhooks fields: + name: + label: 名称 + type: text + defaultValue: '' + description: '' + inlineHelpText: '' + required: true + searchable: true + is_wide: true + is_name: true + name: name flow: label: 流程 type: lookup reference_to: flows - is_name: true - required: true create: false name: flow filterable: true searchable: true + is_wide: true + inlineHelpText: '如果未选择流程则应用范围为此工作区全部流程' payload_url: label: URL type: text regEx: ! >- /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/i required: true + is_wide: true name: payload_url content_type: label: 请求数据格式 @@ -34,11 +46,13 @@ fields: type: text label: 描述 name: description + is_wide: true list_views: all: label: 所有 filter_scope: space columns: + - name - flow - payload_url - active From 57ff6a42769f593d1d5ce8dfb4cee1d884c7ff84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 11:27:07 +0800 Subject: [PATCH 125/154] add @steedos/schemas --- packages/schemas/History.md | 5 + packages/schemas/README.md | 1 + packages/schemas/app/schema.json | 87 ++++ packages/schemas/index.js | 0 packages/schemas/object/schema.json | 692 ++++++++++++++++++++++++++++ packages/schemas/package.json | 12 + 6 files changed, 797 insertions(+) create mode 100644 packages/schemas/History.md create mode 100644 packages/schemas/README.md create mode 100644 packages/schemas/app/schema.json create mode 100644 packages/schemas/index.js create mode 100644 packages/schemas/object/schema.json create mode 100644 packages/schemas/package.json diff --git a/packages/schemas/History.md b/packages/schemas/History.md new file mode 100644 index 0000000000..d2b2b409e7 --- /dev/null +++ b/packages/schemas/History.md @@ -0,0 +1,5 @@ + +1.0.5 / 2019-09-02 +=================== + + * 对象扩展action.on值,增加选项list_item、record_only \ No newline at end of file diff --git a/packages/schemas/README.md b/packages/schemas/README.md new file mode 100644 index 0000000000..8bded40b90 --- /dev/null +++ b/packages/schemas/README.md @@ -0,0 +1 @@ +# schemas \ No newline at end of file diff --git a/packages/schemas/app/schema.json b/packages/schemas/app/schema.json new file mode 100644 index 0000000000..f77ed09767 --- /dev/null +++ b/packages/schemas/app/schema.json @@ -0,0 +1,87 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "name": "steedos-schema_app", + "type": "object", + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "type": { + "enum": [ + "library" + ] + } + }, + "required": [ + "type", + "name", + "description" + ] + }, + { + "properties": { + "type": { + "not": { + "enum": [ + "library" + ] + } + } + } + } + ], + "properties": { + "_id": { + "type": "string", + "description": "应用的唯一标识。" + }, + "url": { + "type": "string", + "description": "应用地址" + }, + "name": { + "description": "应用显示名称。", + "type": "string" + }, + "description": { + "type": "string", + "description": "应用描述。" + }, + "icon": { + "type": "string", + "description": "应用图标。" + }, + "icon_slds": { + "type": "string", + "description": "应用图标。" + }, + "is_creator": { + "type": "boolean", + "description": "TODO....。" + }, + "objects": { + "type": "array", + "description": "用于指定此应用下有多少对象。", + "items": { + "type": "string", + "description": "对象唯一标识。" + } + }, + "mobile_objects": { + "type": "array", + "description": "用于指定此应用在手机上显示的对象。", + "items": { + "type": "string", + "description": "对象唯一标识。" + } + }, + "admin_menus": { + "type": "array", + "description": "管理员菜单", + "items": { + "type": "object", + "description": "菜单详情" + } + } + } +} \ No newline at end of file diff --git a/packages/schemas/index.js b/packages/schemas/index.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/schemas/object/schema.json b/packages/schemas/object/schema.json new file mode 100644 index 0000000000..dd86920197 --- /dev/null +++ b/packages/schemas/object/schema.json @@ -0,0 +1,692 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "name": "steedos-schema_object", + "type": "object", + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "type": { + "enum": [ + "library" + ] + } + }, + "required": [ + "type", + "name", + "description" + ] + }, + { + "properties": { + "type": { + "not": { + "enum": [ + "library" + ] + } + } + } + } + ], + "properties": { + "name": { + "type": "string", + "description": "对象名称", + "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$" + }, + "table_name": { + "type": "string", + "description": "数据库表名称" + }, + "extend": { + "type": "string", + "description": "要继承的对象标识" + }, + "label": { + "type": "string", + "description": "对象显示名称" + }, + "icon": { + "type": "string", + "description": "对象图标,对应https://www.lightningdesignsystem.com/icons/#standard" + }, + "enable_search": { + "type": "boolean", + "description": "允许搜索" + }, + "is_enable": { + "type": "boolean", + "description": "是否启用,如果为false,则对象不可见" + }, + "enable_files": { + "type": "boolean", + "description": "允许上传附件" + }, + "enable_tasks": { + "type": "boolean", + "description": "允许创建任务" + }, + "enable_notes": { + "type": "boolean", + "description": "允许创建备忘" + }, + "enable_events": { + "type": "boolean", + "description": "允许创建事件" + }, + "enable_api": { + "type": "boolean", + "description": "TODO..." + }, + "enable_share": { + "type": "boolean", + "description": "允许分享" + }, + "enable_instances": { + "type": "boolean", + "description": "允许查看申请单" + }, + "enable_chatter": { + "type": "boolean", + "description": "允许评论" + }, + "enable_audit": { + "type": "boolean", + "description": "允许记录字段历史" + }, + "enable_trash": { + "type": "boolean", + "description": "允许假删除。如果为true,则开启回收站功能,此对象数据删除后,会进入回收站。如果为false,则直接删除" + }, + "enable_space_global": { + "type": "boolean", + "description": "允许数据夸工作区使用" + }, + "enable_tree": { + "type": "boolean", + "description": "树状显示" + }, + "is_view": { + "type": "boolean", + "description": "此对象是否对应数据库中的视图" + }, + "hidden": { + "type": "boolean", + "description": "是否隐藏对象" + }, + "description": { + "type": "string", + "description": "对象描述" + }, + "sidebar": { + "type": "object", + "description": "TODO" + }, + "custom": { + "type": "boolean", + "description": "创建的实体表是否加默认的前缀,默认前缀为:c_${spaceId}_" + }, + "owner": { + "type": "string", + "description": "对象拥有者" + }, + "methods": { + "type": "object", + "description": "对象可执行的方法,用于odata接口", + "patternProperties": { + "^[a-zA-Z_]\\w*(\\.\\$\\.\\w+)?[a-zA-Z0-9].*$": { + "$ref": "#/definitions/method" + } + } + }, + "fields": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z_]\\w*(\\.\\$\\.\\w+)?[a-zA-Z0-9].*$": { + "$ref": "#/definitions/field" + } + } + }, + "list_views": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z_]\\w*(\\.\\$\\.\\w+)?[a-zA-Z0-9]*$": { + "$ref": "#/definitions/list_view" + } + } + }, + "actions": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z_]\\w*(\\.\\$\\.\\w+)?[a-zA-Z0-9]*$": { + "$ref": "#/definitions/action" + } + } + }, + "permission_set": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z_]\\w*(\\.\\$\\.\\w+)?[a-zA-Z0-9]*$": { + "$ref": "#/definitions/permission" + } + } + }, + "triggers": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z_]\\w*(\\.\\$\\.\\w+)?[a-zA-Z0-9]*$": { + "$ref": "#/definitions/trigger" + } + } + }, + "calendar": { + "type": "object" + }, + "listeners": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z_]\\w*(\\.\\$\\.\\w+)?[a-zA-Z0-9]*$": { + "$ref": "#/definitions/listener" + } + } + } + }, + "definitions": { + "field": { + "type": "object", + "description": "对象字段", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "字段名称" + }, + "label": { + "type": "string", + "description": "字段显示名称" + }, + "is_name": { + "type": "boolean", + "description": "将当前字段叫标记为name字段,用于选择数据时的显示名称" + }, + "object": { + "type": "string", + "description": "字段所属对象" + }, + "type": { + "type": "string", + "description": "字段名称", + "anyOf": [ + { + "enum": [ + "text", + "textarea", + "html", + "select", + "boolean", + "date", + "datetime", + "number", + "currency", + "password", + "lookup", + "master_detail", + "grid", + "url", + "email", + "avatar", + "location", + "image", + "object", + "[object]", + "[Object]", + "[grid]", + "[text]", + "selectCity", + "audio", + "filesize", + "file", + "code" + ] + } + ] + }, + "sort_no": { + "type": "integer", + "description": "排序号, 默认值100" + }, + "group": { + "type": "string", + "description": "分组名称" + }, + "defaultValue": { + "type": [ + "string", + "boolean", + "array", + "integer" + ], + "description": "默认值" + }, + "allowedValues": { + "type": [ + "string", + "boolean", + "array" + ], + "description": "允许的值" + }, + "multiple": { + "type": "boolean", + "description": "支持多选" + }, + "required": { + "type": "boolean", + "description": "是否必填" + }, + "is_wide": { + "type": "boolean", + "description": "是否宽字段,如果为true,则在详细页面,一个字段占一行" + }, + "readonly": { + "type": "boolean", + "description": "是否只读" + }, + "hidden": { + "type": "boolean", + "description": "是否隐藏" + }, + "omit": { + "type": "boolean", + "description": "忽略此字段" + }, + "index": { + "type": "boolean", + "description": "创建索引" + }, + "searchable": { + "type": "boolean", + "description": "允许搜索" + }, + "sortable": { + "type": "boolean", + "description": "允许排序" + }, + "precision": { + "type": "integer", + "description": "数值类型字段的最大长度,默认值18" + }, + "scale": { + "type": "integer", + "description": "数值类型的小数位数,默认值2" + }, + "reference_to": { + "type": [ + "string", + "array" + ], + "description": "引用的对象" + }, + "rows": { + "type": "integer", + "description": "多行文本默认行数" + }, + "options": { + "type": [ + "string", + "array" + ], + "description": "字段选项" + }, + "description": { + "type": "string", + "description": "字段描述" + }, + "filterable": { + "type": "boolean", + "description": "过滤器默认字段" + }, + "inlineHelpText": { + "type": "string", + "description": "提示文本" + }, + "unique": { + "type": "boolean", + "description": "重复" + }, + "optionsFunction": { + "type": "string", + "description": "字段选项函数名称" + }, + "min": { + "type": "integer", + "description": "最小长度" + }, + "max": { + "type": "integer", + "description": "最大长度" + }, + "blackbox": { + "type": "boolean", + "description": "不校验字段类型" + }, + "disabled": { + "type": "boolean", + "description": "禁用" + }, + "reference_sort": { + "type": "object", + "description": "排序方式" + }, + "reference_limit": { + "type": "number", + "description": "一次最多显示数据" + }, + "is_company_only": { + "type": "boolean", + "description": "本公司" + }, + "system": { + "type": "string" + }, + "depend_on": { + "type": "array" + }, + "defaultIcon": { + "type": "string" + }, + "primary": { + "type": "boolean", + "description": "主键" + }, + "generated": { + "type": "boolean", + "description": "自增" + }, + "fieldDBType": { + "type": "string", + "description": "字段数据库类型" + }, + "collection": { + "type": "string", + "description": "对应对象名" + }, + "language": { + "type": "string", + "description": "模板名" + }, + "create": { + "type": "boolean", + "description": "关联时是否允许创建" + }, + "regEx": { + "type": "object", + "description": "正则表达式" + } + } + }, + "list_view": { + "type": "object", + "description": "列表视图", + "additionalProperties": false, + "properties": { + "label": { + "type": "string", + "description": "视图显示名称" + }, + "type": { + "type": "string", + "description": "列表显示类型,默认为list", + "enum": [ + "calendar" + ] + }, + "filter_scope": { + "type": "string", + "description": "范围", + "enum": [ + "space", + "mine", + "all" + ] + }, + "columns": { + "type": "array", + "description": "列表显示的字段" + }, + "extra_columns": { + "type": "array", + "description": "额外在列表显示的字段" + }, + "order": { + "type": "array", + "description": "排序" + }, + "filters": { + "type": [ + "array", + "string" + ], + "description": "过滤条件" + }, + "filter_fields": { + "type": "array", + "description": "过滤的字段" + }, + "sort": { + "type": "array", + "description": "排序" + }, + "options": { + "type": "object", + "description": "额外选项" + }, + "show_count": { + "type": "boolean", + "description": "显示条目数" + } + } + }, + "action": { + "type": "object", + "description": "对象操作", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "操作名称" + }, + "label": { + "type": "string", + "description": "操作显示名称" + }, + "is_enable": { + "type": "boolean", + "description": "是否启用" + }, + "visible": { + "type": [ + "string", + "boolean" + ], + "description": "是否有效" + }, + "on": { + "type": "string", + "description": "显示位置, list: 只显示在列表右上角; record: 显示在记录查看页右上角,以及列表视图中每项的下拉菜单中; record_more: 显示在记录查看页右上角的“更多”下拉菜单中,以及列表视图中每项的下拉菜单中; list_item: 只显示在列表视图中每项的下拉菜单中; record_only: 只显示在记录查看页右上角", + "enum": [ + "list", + "record", + "record_more", + "list_item", + "record_only" + ] + }, + "todo": { + "type": "string", + "description": "执行的脚本" + }, + "sort": { + "type": "number", + "description": "显示顺序" + }, + "is_file": { + "type": "boolean", + "description": "是否是附件" + } + } + }, + "permission": { + "type": "object", + "description": "对象权限", + "additionalProperties": false, + "properties": { + "allowRead": { + "type": "boolean", + "description": "允许查看" + }, + "allowCreate": { + "type": "boolean", + "description": "允许创建" + }, + "allowEdit": { + "type": "boolean", + "description": "允许修改" + }, + "allowDelete": { + "type": "boolean", + "description": "允许删除" + }, + "viewAllRecords": { + "type": "boolean", + "description": "查看所有记录" + }, + "modifyAllRecords": { + "type": "boolean", + "description": "修改所有记录" + }, + "viewCompanyRecords": { + "type": "boolean", + "description": "查看本单位" + }, + "modifyCompanyRecords": { + "type": "boolean", + "description": "修改本单位" + }, + "disabled_list_views": { + "type": "array", + "description": "禁用对象列表视图" + }, + "disabled_actions": { + "type": "array", + "description": "禁用对象操作" + }, + "unreadable_fields": { + "type": "array", + "description": "不可见字段" + }, + "uneditable_fields": { + "type": "array", + "description": "不可编辑字段" + }, + "unrelated_objects": { + "type": "array", + "description": "禁用关联对象" + } + } + }, + "trigger": { + "type": "object", + "description": "触发器", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "操作名称" + }, + "label": { + "type": "string", + "description": "操作显示名称" + }, + "is_enable": { + "type": "boolean", + "description": "是否启用" + }, + "on": { + "type": "string", + "description": "显示位置, client: 在客户端执行; server: 在服务端执行", + "enum": [ + "client", + "server" + ] + }, + "when": { + "type": "string", + "description": "在什么时候触发:before.insert: 新增记录之前;after.insert:新增记录之后;before.update:修改记录之前;after.update:修改记录之后;after.remove:删除记录之前;after.remove:删除记录之后;", + "enum": [ + "before.insert", + "after.insert", + "before.update", + "after.update", + "before.remove", + "after.remove" + ] + }, + "todo": { + "type": "string", + "description": "执行的脚本" + } + } + }, + "method": { + "type": "string" + }, + "listener": { + "type": "object", + "description": "触发器", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "监听器名称" + }, + "listenTo": { + "type": "string", + "description": "监听对象名" + }, + "beforeInsert": { + "type": "string", + "description": "新增前事件" + }, + "beforeUpdate": { + "type": "string", + "description": "修改前事件" + }, + "beforeDelete": { + "type": "string", + "description": "删除前事件" + }, + "afterInsert": { + "type": "string", + "description": "新增后事件" + }, + "afterUpdate": { + "type": "string", + "description": "修改后事件" + }, + "afterDelete": { + "type": "string", + "description": "删除后事件" + } + } + } + } +} \ No newline at end of file diff --git a/packages/schemas/package.json b/packages/schemas/package.json new file mode 100644 index 0000000000..720ae6a199 --- /dev/null +++ b/packages/schemas/package.json @@ -0,0 +1,12 @@ +{ + "name": "@steedos/schemas", + "version": "1.0.5", + "main": "index.js", + "repository": "https://github.com/steedos/schemas.git", + "author": "sunhaolin ", + "license": "MIT", + "private": false, + "publishConfig": { + "access": "public" + } +} \ No newline at end of file From cc21a20b4e50d350171a0e4200815696f6437d93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 11:58:59 +0800 Subject: [PATCH 126/154] Update package.json --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 613965b5c3..cf9d5bd4f4 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ ], "scripts": { "bootstrap": "npx lerna bootstrap", - "publish": "npx lerna publish --registry https://registry.npmjs.org", + "publish": "npx lerna publish --registry https://registry.npmjs.org", + "compile": "lerna run compile", "tsc": "cd packages && cd objectql && tsc && cd ../auth && tsc && cd ../core && tsc ", "prepare": "lerna run prepare", "clear": "rd /s /q packages\\auth\\node_modules\\@steedos packages\\report\\node_modules\\@steedos packages\\objectql\\node_modules\\@steedos packages\\core\\node_modules\\@steedos packages\\react-components\\node_modules\\@steedos packages\\tools\\node_modules\\@steedos" From 0fced5f0c3f00a833f40a9645980907918b7e083 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 15:25:20 +0800 Subject: [PATCH 127/154] Update package.json --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index cf9d5bd4f4..8ecd5619f5 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,8 @@ ], "scripts": { "bootstrap": "npx lerna bootstrap", - "publish": "npx lerna publish --registry https://registry.npmjs.org", + "publish": "npx lerna publish --registry https://registry.npmjs.org", "compile": "lerna run compile", - "tsc": "cd packages && cd objectql && tsc && cd ../auth && tsc && cd ../core && tsc ", "prepare": "lerna run prepare", "clear": "rd /s /q packages\\auth\\node_modules\\@steedos packages\\report\\node_modules\\@steedos packages\\objectql\\node_modules\\@steedos packages\\core\\node_modules\\@steedos packages\\react-components\\node_modules\\@steedos packages\\tools\\node_modules\\@steedos" }, From 6013b13f763dfc05fa4ff3cf80f90d90ff93fc26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 17:29:02 +0800 Subject: [PATCH 128/154] auth routes --- .gitignore | 1 - packages/auth/src/{ => endpoints}/jwt.ts | 24 +- packages/auth/src/endpoints/login.ts | 38 + packages/auth/src/endpoints/logout.ts | 7 + packages/auth/src/endpoints/validate.ts | 26 + packages/auth/src/express-middleware.ts | 19 + packages/auth/src/index.ts | 5 +- packages/auth/src/initRouter.ts | 63 - packages/auth/src/utils/index.ts | 113 +- packages/auth/test/unit/utils/utils.test..ts | 10 +- packages/core/src/index.ts | 4 +- packages/core/src/init/core.ts | 4 +- packages/core/src/sso/jwt.ts | 25 - yarn.lock | 20076 +++++++++++++++++ 14 files changed, 20244 insertions(+), 171 deletions(-) rename packages/auth/src/{ => endpoints}/jwt.ts (81%) create mode 100644 packages/auth/src/endpoints/login.ts create mode 100644 packages/auth/src/endpoints/logout.ts create mode 100644 packages/auth/src/endpoints/validate.ts create mode 100644 packages/auth/src/express-middleware.ts delete mode 100644 packages/auth/src/initRouter.ts delete mode 100644 packages/core/src/sso/jwt.ts create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index 4fd8608932..2d17bf1995 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,6 @@ **/.vscode/launch.* -**/yarn.lock settings.yml diff --git a/packages/auth/src/jwt.ts b/packages/auth/src/endpoints/jwt.ts similarity index 81% rename from packages/auth/src/jwt.ts rename to packages/auth/src/endpoints/jwt.ts index 334af80903..f7e6622420 100644 --- a/packages/auth/src/jwt.ts +++ b/packages/auth/src/endpoints/jwt.ts @@ -1,10 +1,7 @@ -import { utils } from './utils'; +import { hashStampedToken, insertHashedLoginToken, hashLoginToken } from '../utils'; import { getSteedosSchema } from '@steedos/objectql' -let express = require('express'); let jwt = require('express-jwt'); -let router = express.Router(); - function secretCallback(req, payload, done) { let issuer = payload.iss let collection = getSteedosSchema().getObject('OAuth2Clients') @@ -25,7 +22,7 @@ async function getTokenInfo(req) { if (user) { let userId = user._id let authToken = payload.sessionId ? `${payload.iss}-${payload.username}-${payload.sessionId}` : `${payload.iss}-${payload.username}` - let hashedToken = utils._hashLoginToken(authToken).replace(/\//g, '%2F'); + let hashedToken = hashLoginToken(authToken).replace(/\//g, '%2F'); let filters = `(services/resume/loginTokens/hashedToken eq '${hashedToken}')`; if (await userObj.count({ filters: filters })) { data = { userId: userId, authToken: authToken } @@ -34,8 +31,8 @@ async function getTokenInfo(req) { token: authToken, when: new Date } - let hashedTokenObj = utils._hashStampedToken(stampedToken) - await utils._insertHashedLoginToken(userId, hashedTokenObj) + let hashedTokenObj = hashStampedToken(stampedToken) + await insertHashedLoginToken(userId, hashedTokenObj) data = { userId: userId, authToken: authToken } } @@ -44,12 +41,7 @@ async function getTokenInfo(req) { return data; } -router.get('/jwt/getToken', jwt({ secret: secretCallback }), async function (req, res) { - let data = await getTokenInfo(req) - res.send(data) -}) - -router.get('/jwt/sso', async function (req, res) { +export const jwtSSO = async (req, res) => { try { let jwt = require('jsonwebtoken'); let token = req.query.jwt_token; @@ -80,8 +72,4 @@ router.get('/jwt/sso', async function (req, res) { res.status(500).send(error.messenger) } -}) - -export let jwtRouter = router - - +} diff --git a/packages/auth/src/endpoints/login.ts b/packages/auth/src/endpoints/login.ts new file mode 100644 index 0000000000..5e284f35a7 --- /dev/null +++ b/packages/auth/src/endpoints/login.ts @@ -0,0 +1,38 @@ + +import * as express from 'express'; +const SHA256 = require("sha256"); +const bcrypt = require('bcrypt'); +import { getSession, auth } from '../session'; +import { setAuthCookies, generateStampedLoginToken, hashStampedToken, insertHashedLoginToken } from '../utils'; + +declare var Meteor; + +export const login = async (req: express.Request, res: express.Response) => { + let username = req.body["username"]; + let password = req.body["password"]; + let spaceId = req.body["spaceId"]; // 需要登录的工作区Id,如果不传入,自动选中第一个工作区 + let bcryptPassword = SHA256(password); + let user = Meteor.users.findOne({ + $or: [{ "username": username }, { "emails.address": username }, { "mobile": username }] + }); + if (!user) { + res.status(401).send(); + return; + } + let match = await bcrypt.compare(bcryptPassword, user.services.password.bcrypt); + if (!match) { + res.status(401).send(); + return; + } + let authtToken = null; + let stampedAuthToken = generateStampedLoginToken(); + authtToken = stampedAuthToken.token; + let hashedToken = hashStampedToken(stampedAuthToken); + await insertHashedLoginToken(user._id, hashedToken); + let userSession = await getSession(authtToken, spaceId); + // set cookie to response + // maxAge 3 month + setAuthCookies(req, res, user._id, authtToken, userSession.spaceId); + res.setHeader('X-Space-Token', userSession.spaceId + ',' + authtToken); + return res.send(userSession); +} \ No newline at end of file diff --git a/packages/auth/src/endpoints/logout.ts b/packages/auth/src/endpoints/logout.ts new file mode 100644 index 0000000000..6da97c5542 --- /dev/null +++ b/packages/auth/src/endpoints/logout.ts @@ -0,0 +1,7 @@ + +import * as express from 'express'; +import { clearAuthCookies } from '../utils'; + +export const logout = async (req: express.Request, res: express.Response) => { + clearAuthCookies(req, res); +} \ No newline at end of file diff --git a/packages/auth/src/endpoints/validate.ts b/packages/auth/src/endpoints/validate.ts new file mode 100644 index 0000000000..ee8e9e959f --- /dev/null +++ b/packages/auth/src/endpoints/validate.ts @@ -0,0 +1,26 @@ + +import * as express from 'express'; +import { auth } from '../session'; +import { setAuthCookies } from '../utils'; +import { getSteedosSchema } from '@steedos/objectql'; + +export const validate = async (req: express.Request, res: express.Response) => { + let utcOffset = req.body.utcOffset; + let userSession = await auth(req, res); + if (userSession.userId) { + setAuthCookies(req, res, userSession.userId, userSession.authToken, userSession.spaceId); + + let user = await getSteedosSchema().getObject('users').findOne(userSession.userId, { fields: ['utcOffset'] }); + + if (!user.hasOwnProperty('utcOffset')) { + await getSteedosSchema().getObject('users').update(userSession.userId, { 'utcOffset': utcOffset }) + } + + return res.send(userSession); + } + return res.status(401).send({ + "error": "Validate Request -- Missing X-Auth-Token", + "instance": "1329598861", + "success": false + }) +} \ No newline at end of file diff --git a/packages/auth/src/express-middleware.ts b/packages/auth/src/express-middleware.ts new file mode 100644 index 0000000000..92c10a5f5d --- /dev/null +++ b/packages/auth/src/express-middleware.ts @@ -0,0 +1,19 @@ +const express = require('express'); + +import { login } from "./endpoints/login"; +import { logout } from "./endpoints/logout"; +import { validate } from "./endpoints/validate"; +import { jwtSSO } from "./endpoints/jwt"; + +export const authExpress = express.Router(); + +authExpress.post('/api/v4/users/login', login); +authExpress.post('/api/v4/users/logout', logout); +authExpress.post('/api/v4/users/validate', validate) + +// 保留以前的接口路由 +authExpress.post('/api/setup/login', login); +authExpress.post('/api/setup/logout', logout) +authExpress.post('/api/setup/validate', validate) + +authExpress.get('/jwt/sso', jwtSSO); \ No newline at end of file diff --git a/packages/auth/src/index.ts b/packages/auth/src/index.ts index 648053b07f..294b77733c 100644 --- a/packages/auth/src/index.ts +++ b/packages/auth/src/index.ts @@ -1,4 +1,3 @@ export { getSession, auth, setRequestUser } from "./session"; -export { jwtRouter } from "./jwt"; -export { utils } from "./utils"; -export { initRouter } from "./initRouter"; \ No newline at end of file +export * from "./utils"; +export { authExpress } from "./express-middleware"; \ No newline at end of file diff --git a/packages/auth/src/initRouter.ts b/packages/auth/src/initRouter.ts deleted file mode 100644 index d268c806af..0000000000 --- a/packages/auth/src/initRouter.ts +++ /dev/null @@ -1,63 +0,0 @@ -const express = require('express'); -const SHA256 = require("sha256"); -const bcrypt = require('bcrypt'); -import { getSession, auth } from './session'; -import { utils } from './utils'; -import { Request, Response } from 'express'; -import { getSteedosSchema } from '@steedos/objectql'; - -const router = express.Router(); - -router.post('/api/v4/users/login', async function (req: Request, res: Response) { - let username = req.body["username"]; - let password = req.body["password"]; - let spaceId = req.body["spaceId"]; // 需要登录的工作区Id,如果不传入,自动选中第一个工作区 - let bcryptPassword = SHA256(password); - let user = Meteor.users.findOne({ - $or: [{ "username": username }, { "emails.address": username }, { "mobile": username }] - }); - if (!user) { - res.status(401).send(); - return; - } - let match = await bcrypt.compare(bcryptPassword, user.services.password.bcrypt); - if (!match) { - res.status(401).send(); - return; - } - let authtToken = null; - let stampedAuthToken = utils._generateStampedLoginToken(); - authtToken = stampedAuthToken.token; - let hashedToken = utils._hashStampedToken(stampedAuthToken); - await utils._insertHashedLoginToken(user._id, hashedToken); - let userSession = await getSession(authtToken, spaceId); - // set cookie to response - // maxAge 3 month - utils._setAuthCookies(req, res, user._id, authtToken, userSession.spaceId); - res.setHeader('X-Space-Token', userSession.spaceId + ',' + authtToken); - return res.send(userSession); -}) - - -router.post('/api/v4/users/validate', async function (req: Request, res: Response) { - let utcOffset = req.body.utcOffset; - let userSession = await auth(req, res); - if (userSession.userId) { - utils._setAuthCookies(req, res, userSession.userId, userSession.authToken, userSession.spaceId); - - let user = await getSteedosSchema().getObject('users').findOne(userSession.userId, { fields: ['utcOffset'] }); - - if (!user.hasOwnProperty('utcOffset')) { - await getSteedosSchema().getObject('users').update(userSession.userId, { 'utcOffset': utcOffset }) - } - - return res.send(userSession); - } - return res.status(401).send({ - "error": "Validate Request -- Missing X-Auth-Token", - "instance": "1329598861", - "success": false - }) -}) - -export let initRouter = router; \ No newline at end of file diff --git a/packages/auth/src/utils/index.ts b/packages/auth/src/utils/index.ts index 5c7cad4941..832396a25f 100644 --- a/packages/auth/src/utils/index.ts +++ b/packages/auth/src/utils/index.ts @@ -3,57 +3,70 @@ import { default as Random } from './random'; import { getSteedosSchema } from '@steedos/objectql'; const Cookies = require('cookies'); -export let utils = { - _hashLoginToken: function (loginToken) { - const hash = crypto.createHash('sha256'); - hash.update(loginToken); - return hash.digest('base64'); - }, - - _generateStampedLoginToken: function () { - return { - token: Random.secret(), - when: new Date - }; - }, - - _hashStampedToken: function (stampedToken) { - const hashedStampedToken = Object.keys(stampedToken).reduce( - (prev, key) => key === 'token' ? - prev : - { ...prev, [key]: stampedToken[key] }, - {}, - ) - return { - ...hashedStampedToken, - hashedToken: utils._hashLoginToken(stampedToken.token) - }; - }, - - _insertHashedLoginToken: async function (userId, hashedToken) { - let userObject = getSteedosSchema().getObject('users') - let user = await userObject.findOne(userId, { fields: ['services'] }) - user['services']['resume']['loginTokens'].push(hashedToken) - let data = { services: user['services'] } - return await userObject.update(userId, data); - }, - - _setAuthCookies: function (req, res, userId, authToken, spaceId?) { - let cookies = new Cookies(req, res); - let options = { - maxAge: 90 * 60 * 60 * 24 * 1000, - httpOnly: false, - overwrite: true - } - cookies.set("X-User-Id", userId, options); - cookies.set("X-Auth-Token", authToken, options); - if (spaceId) { - cookies.set("X-Space-Id", spaceId, options); - cookies.set("X-Space-Token", spaceId + ',' + authToken, options); - } - - return; +export const hashLoginToken = function (loginToken) { + const hash = crypto.createHash('sha256'); + hash.update(loginToken); + return hash.digest('base64'); +} + +export const generateStampedLoginToken = function () { + return { + token: Random.secret(), + when: new Date + }; +} + +export const hashStampedToken = function (stampedToken) { + const hashedStampedToken = Object.keys(stampedToken).reduce( + (prev, key) => key === 'token' ? + prev : + { ...prev, [key]: stampedToken[key] }, + {}, + ) + return { + ...hashedStampedToken, + hashedToken: hashLoginToken(stampedToken.token) + }; +} + +export const insertHashedLoginToken = async function (userId, hashedToken) { + let userObject = getSteedosSchema().getObject('users') + let user = await userObject.findOne(userId, { fields: ['services'] }) + user['services']['resume']['loginTokens'].push(hashedToken) + let data = { services: user['services'] } + return await userObject.update(userId, data); +} + + + +export const setAuthCookies = function (req, res, userId, authToken, spaceId?) { + let cookies = new Cookies(req, res); + let options = { + maxAge: 90 * 60 * 60 * 24 * 1000, + httpOnly: false, + overwrite: true + } + cookies.set("X-User-Id", userId, options); + cookies.set("X-Auth-Token", authToken, options); + if (spaceId) { + cookies.set("X-Space-Id", spaceId, options); + cookies.set("X-Space-Token", spaceId + ',' + authToken, options); } + return; +} + +export const clearAuthCookies = function (req, res) { + let cookies = new Cookies(req, res); + let options = { + maxAge: 0, + httpOnly: false, + overwrite: true + } + cookies.set("X-User-Id", null, options); + cookies.set("X-Auth-Token", null, options); + cookies.set("X-Access-Token", null, options); + cookies.set("X-Space-Token", null, options); + return; } diff --git a/packages/auth/test/unit/utils/utils.test..ts b/packages/auth/test/unit/utils/utils.test..ts index 68efa08c6c..ab0387c6ab 100644 --- a/packages/auth/test/unit/utils/utils.test..ts +++ b/packages/auth/test/unit/utils/utils.test..ts @@ -1,5 +1,5 @@ import { expect } from 'chai'; -import { utils } from '../../../src/utils'; +import { generateStampedLoginToken, hashStampedToken, hashLoginToken } from '../../../src/utils'; describe('test utils', () => { @@ -32,10 +32,10 @@ describe('test utils', () => { // }); - it('test method _generateStampedLoginToken, _hashStampedToken, _hashLoginToken', () => { - let stampedToken = utils._generateStampedLoginToken(); - let hashedTokenObj = utils._hashStampedToken(stampedToken) - let hashedToken = utils._hashLoginToken(stampedToken.token) + it('test method generateStampedLoginToken, hashStampedToken, hashLoginToken', () => { + let stampedToken = generateStampedLoginToken(); + let hashedTokenObj = hashStampedToken(stampedToken) + let hashedToken = hashLoginToken(stampedToken.token) expect(hashedTokenObj.hashedToken).to.be.eq(hashedToken); }); diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 0ed467c6c4..7bcee9dcfa 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -13,6 +13,4 @@ export function getCreator(): CreatorManager{ export { default as ODataRouter } from './odata/ODataRouter' export { default as MeteorODataRouter } from './odata/MeteorODataRouter' -import { loadJWTSSOAPI } from "./sso/jwt"; -export {init} from './init' -loadJWTSSOAPI(); \ No newline at end of file +export {init} from './init' \ No newline at end of file diff --git a/packages/core/src/init/core.ts b/packages/core/src/init/core.ts index 353eeacc47..83a4d32e45 100644 --- a/packages/core/src/init/core.ts +++ b/packages/core/src/init/core.ts @@ -147,9 +147,7 @@ export class Core { private static initRoutes() { // /api/v4/users/login, /api/v4/users/validate - app.use(steedosAuth.initRouter); - - + app.use(steedosAuth.authExpress); WebApp.connectHandlers.use(app); } diff --git a/packages/core/src/sso/jwt.ts b/packages/core/src/sso/jwt.ts deleted file mode 100644 index b96501e908..0000000000 --- a/packages/core/src/sso/jwt.ts +++ /dev/null @@ -1,25 +0,0 @@ -declare var Package: any; - -export function loadJWTSSOAPI() { - if (typeof Package == "undefined") { - console.error('undefined Package'); - return - } - if (typeof Package.webapp == "undefined") { - console.error('undefined Package.webapp'); - return - } - if (typeof Package.webapp.WebApp == "undefined") { - console.error('undefined Package.webapp.WebApp'); - return - } - let express = require('express'); - let steedosAuth = require('@steedos/auth'); - let jwtRouter = steedosAuth.jwtRouter; - let app = express(); - - app.use('/api-v2', jwtRouter); - Package.webapp.WebApp.connectHandlers.use(app); - - return -} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000000..364deb08ce --- /dev/null +++ b/yarn.lock @@ -0,0 +1,20076 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35", "@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/core@7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687" + integrity sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.2.2" + "@babel/helpers" "^7.2.0" + "@babel/parser" "^7.2.2" + "@babel/template" "^7.2.2" + "@babel/traverse" "^7.2.2" + "@babel/types" "^7.2.2" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.10" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.1.6", "@babel/core@^7.2.0", "@babel/core@^7.4.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" + integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helpers" "^7.5.5" + "@babel/parser" "^7.5.5" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.2.2", "@babel/generator@^7.4.0", "@babel/generator@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" + integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== + dependencies: + "@babel/types" "^7.5.5" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-builder-react-jsx@^7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" + integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw== + dependencies: + "@babel/types" "^7.3.0" + esutils "^2.0.0" + +"@babel/helper-call-delegate@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" + integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/helper-create-class-features-plugin@^7.3.0", "@babel/helper-create-class-features-plugin@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" + integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" + +"@babel/helper-define-map@^7.1.0", "@babel/helper-define-map@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" + integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.5.5" + lodash "^4.17.13" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-hoist-variables@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" + integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== + dependencies: + "@babel/types" "^7.4.4" + +"@babel/helper-member-expression-to-functions@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" + integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== + dependencies: + "@babel/types" "^7.5.5" + +"@babel/helper-module-imports@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" + integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/types" "^7.5.5" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== + +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" + integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== + dependencies: + lodash "^4.17.13" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" + integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== + dependencies: + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.0.0", "@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== + dependencies: + "@babel/types" "^7.4.4" + +"@babel/helper-wrap-function@^7.1.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" + integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.2.0" + +"@babel/helpers@^7.2.0", "@babel/helpers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" + integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== + dependencies: + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + +"@babel/highlight@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" + integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.0.0", "@babel/parser@^7.2.0", "@babel/parser@^7.2.2", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" + integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== + +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + +"@babel/plugin-proposal-class-properties@7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz#272636bc0fa19a0bc46e601ec78136a173ea36cd" + integrity sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.3.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-proposal-class-properties@^7.2.1", "@babel/plugin-proposal-class-properties@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4" + integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.5.5" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-proposal-decorators@7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.3.0.tgz#637ba075fa780b1f75d08186e8fb4357d03a72a7" + integrity sha512-3W/oCUmsO43FmZIqermmq6TKaRSYhmh/vybPfVFwQWdSb8xwki38uAIvknCRzuyHRuYfCYmJzL9or1v0AffPjg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.3.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-decorators" "^7.2.0" + +"@babel/plugin-proposal-dynamic-import@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" + integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + +"@babel/plugin-proposal-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + +"@babel/plugin-proposal-object-rest-spread@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz#6d1859882d4d778578e41f82cc5d7bf3d5daf6c1" + integrity sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-object-rest-spread@^7.3.1", "@babel/plugin-proposal-object-rest-spread@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" + integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.2.0", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" + integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-class-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.2.0.tgz#23b3b7b9bcdabd73672a9149f728cd3be6214812" + integrity sha512-UxYaGXYQ7rrKJS/PxIKRkv3exi05oH7rokBAsmCSsCxz1sVPZ7Fu6FzKoGgUvmY+0YgSkYHgUoCh5R5bCNBQlw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-decorators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b" + integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-dynamic-import@7.2.0", "@babel/plugin-syntax-dynamic-import@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" + integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-flow@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c" + integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-jsx@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" + integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-typescript@^7.2.0": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz#a7cc3f66119a9f7ebe2de5383cce193473d65991" + integrity sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.2.0", "@babel/plugin-transform-async-to-generator@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" + integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoping@^7.2.0", "@babel/plugin-transform-block-scoping@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" + integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.13" + +"@babel/plugin-transform-classes@7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953" + integrity sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.1.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + globals "^11.1.0" + +"@babel/plugin-transform-classes@^7.2.0", "@babel/plugin-transform-classes@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" + integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.5.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz#f2f5520be055ba1c38c41c0e094d8a461dd78f2d" + integrity sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@^7.2.0", "@babel/plugin-transform-destructuring@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" + integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.2.0", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" + integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/plugin-transform-duplicate-keys@^7.2.0", "@babel/plugin-transform-duplicate-keys@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" + integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-flow-strip-types@7.2.3": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.2.3.tgz#e3ac2a594948454e7431c7db33e1d02d51b5cd69" + integrity sha512-xnt7UIk9GYZRitqCnsVMjQK1O2eKZwFB3CvvHjf5SGx6K6vr/MScCKQDnf1DxRaj501e3pXjti+inbSXX2ZUoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.2.0" + +"@babel/plugin-transform-flow-strip-types@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz#d267a081f49a8705fc9146de0768c6b58dccd8f7" + integrity sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.2.0" + +"@babel/plugin-transform-for-of@^7.2.0", "@babel/plugin-transform-for-of@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" + integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.2.0", "@babel/plugin-transform-function-name@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" + integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-member-expression-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" + integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-amd@^7.2.0", "@babel/plugin-transform-modules-amd@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" + integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" + integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== + dependencies: + "@babel/helper-module-transforms" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-systemjs@^7.2.0", "@babel/plugin-transform-modules-systemjs@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" + integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106" + integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg== + dependencies: + regexp-tree "^0.1.6" + +"@babel/plugin-transform-new-target@^7.0.0", "@babel/plugin-transform-new-target@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" + integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-object-super@^7.2.0", "@babel/plugin-transform-object-super@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" + integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + +"@babel/plugin-transform-parameters@^7.2.0", "@babel/plugin-transform-parameters@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" + integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== + dependencies: + "@babel/helper-call-delegate" "^7.4.4" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-property-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" + integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-constant-elements@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.2.0.tgz#ed602dc2d8bff2f0cb1a5ce29263dbdec40779f7" + integrity sha512-YYQFg6giRFMsZPKUM9v+VcHOdfSQdz9jHCx3akAi3UYgyjndmdYGSXylQ/V+HswQt4fL8IklchD9HTsaOCrWQQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-constant-elements@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.5.0.tgz#4d6ae4033bc38f8a65dfca2b6235c44522a422fc" + integrity sha512-c5Ba8cpybZFp1Izkf2sWGuNjOxoQ32tFgBvvYvwGhi4+9f6vGiSK9Gex4uVuO/Va6YJFu41aAh1MzMjUWkp0IQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-display-name@7.2.0", "@babel/plugin-transform-react-display-name@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" + integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-jsx-self@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" + integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-react-jsx-source@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" + integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" + integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg== + dependencies: + "@babel/helper-builder-react-jsx" "^7.3.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-regenerator@^7.0.0", "@babel/plugin-transform-regenerator@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" + integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== + dependencies: + regenerator-transform "^0.14.0" + +"@babel/plugin-transform-reserved-words@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" + integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-runtime@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea" + integrity sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-runtime@^7.2.0": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.5.5.tgz#a6331afbfc59189d2135b2e09474457a8e3d28bc" + integrity sha512-6Xmeidsun5rkwnGfMOp6/z9nSzWpHFNVr2Jx7kwoq4mVatQfQx5S56drBgEHF+XQbKOdIaOiMIINvp/kAwMN+w== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.2.0", "@babel/plugin-transform-spread@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" + integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.2.0", "@babel/plugin-transform-template-literals@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" + integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typescript@^7.1.0", "@babel/plugin-transform-typescript@^7.2.0": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.5.tgz#6d862766f09b2da1cb1f7d505fe2aedab6b7d4b8" + integrity sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.5.5" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-typescript" "^7.2.0" + +"@babel/plugin-transform-unicode-regex@^7.2.0", "@babel/plugin-transform-unicode-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" + integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" + +"@babel/polyfill@^7.2.3": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.4.4.tgz#78801cf3dbe657844eeabf31c1cae3828051e893" + integrity sha512-WlthFLfhQQhh+A2Gn5NSFl0Huxz36x86Jn+E9OW7ibK8edKPq+KLy4apM1yDpQ8kJOVi1OVjpP4vSDLdrI04dg== + dependencies: + core-js "^2.6.5" + regenerator-runtime "^0.13.2" + +"@babel/preset-env@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.1.tgz#389e8ca6b17ae67aaf9a2111665030be923515db" + integrity sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.3.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.2.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.2.0" + "@babel/plugin-transform-classes" "^7.2.0" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.2.0" + "@babel/plugin-transform-dotall-regex" "^7.2.0" + "@babel/plugin-transform-duplicate-keys" "^7.2.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.2.0" + "@babel/plugin-transform-function-name" "^7.2.0" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.2.0" + "@babel/plugin-transform-modules-systemjs" "^7.2.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0" + "@babel/plugin-transform-new-target" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.2.0" + "@babel/plugin-transform-parameters" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.2.0" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.2.0" + browserslist "^4.3.4" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.3.0" + +"@babel/preset-env@^7.1.6": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz#bc470b53acaa48df4b8db24a570d6da1fef53c9a" + integrity sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-dynamic-import" "^7.5.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.5.5" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.5.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.5.5" + "@babel/plugin-transform-classes" "^7.5.5" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.5.0" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/plugin-transform-duplicate-keys" "^7.5.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.4.4" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.5.0" + "@babel/plugin-transform-modules-commonjs" "^7.5.0" + "@babel/plugin-transform-modules-systemjs" "^7.5.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" + "@babel/plugin-transform-new-target" "^7.4.4" + "@babel/plugin-transform-object-super" "^7.5.5" + "@babel/plugin-transform-parameters" "^7.4.4" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.5" + "@babel/plugin-transform-reserved-words" "^7.2.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.4.4" + "@babel/types" "^7.5.5" + browserslist "^4.6.0" + core-js-compat "^3.1.1" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.5.0" + +"@babel/preset-react@7.0.0", "@babel/preset-react@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" + integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + +"@babel/preset-typescript@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.1.0.tgz#49ad6e2084ff0bfb5f1f7fb3b5e76c434d442c7f" + integrity sha512-LYveByuF9AOM8WrsNne5+N79k1YxjNB6gmpCQsnuSBAcV8QUeB+ZUxQzL7Rz7HksPbahymKkq2qBR+o36ggFZA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.1.0" + +"@babel/runtime@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.1.tgz#574b03e8e8a9898eaf4a872a92ea20b7846f6f2a" + integrity sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA== + dependencies: + regenerator-runtime "^0.12.0" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.0": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" + integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.2.2", "@babel/template@^7.4.0", "@babel/template@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.2.2", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" + integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.5.5" + "@babel/types" "^7.5.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" + integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@commitlint/cli@^7": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-7.6.1.tgz#a93cf995082831999937f6d5ec1a582c8fc0393a" + integrity sha512-HEJwQ/aK0AOcAwn77ZKbb/GZhlGxBSPhtVp07uoJFVqM12l2Ia2JHA+MTpfHCFdVahKyYGREZgxde6LyKyG8aQ== + dependencies: + "@commitlint/format" "^7.6.1" + "@commitlint/lint" "^7.6.0" + "@commitlint/load" "^7.6.1" + "@commitlint/read" "^7.6.0" + babel-polyfill "6.26.0" + chalk "2.3.1" + get-stdin "7.0.0" + lodash "4.17.11" + meow "5.0.0" + resolve-from "5.0.0" + resolve-global "1.0.0" + +"@commitlint/config-conventional@^7": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-7.6.0.tgz#f3dc66bf39e3b627fdd6f5ac3d0510dd0dd38f94" + integrity sha512-1Gnv5p3tc1VsEK25oTIRBO86czLtX6s/jeLNPAQRzdCnyEmsxkbx/sfoUJ1dwv7v8W++xckVnnuvdZv2Hp8yCw== + +"@commitlint/ensure@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-7.6.0.tgz#e873ff6786a3b9504e88a4debed41df29cd8ac36" + integrity sha512-pSUrNud5L/8y+cLWo3LEa8Ce4bAAR33xMderFUhuNPHj7TwpNS7L4ROMnhL4ZlCYRazCRDlnPaJLPikMoWThfA== + dependencies: + lodash "4.17.11" + +"@commitlint/execute-rule@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-7.6.0.tgz#60c1c34b5f2fca6c6cbca019a9c7d81c2fab1e4a" + integrity sha512-0inGOIlLefPDtiDOaZ6WoE1p+GEZZIj2VwUftUozD3C71TiwP9UfKAVVtUDFPIeL6RgSqCkCf7zsy6NKNxwkBg== + dependencies: + babel-runtime "6.26.0" + +"@commitlint/format@^7.6.1": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-7.6.1.tgz#106750de50fab7d153eed80e7577c768bb9a3a1b" + integrity sha512-Ldzf5N2Sr9RQqvlYwaQn4vz1WOZ7byYinspC/WCrbfcETGy28j7QE4OueZU6nNB9TjwwEorKm13uy7tDWPR7dg== + dependencies: + babel-runtime "^6.23.0" + chalk "^2.0.1" + +"@commitlint/is-ignored@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-7.6.0.tgz#d069f25741dcf859b324e5f709835af3aac9cf45" + integrity sha512-By/mLNhz+6Rtix9+Kyof1gdKiELchAnQHpdeKIHIOe9sjbvd3HqDoFHh/mGMMRnGIPMZOX5TO8Fqy3A/2HqlTw== + dependencies: + semver "6.0.0" + +"@commitlint/lint@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-7.6.0.tgz#a6da320026b937aa9bf971e060e471edd6b088ec" + integrity sha512-aUIFX0lPRZL7WmT8W8qzogJD4LmHk6JPG3XUAX+K0pOHGjC/0ALvSAytvoLXy4fvmSnGJkXmWhzSW7c0Spa14Q== + dependencies: + "@commitlint/is-ignored" "^7.6.0" + "@commitlint/parse" "^7.6.0" + "@commitlint/rules" "^7.6.0" + babel-runtime "^6.23.0" + lodash "4.17.11" + +"@commitlint/load@^7.6.1": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-7.6.2.tgz#b5ed8163fa3117d60faf70a4e677b2017bbc71bb" + integrity sha512-I+xk+BkXAG1roXNrPsR1eOd5hEa+oLc6HLYnHAT/HLGKKB3E01IGg3O5SGlg7lpf1yiAaYI+wAnNTr3f3sIbWQ== + dependencies: + "@commitlint/execute-rule" "^7.6.0" + "@commitlint/resolve-extends" "^7.6.0" + babel-runtime "^6.23.0" + cosmiconfig "^5.2.0" + lodash "4.17.11" + resolve-from "^5.0.0" + +"@commitlint/message@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-7.6.0.tgz#899b6b411945dd091d261408b6e994043967bc06" + integrity sha512-PtP4jhBYGXLaQQC5jel+RQczG2tS3Cy6rRxQioUfCUaEg/LV029ao/KcL1kHEBJ8hSW/SUmnvDaD9Y6nozLQMA== + +"@commitlint/parse@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-7.6.0.tgz#e7b8d6dc145e78cf56940bbf405ca6fac3085196" + integrity sha512-1x60kTqz2VBCjYE+8MV5BhE+ShPo7MgVlrMWSlxiiJDWP5CvWa+SBbUayDJ7rtOXimjTASZ9ZNZTuFPdJE/Y7A== + dependencies: + conventional-changelog-angular "^1.3.3" + conventional-commits-parser "^2.1.0" + lodash "^4.17.11" + +"@commitlint/read@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-7.6.0.tgz#e55863354b436683daa2081de7ec2189573bc306" + integrity sha512-OyligtK/e4xnQklrQqTcSMM27eNhq+LqXfoeVouuPx059oDEw9wZYNN4HGzyxs4Pb6GdMpzRHLdeMQ24M+AiYw== + dependencies: + "@commitlint/top-level" "^7.6.0" + "@marionebl/sander" "^0.6.0" + babel-runtime "^6.23.0" + git-raw-commits "^1.3.0" + +"@commitlint/resolve-extends@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-7.6.0.tgz#0680b76eeb0e41f728c2f38645473a0956299edb" + integrity sha512-fk8KvNiEbRc+p8nPFuysVP2O95+sb8vlIDTjqtGVObqrzFINRfERXwqBmTBtcu556BoDAR2hwRVXmuwhns+Duw== + dependencies: + babel-runtime "6.26.0" + import-fresh "^3.0.0" + lodash "4.17.11" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-7.6.0.tgz#f9a833c1eab8144fd8f545a71408b39e51acb64e" + integrity sha512-shLJdMUwdVeE5UgOE8E+c+PFS7+0FFGfheMa3s6ZK+xX8pTUxseXZu9iCF4mwF+WWkVk518xPuNLvmYE96salQ== + dependencies: + "@commitlint/ensure" "^7.6.0" + "@commitlint/message" "^7.6.0" + "@commitlint/to-lines" "^7.6.0" + babel-runtime "^6.23.0" + +"@commitlint/to-lines@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-7.6.0.tgz#5ed4dbf39db0ceff96dbb661b9ce048ed3db7a4b" + integrity sha512-L/Vl5ThRuBHnSNZBtc+p2LCs2ayxWodC+I/X3NKUywSmr6kKpJJCFqHHHqPu+yXwGUPwqCMQhogIGLuv9TtWWw== + +"@commitlint/top-level@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-7.6.0.tgz#0ed88078ac585c93ee314ff3b7f8c20143c57652" + integrity sha512-R2RzJZDuT2TU2dZMrRd7olax5IDVcUB/O8k76d1LW13CQ9/2ArJi3TCFXSZIaGpCUnyAYA5KiCZ+c1opnyQuog== + dependencies: + find-up "^2.1.0" + +"@csstools/convert-colors@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" + integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== + +"@evocateur/libnpmaccess@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845" + integrity sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + npm-package-arg "^6.1.0" + +"@evocateur/libnpmpublish@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz#55df09d2dca136afba9c88c759ca272198db9f1a" + integrity sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + lodash.clonedeep "^4.5.0" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + semver "^5.5.1" + ssri "^6.0.1" + +"@evocateur/npm-registry-fetch@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#8c4c38766d8d32d3200fcb0a83f064b57365ed66" + integrity sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g== + dependencies: + JSONStream "^1.3.4" + bluebird "^3.5.1" + figgy-pudding "^3.4.1" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + npm-package-arg "^6.1.0" + safe-buffer "^5.1.2" + +"@evocateur/pacote@^9.6.3": + version "9.6.5" + resolved "https://registry.yarnpkg.com/@evocateur/pacote/-/pacote-9.6.5.tgz#33de32ba210b6f17c20ebab4d497efc6755f4ae5" + integrity sha512-EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + bluebird "^3.5.3" + cacache "^12.0.3" + chownr "^1.1.2" + figgy-pudding "^3.5.1" + get-stream "^4.1.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + minimatch "^3.0.4" + minipass "^2.3.5" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.5.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.4.4" + npm-pick-manifest "^3.0.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.1" + rimraf "^2.6.3" + safe-buffer "^5.2.0" + semver "^5.7.0" + ssri "^6.0.1" + tar "^4.4.10" + unique-filename "^1.1.1" + which "^1.3.1" + +"@geek/spinner@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@geek/spinner/-/spinner-1.0.0.tgz#55243af270a915172be452dad9f923f7e5e0fa7a" + integrity sha512-tQ/09iBn/9AsNSAi1lwQF1MCl+FEhgfGkk/F+uvkt6nBJ5P9Eh2e3rDPfCxvfaLCl3w3EhqFzV5I2MkSACHB3w== + dependencies: + chalk "^2.3.1" + cli-cursor "^2.1.0" + cli-spinners "^1.1.0" + figures "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.0.0" + wcwidth "^1.0.1" + +"@lerna/add@3.16.2": + version "3.16.2" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.16.2.tgz#90ecc1be7051cfcec75496ce122f656295bd6e94" + integrity sha512-RAAaF8aODPogj2Ge9Wj3uxPFIBGpog9M+HwSuq03ZnkkO831AmasCTJDqV+GEpl1U2DvnhZQEwHpWmTT0uUeEw== + dependencies: + "@evocateur/pacote" "^9.6.3" + "@lerna/bootstrap" "3.16.2" + "@lerna/command" "3.16.0" + "@lerna/filter-options" "3.16.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + npm-package-arg "^6.1.0" + p-map "^2.1.0" + semver "^6.2.0" + +"@lerna/batch-packages@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/batch-packages/-/batch-packages-3.16.0.tgz#1c16cb697e7d718177db744cbcbdac4e30253c8c" + integrity sha512-7AdMkANpubY/FKFI01im01tlx6ygOBJ/0JcixMUWoWP/7Ds3SWQF22ID6fbBr38jUWptYLDs2fagtTDL7YUPuA== + dependencies: + "@lerna/package-graph" "3.16.0" + npmlog "^4.1.2" + +"@lerna/bootstrap@3.16.2": + version "3.16.2" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.16.2.tgz#be268d940221d3c3270656b9b791b492559ad9d8" + integrity sha512-I+gs7eh6rv9Vyd+CwqL7sftRfOOsSzCle8cv/CGlMN7/p7EAVhxEdAw8SYoHIKHzipXszuqqy1Y3opyleD0qdA== + dependencies: + "@lerna/batch-packages" "3.16.0" + "@lerna/command" "3.16.0" + "@lerna/filter-options" "3.16.0" + "@lerna/has-npm-version" "3.16.0" + "@lerna/npm-install" "3.16.0" + "@lerna/package-graph" "3.16.0" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/rimraf-dir" "3.14.2" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-parallel-batches" "3.16.0" + "@lerna/symlink-binary" "3.16.2" + "@lerna/symlink-dependencies" "3.16.2" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + get-port "^4.2.0" + multimatch "^3.0.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + p-finally "^1.0.0" + p-map "^2.1.0" + p-map-series "^1.0.0" + p-waterfall "^1.0.0" + read-package-tree "^5.1.6" + semver "^6.2.0" + +"@lerna/changed@3.16.4": + version "3.16.4" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.16.4.tgz#c3e727d01453513140eee32c94b695de577dc955" + integrity sha512-NCD7XkK744T23iW0wqKEgF4R9MYmReUbyHCZKopFnsNpQdqumc3SOIvQUAkKCP6hQJmYvxvOieoVgy/CVDpZ5g== + dependencies: + "@lerna/collect-updates" "3.16.0" + "@lerna/command" "3.16.0" + "@lerna/listable" "3.16.0" + "@lerna/output" "3.13.0" + "@lerna/version" "3.16.4" + +"@lerna/check-working-tree@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-3.14.2.tgz#5ce007722180a69643a8456766ed8a91fc7e9ae1" + integrity sha512-7safqxM/MYoAoxZxulUDtIJIbnBIgo0PB/FHytueG+9VaX7GMnDte2Bt1EKa0dz2sAyQdmQ3Q8ZXpf/6JDjaeg== + dependencies: + "@lerna/collect-uncommitted" "3.14.2" + "@lerna/describe-ref" "3.14.2" + "@lerna/validation-error" "3.13.0" + +"@lerna/child-process@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-3.14.2.tgz#950240cba83f7dfe25247cfa6c9cebf30b7d94f6" + integrity sha512-xnq+W5yQb6RkwI0p16ZQnrn6HkloH/MWTw4lGE1nKsBLAUbmSU5oTE93W1nrG0X3IMF/xWc9UYvNdUGMWvZZ4w== + dependencies: + chalk "^2.3.1" + execa "^1.0.0" + strong-log-transformer "^2.0.0" + +"@lerna/clean@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.16.0.tgz#1c134334cacea1b1dbeacdc580e8b9240db8efa1" + integrity sha512-5P9U5Y19WmYZr7UAMGXBpY7xCRdlR7zhHy8MAPDKVx70rFIBS6nWXn5n7Kntv74g7Lm1gJ2rsiH5tj1OPcRJgg== + dependencies: + "@lerna/command" "3.16.0" + "@lerna/filter-options" "3.16.0" + "@lerna/prompt" "3.13.0" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/rimraf-dir" "3.14.2" + p-map "^2.1.0" + p-map-series "^1.0.0" + p-waterfall "^1.0.0" + +"@lerna/cli@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-3.13.0.tgz#3d7b357fdd7818423e9681a7b7f2abd106c8a266" + integrity sha512-HgFGlyCZbYaYrjOr3w/EsY18PdvtsTmDfpUQe8HwDjXlPeCCUgliZjXLOVBxSjiOvPeOSwvopwIHKWQmYbwywg== + dependencies: + "@lerna/global-options" "3.13.0" + dedent "^0.7.0" + npmlog "^4.1.2" + yargs "^12.0.1" + +"@lerna/collect-uncommitted@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-3.14.2.tgz#b5ed00d800bea26bb0d18404432b051eee8d030e" + integrity sha512-4EkQu4jIOdNL2BMzy/N0ydHB8+Z6syu6xiiKXOoFl0WoWU9H1jEJCX4TH7CmVxXL1+jcs8FIS2pfQz4oew99Eg== + dependencies: + "@lerna/child-process" "3.14.2" + chalk "^2.3.1" + figgy-pudding "^3.5.1" + npmlog "^4.1.2" + +"@lerna/collect-updates@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.16.0.tgz#6db3ce8a740a4e2b972c033a63bdfb77f2553d8c" + integrity sha512-HwAIl815X2TNlmcp28zCrSdXfoZWNP7GJPEqNWYk7xDJTYLqQ+SrmKUePjb3AMGBwYAraZSEJLbHdBpJ5+cHmQ== + dependencies: + "@lerna/child-process" "3.14.2" + "@lerna/describe-ref" "3.14.2" + minimatch "^3.0.4" + npmlog "^4.1.2" + slash "^2.0.0" + +"@lerna/command@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.16.0.tgz#ba3dba49cb5ce4d11b48269cf95becd86e30773f" + integrity sha512-u7tE4GC4/gfbPA9eQg+0ulnoJ+PMoMqomx033r/IxqZrHtmJR9+pF/37S0fsxJ2hX/RMFPC7c9Q/i8NEufSpdQ== + dependencies: + "@lerna/child-process" "3.14.2" + "@lerna/package-graph" "3.16.0" + "@lerna/project" "3.16.0" + "@lerna/validation-error" "3.13.0" + "@lerna/write-log-file" "3.13.0" + dedent "^0.7.0" + execa "^1.0.0" + is-ci "^2.0.0" + lodash "^4.17.14" + npmlog "^4.1.2" + +"@lerna/conventional-commits@3.16.4": + version "3.16.4" + resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.16.4.tgz#bf464f11b2f6534dad204db00430e1651b346a04" + integrity sha512-QSZJ0bC9n6FVaf+7KDIq5zMv8WnHXnwhyL5jG1Nyh3SgOg9q2uflqh7YsYB+G6FwaRfnPaKosh6obijpYg0llA== + dependencies: + "@lerna/validation-error" "3.13.0" + conventional-changelog-angular "^5.0.3" + conventional-changelog-core "^3.1.6" + conventional-recommended-bump "^5.0.0" + fs-extra "^8.1.0" + get-stream "^4.0.0" + lodash.template "^4.5.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + pify "^4.0.1" + semver "^6.2.0" + +"@lerna/create-symlink@3.16.2": + version "3.16.2" + resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-3.16.2.tgz#412cb8e59a72f5a7d9463e4e4721ad2070149967" + integrity sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw== + dependencies: + "@zkochan/cmd-shim" "^3.1.0" + fs-extra "^8.1.0" + npmlog "^4.1.2" + +"@lerna/create@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.16.0.tgz#4de841ec7d98b29bb19fb7d6ad982e65f7a150e8" + integrity sha512-OZApR1Iz7awutbmj4sAArwhqCyKgcrnw9rH0aWAUrkYWrD1w4TwkvAcYAsfx5GpQGbLQwoXhoyyPwPfZRRWz3Q== + dependencies: + "@evocateur/pacote" "^9.6.3" + "@lerna/child-process" "3.14.2" + "@lerna/command" "3.16.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/validation-error" "3.13.0" + camelcase "^5.0.0" + dedent "^0.7.0" + fs-extra "^8.1.0" + globby "^9.2.0" + init-package-json "^1.10.3" + npm-package-arg "^6.1.0" + p-reduce "^1.0.0" + pify "^4.0.1" + semver "^6.2.0" + slash "^2.0.0" + validate-npm-package-license "^3.0.3" + validate-npm-package-name "^3.0.0" + whatwg-url "^7.0.0" + +"@lerna/describe-ref@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-3.14.2.tgz#edc3c973f5ca9728d23358c4f4d3b55a21f65be5" + integrity sha512-qa5pzDRK2oBQXNjyRmRnN7E8a78NMYfQjjlRFB0KNHMsT6mCiL9+8kIS39sSE2NqT8p7xVNo2r2KAS8R/m3CoQ== + dependencies: + "@lerna/child-process" "3.14.2" + npmlog "^4.1.2" + +"@lerna/diff@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.16.0.tgz#6d09a786f9f5b343a2fdc460eb0be08a05b420aa" + integrity sha512-QUpVs5TPl8vBIne10/vyjUxanQBQQp7Lk3iaB8MnCysKr0O+oy7trWeFVDPEkBTCD177By7yPGyW5Yey1nCBbA== + dependencies: + "@lerna/child-process" "3.14.2" + "@lerna/command" "3.16.0" + "@lerna/validation-error" "3.13.0" + npmlog "^4.1.2" + +"@lerna/exec@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.16.0.tgz#2b6c033cee46181b6eede0eb12aad5c2c0181e89" + integrity sha512-mH3O5NXf/O88jBaBBTUf+d56CUkxpg782s3Jxy7HWbVuSUULt3iMRPTh+zEXO5/555etsIVVDDyUR76meklrJA== + dependencies: + "@lerna/child-process" "3.14.2" + "@lerna/command" "3.16.0" + "@lerna/filter-options" "3.16.0" + "@lerna/run-topologically" "3.16.0" + "@lerna/validation-error" "3.13.0" + p-map "^2.1.0" + +"@lerna/filter-options@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.16.0.tgz#b1660b4480c02a5c6efa4d0cd98b9afde4ed0bba" + integrity sha512-InIi1fF8+PxpCwir9bIy+pGxrdE6hvN0enIs1eNGCVS1TTE8osNgiZXa838bMQ1yaEccdcnVX6Z03BNKd56kNg== + dependencies: + "@lerna/collect-updates" "3.16.0" + "@lerna/filter-packages" "3.16.0" + dedent "^0.7.0" + +"@lerna/filter-packages@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-3.16.0.tgz#7d34dc8530c71016263d6f67dc65308ecf11c9fc" + integrity sha512-eGFzQTx0ogkGDCnbTuXqssryR6ilp8+dcXt6B+aq1MaqL/vOJRZyqMm4TY3CUOUnzZCi9S2WWyMw3PnAJOF+kg== + dependencies: + "@lerna/validation-error" "3.13.0" + multimatch "^3.0.0" + npmlog "^4.1.2" + +"@lerna/get-npm-exec-opts@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz#d1b552cb0088199fc3e7e126f914e39a08df9ea5" + integrity sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw== + dependencies: + npmlog "^4.1.2" + +"@lerna/get-packed@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-3.16.0.tgz#1b316b706dcee86c7baa55e50b087959447852ff" + integrity sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw== + dependencies: + fs-extra "^8.1.0" + ssri "^6.0.1" + tar "^4.4.8" + +"@lerna/github-client@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.16.0.tgz#619874e461641d4f59ab1b3f1a7ba22dba88125d" + integrity sha512-IVJjcKjkYaUEPJsDyAblHGEFFNKCRyMagbIDm14L7Ab94ccN6i4TKOqAFEJn2SJHYvKKBdp3Zj2zNlASOMe3DA== + dependencies: + "@lerna/child-process" "3.14.2" + "@octokit/plugin-enterprise-rest" "^3.6.1" + "@octokit/rest" "^16.28.4" + git-url-parse "^11.1.2" + npmlog "^4.1.2" + +"@lerna/gitlab-client@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz#91f4ec8c697b5ac57f7f25bd50fe659d24aa96a6" + integrity sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q== + dependencies: + node-fetch "^2.5.0" + npmlog "^4.1.2" + whatwg-url "^7.0.0" + +"@lerna/global-options@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-3.13.0.tgz#217662290db06ad9cf2c49d8e3100ee28eaebae1" + integrity sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ== + +"@lerna/has-npm-version@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-3.16.0.tgz#55764a4ce792f0c8553cf996a17f554b9e843288" + integrity sha512-TIY036dA9J8OyTrZq9J+it2DVKifL65k7hK8HhkUPpitJkw6jwbMObA/8D40LOGgWNPweJWqmlrTbRSwsR7DrQ== + dependencies: + "@lerna/child-process" "3.14.2" + semver "^6.2.0" + +"@lerna/import@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.16.0.tgz#b57cb453f4acfc60f6541fcbba10674055cb179d" + integrity sha512-trsOmGHzw0rL/f8BLNvd+9PjoTkXq2Dt4/V2UCha254hMQaYutbxcYu8iKPxz9x86jSPlH7FpbTkkHXDsoY7Yg== + dependencies: + "@lerna/child-process" "3.14.2" + "@lerna/command" "3.16.0" + "@lerna/prompt" "3.13.0" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + fs-extra "^8.1.0" + p-map-series "^1.0.0" + +"@lerna/init@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.16.0.tgz#31e0d66bbededee603338b487a42674a072b7a7d" + integrity sha512-Ybol/x5xMtBgokx4j7/Y3u0ZmNh0NiSWzBFVaOs2NOJKvuqrWimF67DKVz7yYtTYEjtaMdug64ohFF4jcT/iag== + dependencies: + "@lerna/child-process" "3.14.2" + "@lerna/command" "3.16.0" + fs-extra "^8.1.0" + p-map "^2.1.0" + write-json-file "^3.2.0" + +"@lerna/link@3.16.2": + version "3.16.2" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.16.2.tgz#6c3a5658f6448a64dddca93d9348ac756776f6f6" + integrity sha512-eCPg5Lo8HT525fIivNoYF3vWghO3UgEVFdbsiPmhzwI7IQyZro5HWYzLtywSAdEog5XZpd2Bbn0CsoHWBB3gww== + dependencies: + "@lerna/command" "3.16.0" + "@lerna/package-graph" "3.16.0" + "@lerna/symlink-dependencies" "3.16.2" + p-map "^2.1.0" + slash "^2.0.0" + +"@lerna/list@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.16.0.tgz#883c00b2baf1e03c93e54391372f67a01b773c2f" + integrity sha512-TkvstoPsgKqqQ0KfRumpsdMXfRSEhdXqOLq519XyI5IRWYxhoqXqfi8gG37UoBPhBNoe64japn5OjphF3rOmQA== + dependencies: + "@lerna/command" "3.16.0" + "@lerna/filter-options" "3.16.0" + "@lerna/listable" "3.16.0" + "@lerna/output" "3.13.0" + +"@lerna/listable@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-3.16.0.tgz#e6dc47a2d5a6295222663486f50e5cffc580f043" + integrity sha512-mtdAT2EEECqrJSDm/aXlOUFr1MRE4p6hppzY//Klp05CogQy6uGaKk+iKG5yyCLaOXFFZvG4HfO11CmoGSDWzw== + dependencies: + "@lerna/query-graph" "3.16.0" + chalk "^2.3.1" + columnify "^1.5.4" + +"@lerna/log-packed@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-3.16.0.tgz#f83991041ee77b2495634e14470b42259fd2bc16" + integrity sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ== + dependencies: + byte-size "^5.0.1" + columnify "^1.5.4" + has-unicode "^2.0.1" + npmlog "^4.1.2" + +"@lerna/npm-conf@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-3.16.0.tgz#1c10a89ae2f6c2ee96962557738685300d376827" + integrity sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA== + dependencies: + config-chain "^1.1.11" + pify "^4.0.1" + +"@lerna/npm-dist-tag@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-3.16.0.tgz#b2184cee5e1f291277396854820e1117a544b7ee" + integrity sha512-MQrBkqJJB9+eNphuj9w90QPMOs4NQXMuSRk9NqzeFunOmdDopPCV0Q7IThSxEuWnhJ2n3B7G0vWUP7tNMPdqIQ== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + "@lerna/otplease" "3.16.0" + figgy-pudding "^3.5.1" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + +"@lerna/npm-install@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-3.16.0.tgz#8ec76a7a13b183bde438fd46296bf7a0d6f86017" + integrity sha512-APUOIilZCzDzce92uLEwzt1r7AEMKT/hWA1ThGJL+PO9Rn8A95Km3o2XZAYG4W0hR+P4O2nSVuKbsjQtz8CjFQ== + dependencies: + "@lerna/child-process" "3.14.2" + "@lerna/get-npm-exec-opts" "3.13.0" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + signal-exit "^3.0.2" + write-pkg "^3.1.0" + +"@lerna/npm-publish@3.16.2": + version "3.16.2" + resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-3.16.2.tgz#a850b54739446c4aa766a0ceabfa9283bb0be676" + integrity sha512-tGMb9vfTxP57vUV5svkBQxd5Tzc+imZbu9ZYf8Mtwe0+HYfDjNiiHLIQw7G95w4YRdc5KsCE8sQ0uSj+f2soIg== + dependencies: + "@evocateur/libnpmpublish" "^1.2.2" + "@lerna/otplease" "3.16.0" + "@lerna/run-lifecycle" "3.16.2" + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + pify "^4.0.1" + read-package-json "^2.0.13" + +"@lerna/npm-run-script@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-3.14.2.tgz#8c518ea9d241a641273e77aad6f6fddc16779c3f" + integrity sha512-LbVFv+nvAoRTYLMrJlJ8RiakHXrLslL7Jp/m1R18vYrB8LYWA3ey+nz5Tel2OELzmjUiemAKZsD9h6i+Re5egg== + dependencies: + "@lerna/child-process" "3.14.2" + "@lerna/get-npm-exec-opts" "3.13.0" + npmlog "^4.1.2" + +"@lerna/otplease@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-3.16.0.tgz#de66aec4f3e835a465d7bea84b58a4ab6590a0fa" + integrity sha512-uqZ15wYOHC+/V0WnD2iTLXARjvx3vNrpiIeyIvVlDB7rWse9mL4egex/QSgZ+lDx1OID7l2kgvcUD9cFpbqB7Q== + dependencies: + "@lerna/prompt" "3.13.0" + figgy-pudding "^3.5.1" + +"@lerna/output@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/output/-/output-3.13.0.tgz#3ded7cc908b27a9872228a630d950aedae7a4989" + integrity sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg== + dependencies: + npmlog "^4.1.2" + +"@lerna/pack-directory@3.16.4": + version "3.16.4" + resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-3.16.4.tgz#3eae5f91bdf5acfe0384510ed53faddc4c074693" + integrity sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng== + dependencies: + "@lerna/get-packed" "3.16.0" + "@lerna/package" "3.16.0" + "@lerna/run-lifecycle" "3.16.2" + figgy-pudding "^3.5.1" + npm-packlist "^1.4.4" + npmlog "^4.1.2" + tar "^4.4.10" + temp-write "^3.4.0" + +"@lerna/package-graph@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.16.0.tgz#909c90fb41e02f2c19387342d2a5eefc36d56836" + integrity sha512-A2mum/gNbv7zCtAwJqoxzqv89As73OQNK2MgSX1SHWya46qoxO9a9Z2c5lOFQ8UFN5ZxqWMfFYXRCz7qzwmFXw== + dependencies: + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/validation-error" "3.13.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + semver "^6.2.0" + +"@lerna/package@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/package/-/package-3.16.0.tgz#7e0a46e4697ed8b8a9c14d59c7f890e0d38ba13c" + integrity sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw== + dependencies: + load-json-file "^5.3.0" + npm-package-arg "^6.1.0" + write-pkg "^3.1.0" + +"@lerna/prerelease-id-from-version@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz#b24bfa789f5e1baab914d7b08baae9b7bd7d83a1" + integrity sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA== + dependencies: + semver "^6.2.0" + +"@lerna/project@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.16.0.tgz#2469a4e346e623fd922f38f5a12931dfb8f2a946" + integrity sha512-NrKcKK1EqXqhrGvslz6Q36+ZHuK3zlDhGdghRqnxDcHxMPT01NgLcmsnymmQ+gjMljuLRmvKYYCuHrknzX8VrA== + dependencies: + "@lerna/package" "3.16.0" + "@lerna/validation-error" "3.13.0" + cosmiconfig "^5.1.0" + dedent "^0.7.0" + dot-prop "^4.2.0" + glob-parent "^5.0.0" + globby "^9.2.0" + load-json-file "^5.3.0" + npmlog "^4.1.2" + p-map "^2.1.0" + resolve-from "^4.0.0" + write-json-file "^3.2.0" + +"@lerna/prompt@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-3.13.0.tgz#53571462bb3f5399cc1ca6d335a411fe093426a5" + integrity sha512-P+lWSFokdyvYpkwC3it9cE0IF2U5yy2mOUbGvvE4iDb9K7TyXGE+7lwtx2thtPvBAfIb7O13POMkv7df03HJeA== + dependencies: + inquirer "^6.2.0" + npmlog "^4.1.2" + +"@lerna/publish@3.16.4": + version "3.16.4" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.16.4.tgz#4cd55d8be9943d9a68e316e930a90cda8590500e" + integrity sha512-XZY+gRuF7/v6PDQwl7lvZaGWs8CnX6WIPIu+OCcyFPSL/rdWegdN7HieKBHskgX798qRQc2GrveaY7bNoTKXAw== + dependencies: + "@evocateur/libnpmaccess" "^3.1.2" + "@evocateur/npm-registry-fetch" "^4.0.0" + "@evocateur/pacote" "^9.6.3" + "@lerna/check-working-tree" "3.14.2" + "@lerna/child-process" "3.14.2" + "@lerna/collect-updates" "3.16.0" + "@lerna/command" "3.16.0" + "@lerna/describe-ref" "3.14.2" + "@lerna/log-packed" "3.16.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/npm-dist-tag" "3.16.0" + "@lerna/npm-publish" "3.16.2" + "@lerna/otplease" "3.16.0" + "@lerna/output" "3.13.0" + "@lerna/pack-directory" "3.16.4" + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prompt" "3.13.0" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.16.0" + "@lerna/validation-error" "3.13.0" + "@lerna/version" "3.16.4" + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + p-finally "^1.0.0" + p-map "^2.1.0" + p-pipe "^1.2.0" + semver "^6.2.0" + +"@lerna/pulse-till-done@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz#c8e9ce5bafaf10d930a67d7ed0ccb5d958fe0110" + integrity sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA== + dependencies: + npmlog "^4.1.2" + +"@lerna/query-graph@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-3.16.0.tgz#e6a46ebcd9d5b03f018a06eca2b471735353953c" + integrity sha512-p0RO+xmHDO95ChJdWkcy9TNLysLkoDARXeRHzY5U54VCwl3Ot/2q8fMCVlA5UeGXDutEyyByl3URqEpcQCWI7Q== + dependencies: + "@lerna/package-graph" "3.16.0" + figgy-pudding "^3.5.1" + +"@lerna/resolve-symlink@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz#37fc7095fabdbcf317c26eb74e0d0bde8efd2386" + integrity sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ== + dependencies: + fs-extra "^8.1.0" + npmlog "^4.1.2" + read-cmd-shim "^1.0.1" + +"@lerna/rimraf-dir@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-3.14.2.tgz#103a49882abd85d42285d05cc76869b89f21ffd2" + integrity sha512-eFNkZsy44Bu9v1Hrj5Zk6omzg8O9h/7W6QYK1TTUHeyrjTEwytaNQlqF0lrTLmEvq55sviV42NC/8P3M2cvq8Q== + dependencies: + "@lerna/child-process" "3.14.2" + npmlog "^4.1.2" + path-exists "^3.0.0" + rimraf "^2.6.2" + +"@lerna/run-lifecycle@3.16.2": + version "3.16.2" + resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz#67b288f8ea964db9ea4fb1fbc7715d5bbb0bce00" + integrity sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A== + dependencies: + "@lerna/npm-conf" "3.16.0" + figgy-pudding "^3.5.1" + npm-lifecycle "^3.1.2" + npmlog "^4.1.2" + +"@lerna/run-parallel-batches@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/run-parallel-batches/-/run-parallel-batches-3.16.0.tgz#5ace7911a2dd31dfd1e53c61356034e27df0e1fb" + integrity sha512-2J/Nyv+MvogmQEfC7VcS21ifk7w0HVvzo2yOZRPvkCzGRu/rducxtB4RTcr58XCZ8h/Bt1aqQYKExu3c/3GXwg== + dependencies: + p-map "^2.1.0" + p-map-series "^1.0.0" + +"@lerna/run-topologically@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-3.16.0.tgz#39e29cfc628bbc8e736d8e0d0e984997ac01bbf5" + integrity sha512-4Hlpv4zDtKWa5Z0tPkeu0sK+bxZEKgkNESMGmWrUCNfj7xwvAJurcraK8+a2Y0TFYwf0qjSLY/MzX+ZbJA3Cgw== + dependencies: + "@lerna/query-graph" "3.16.0" + figgy-pudding "^3.5.1" + p-queue "^4.0.0" + +"@lerna/run@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.16.0.tgz#1ea568c6f303e47fa00b3403a457836d40738fd2" + integrity sha512-woTeLlB1OAAz4zzjdI6RyIxSGuxiUPHJZm89E1pDEPoWwtQV6HMdMgrsQd9ATsJ5Ez280HH4bF/LStAlqW8Ufg== + dependencies: + "@lerna/command" "3.16.0" + "@lerna/filter-options" "3.16.0" + "@lerna/npm-run-script" "3.14.2" + "@lerna/output" "3.13.0" + "@lerna/run-topologically" "3.16.0" + "@lerna/timer" "3.13.0" + "@lerna/validation-error" "3.13.0" + p-map "^2.1.0" + +"@lerna/symlink-binary@3.16.2": + version "3.16.2" + resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-3.16.2.tgz#f98a3d9da9e56f1d302dc0d5c2efeb951483ee66" + integrity sha512-kz9XVoFOGSF83gg4gBqH+mG6uxfJfTp8Uy+Cam40CvMiuzfODrGkjuBEFoM/uO2QOAwZvbQDYOBpKUa9ZxHS1Q== + dependencies: + "@lerna/create-symlink" "3.16.2" + "@lerna/package" "3.16.0" + fs-extra "^8.1.0" + p-map "^2.1.0" + +"@lerna/symlink-dependencies@3.16.2": + version "3.16.2" + resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-3.16.2.tgz#91d9909d35897aebd76a03644a00cd03c4128240" + integrity sha512-wnZqGJQ+Jvr1I3inxrkffrFZfmQI7Ta8gySw/UWCy95QtZWF/f5yk8zVIocCAsjzD0wgb3jJE3CFJ9W5iwWk1A== + dependencies: + "@lerna/create-symlink" "3.16.2" + "@lerna/resolve-symlink" "3.16.0" + "@lerna/symlink-binary" "3.16.2" + fs-extra "^8.1.0" + p-finally "^1.0.0" + p-map "^2.1.0" + p-map-series "^1.0.0" + +"@lerna/timer@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/timer/-/timer-3.13.0.tgz#bcd0904551db16e08364d6c18e5e2160fc870781" + integrity sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw== + +"@lerna/validation-error@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-3.13.0.tgz#c86b8f07c5ab9539f775bd8a54976e926f3759c3" + integrity sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA== + dependencies: + npmlog "^4.1.2" + +"@lerna/version@3.16.4": + version "3.16.4" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.16.4.tgz#b5cc37f3ad98358d599c6196c30b6efc396d42bf" + integrity sha512-ikhbMeIn5ljCtWTlHDzO4YvTmpGTX1lWFFIZ79Vd1TNyOr+OUuKLo/+p06mCl2WEdZu0W2s5E9oxfAAQbyDxEg== + dependencies: + "@lerna/check-working-tree" "3.14.2" + "@lerna/child-process" "3.14.2" + "@lerna/collect-updates" "3.16.0" + "@lerna/command" "3.16.0" + "@lerna/conventional-commits" "3.16.4" + "@lerna/github-client" "3.16.0" + "@lerna/gitlab-client" "3.15.0" + "@lerna/output" "3.13.0" + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prompt" "3.13.0" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.16.0" + "@lerna/validation-error" "3.13.0" + chalk "^2.3.1" + dedent "^0.7.0" + minimatch "^3.0.4" + npmlog "^4.1.2" + p-map "^2.1.0" + p-pipe "^1.2.0" + p-reduce "^1.0.0" + p-waterfall "^1.0.0" + semver "^6.2.0" + slash "^2.0.0" + temp-write "^3.4.0" + +"@lerna/write-log-file@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-3.13.0.tgz#b78d9e4cfc1349a8be64d91324c4c8199e822a26" + integrity sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A== + dependencies: + npmlog "^4.1.2" + write-file-atomic "^2.3.0" + +"@marionebl/sander@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@marionebl/sander/-/sander-0.6.1.tgz#1958965874f24bc51be48875feb50d642fc41f7b" + integrity sha1-GViWWHTyS8Ub5Ih1/rUNZC/EH3s= + dependencies: + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + rimraf "^2.5.2" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.scandir@2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.2.tgz#1f981cd5b83e85cfdeb386fc693d4baab392fa54" + integrity sha512-wrIBsjA5pl13f0RN4Zx4FNWmU71lv03meGKnqRUoCyan17s4V3WL92f3w3AIuWbNnpcrQyFBU5qMavJoB8d27w== + dependencies: + "@nodelib/fs.stat" "2.0.2" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.2", "@nodelib/fs.stat@^2.0.1": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.2.tgz#2762aea8fe78ea256860182dcb52d61ee4b8fda6" + integrity sha512-z8+wGWV2dgUhLqrtRYa03yDx4HWMvXKi1z8g3m2JyxAx8F7xk74asqPk5LAETjqDSGLFML/6CDl0+yFunSYicw== + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@nodelib/fs.walk@^1.2.1": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.3.tgz#a555dc256acaf00c62b0db29529028dd4d4cb141" + integrity sha512-l6t8xEhfK9Sa4YO5mIRdau7XSOADfmh3jCr0evNHdY+HNkW6xuQhgMH7D73VV6WpZOagrW0UludvMTiifiwTfA== + dependencies: + "@nodelib/fs.scandir" "2.1.2" + fastq "^1.6.0" + +"@oclif/command@^1.5.1", "@oclif/command@^1.5.10", "@oclif/command@^1.5.13": + version "1.5.18" + resolved "https://registry.yarnpkg.com/@oclif/command/-/command-1.5.18.tgz#57125b501fafa155ad280bf8dc9f36a911c44f11" + integrity sha512-sfLb5UUCwyQ0w9LyQ1/3DUuD/RWnPZk6uvcK5P7pqD65WgRJaOPCqzuNZyb56kPsj6FftRp1UudApNKd7U0KBQ== + dependencies: + "@oclif/config" "^1" + "@oclif/errors" "^1.2.2" + "@oclif/parser" "^3.8.3" + "@oclif/plugin-help" "^2" + debug "^4.1.1" + semver "^5.6.0" + +"@oclif/config@^1", "@oclif/config@^1.12.12", "@oclif/config@^1.12.8": + version "1.13.3" + resolved "https://registry.yarnpkg.com/@oclif/config/-/config-1.13.3.tgz#1b13e18d0e4242ddbd9cbd100f0eec819aa2bf8c" + integrity sha512-qs5XvGRw+1M41abOKCjd0uoeHCgsMxa2MurD2g2K8CtQlzlMXl0rW5idVeimIg5208LLuxkfzQo8TKAhhRCWLg== + dependencies: + "@oclif/parser" "^3.8.0" + debug "^4.1.1" + tslib "^1.9.3" + +"@oclif/dev-cli@^1.21.2": + version "1.22.2" + resolved "https://registry.yarnpkg.com/@oclif/dev-cli/-/dev-cli-1.22.2.tgz#e890f93d0335c0e3faaa25741999776259b2171f" + integrity sha512-c7633R37RxrQIpwqPKxjNRm6/jb1yuG8fd16hmNz9Nw+/MUhEtQtKHSCe9ScH8n5M06l6LEo4ldk9LEGtpaWwA== + dependencies: + "@oclif/command" "^1.5.13" + "@oclif/config" "^1.12.12" + "@oclif/errors" "^1.2.2" + "@oclif/plugin-help" "^2.1.6" + cli-ux "^5.2.1" + debug "^4.1.1" + fs-extra "^7.0.1" + github-slugger "^1.2.1" + lodash "^4.17.11" + normalize-package-data "^2.5.0" + qqjs "^0.3.10" + tslib "^1.9.3" + +"@oclif/errors@^1.2.1", "@oclif/errors@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@oclif/errors/-/errors-1.2.2.tgz#9d8f269b15f13d70aa93316fed7bebc24688edc2" + integrity sha512-Eq8BFuJUQcbAPVofDxwdE0bL14inIiwt5EaKRVY9ZDIG11jwdXZqiQEECJx0VfnLyUZdYfRd/znDI/MytdJoKg== + dependencies: + clean-stack "^1.3.0" + fs-extra "^7.0.0" + indent-string "^3.2.0" + strip-ansi "^5.0.0" + wrap-ansi "^4.0.0" + +"@oclif/linewrap@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@oclif/linewrap/-/linewrap-1.0.0.tgz#aedcb64b479d4db7be24196384897b5000901d91" + integrity sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw== + +"@oclif/parser@^3.8.0", "@oclif/parser@^3.8.3": + version "3.8.4" + resolved "https://registry.yarnpkg.com/@oclif/parser/-/parser-3.8.4.tgz#1a90fc770a42792e574fb896325618aebbe8c9e4" + integrity sha512-cyP1at3l42kQHZtqDS3KfTeyMvxITGwXwH1qk9ktBYvqgMp5h4vHT+cOD74ld3RqJUOZY/+Zi9lb4Tbza3BtuA== + dependencies: + "@oclif/linewrap" "^1.0.0" + chalk "^2.4.2" + tslib "^1.9.3" + +"@oclif/plugin-help@^2", "@oclif/plugin-help@^2.1.6": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-2.2.1.tgz#cb4d23e453b19340b07c48fb299948b7c74366d3" + integrity sha512-psEA3t41MSGBErLk6xCaAq2jKrRtx3Br+kHpd43vZeGEeZ7Gos4wgK0JAaHBbvhvUQskCHg8dzoqv4XEeTWeVQ== + dependencies: + "@oclif/command" "^1.5.13" + chalk "^2.4.1" + indent-string "^3.2.0" + lodash.template "^4.4.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + widest-line "^2.0.1" + wrap-ansi "^4.0.0" + +"@oclif/screen@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@oclif/screen/-/screen-1.0.4.tgz#b740f68609dfae8aa71c3a6cab15d816407ba493" + integrity sha512-60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw== + +"@oclif/test@^1.2.4": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@oclif/test/-/test-1.2.5.tgz#4d9723c38647a2a5930bf888f8c43790d74a18ca" + integrity sha512-8Y+Ix4A3Zhm87aL0ldVonDK7vFWyLfnFHzP3goYaLyIeh/60KL37lMxfmbp/kBN6/Y0Ru17iR1pdDi/hTDClLQ== + dependencies: + fancy-test "^1.4.3" + +"@octokit/endpoint@^5.1.0": + version "5.3.5" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.3.5.tgz#2822c3b01107806dbdce3863b6205e3eff4289ed" + integrity sha512-f8KqzIrnzPLiezDsZZPB+K8v8YSv6aKFl7eOu59O46lmlW4HagWl1U6NWl6LmT8d1w7NsKBI3paVtzcnRGO1gw== + dependencies: + is-plain-object "^3.0.0" + universal-user-agent "^4.0.0" + +"@octokit/plugin-enterprise-rest@^3.6.1": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-3.6.2.tgz#74de25bef21e0182b4fa03a8678cd00a4e67e561" + integrity sha512-3wF5eueS5OHQYuAEudkpN+xVeUsg8vYEMMenEzLphUZ7PRZ8OJtDcsreL3ad9zxXmBbaFWzLmFcdob5CLyZftA== + +"@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.0.4.tgz#15e1dc22123ba4a9a4391914d80ec1e5303a23be" + integrity sha512-L4JaJDXn8SGT+5G0uX79rZLv0MNJmfGa4vb4vy1NnpjSnWDLJRy6m90udGwvMmavwsStgbv2QNkPzzTCMmL+ig== + dependencies: + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.1.0.tgz#5609dcc7b5323e529f29d535214383d9eaf0c05c" + integrity sha512-I15T9PwjFs4tbWyhtFU2Kq7WDPidYMvRB7spmxoQRZfxSmiqullG+Nz+KbSmpkfnlvHwTr1e31R5WReFRKMXjg== + dependencies: + "@octokit/endpoint" "^5.1.0" + "@octokit/request-error" "^1.0.1" + deprecation "^2.0.0" + is-plain-object "^3.0.0" + node-fetch "^2.3.0" + once "^1.4.0" + universal-user-agent "^4.0.0" + +"@octokit/rest@^16.28.4": + version "16.28.9" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.9.tgz#ac8c5f3ff305e9e0a0989a5245e4286f057a95d7" + integrity sha512-IKGnX+Tvzt7XHhs8f4ajqxyJvYAMNX5nWfoJm4CQj8LZToMiaJgutf5KxxpxoC3y5w7JTJpW5rnWnF4TsIvCLA== + dependencies: + "@octokit/request" "^5.0.0" + "@octokit/request-error" "^1.0.2" + atob-lite "^2.0.0" + before-after-hook "^2.0.0" + btoa-lite "^1.0.0" + deprecation "^2.0.0" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + lodash.uniq "^4.5.0" + octokit-pagination-methods "^1.1.0" + once "^1.4.0" + universal-user-agent "^4.0.0" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + +"@salesforce/dev-config@^1.4.4": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@salesforce/dev-config/-/dev-config-1.5.0.tgz#6a7a63a4b2a9fb27811c456d3a3387d961f8b637" + integrity sha512-Y3CMWosC0YdCaIHSv8g+FnlG89qZPQksNZSNMtiD3XyC5mO6wjE3KZF103dBVhtAsH/j3d9NIne1PJX2x1RmJw== + dependencies: + tslint "^5.18.0" + tslint-microsoft-contrib "^5.2.1" + typescript "~3.1.6" + +"@salesforce/dev-scripts@0.3.12": + version "0.3.12" + resolved "https://registry.yarnpkg.com/@salesforce/dev-scripts/-/dev-scripts-0.3.12.tgz#0139478e0e792154a5e2bf0a1c03c06dab0c0b9d" + integrity sha512-bL2hFZ2Ac0cm0Av3LtlugQNiNlCSCeZPUThy6JJtB5A9de9mgEovMa1GyDxKCOOGPGJ3hk2JuToHaJVWiq9T3g== + dependencies: + "@commitlint/cli" "^7" + "@commitlint/config-conventional" "^7" + "@salesforce/dev-config" "^1.4.4" + "@types/chai" "^4" + "@types/mocha" "^5" + "@types/node" "^10" + "@types/sinon" "^4" + chai "^4" + chalk "2.4.1" + lodash-cli "^4" + mocha "^5" + nyc "^13" + prettier "^1" + pretty-quick "^1" + shelljs "0.8.2" + sinon "^5" + source-map-support "0.5.6" + ts-node "^7" + tslint "^5" + typedoc "0.13.0" + typedoc-plugin-external-module-name "1.1.3" + xunit-file "^1" + +"@salesforce/kit@^1.0.4": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@salesforce/kit/-/kit-1.2.1.tgz#123f0edad6a934848db054f51d6524a1e8419043" + integrity sha512-ytpDL5TO4QAPcMl1flXXADMeBzARtoOZekWTMdL2O8PVdJo5Wbo9TNpJk0u6SN7qcxZvdbb6RAJpprp4qN2TZw== + dependencies: + "@salesforce/ts-types" "^1.2.1" + tslib "^1.10.0" + +"@salesforce/ts-types@^1.1.1", "@salesforce/ts-types@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@salesforce/ts-types/-/ts-types-1.2.1.tgz#1f738d0e7df55843e78d2726617b9fdd17291842" + integrity sha512-kEpyfvTRfwQFpDc1rfb6aaQbl5SDIwCksgr8ftJaooGXDVWFK9llso9cwimee+KVqTeQ6Jf4tZclcPb8I6G6sg== + dependencies: + tslib "^1.10.0" + +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" + integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== + dependencies: + any-observable "^0.3.0" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.6.0.tgz#ec7670432ae9c8eb710400d112c201a362d83393" + integrity sha512-w4/WHG7C4WWFyE5geCieFJF6MZkbW4VAriol5KlmQXpAQdxvV0p26sqNZOW6Qyw6Y0l9K4g+cHvvczR2sEEpqg== + dependencies: + type-detect "4.0.8" + +"@sinonjs/formatio@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" + integrity sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg== + dependencies: + samsam "1.3.0" + +"@sinonjs/formatio@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.1.tgz#52310f2f9bcbc67bdac18c94ad4901b95fde267e" + integrity sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ== + dependencies: + "@sinonjs/commons" "^1" + "@sinonjs/samsam" "^3.1.0" + +"@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" + integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ== + dependencies: + "@sinonjs/commons" "^1.3.0" + array-from "^2.1.1" + lodash "^4.17.15" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" + integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== + +"@steedos/cli@^1.1.5": + version "1.1.15" + resolved "https://registry.yarnpkg.com/@steedos/cli/-/cli-1.1.15.tgz#eeede083aee63fb2f3b0cb1ea860a5bbe0ba2788" + integrity sha512-g1Z15iciDuDuBbbjpyk6bTA4XgmufSkBBOHDj3uO5prapJjzypVUM4OoIPNmMWDaa+wI1Wd5keeAP7tubiUx5g== + dependencies: + "@geek/spinner" "^1.0.0" + "@oclif/command" "^1.5.10" + "@oclif/config" "^1.12.8" + "@oclif/plugin-help" "^2.1.6" + "@steedos/meteor-bundle-runner" "^1.1.5" + "@steedos/project-template-empty" "^0.0.3" + "@steedos/steedos-model-generator" "^0.5.34" + change-case "^3.1.0" + colors "^1.3.3" + fs-extra "^7.0.1" + inquirer "^6.2.2" + js-yaml "^3.12.2" + latest-version "^5.1.0" + reflect-metadata "^0.1.13" + typescript "^3.3.3333" + yargs "^13.2.1" + yn "^2.0.0" + +"@steedos/core@^0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@steedos/core/-/core-0.0.6.tgz#54a8d38971ab0fd2b933d8727f28411d6828f4ff" + integrity sha512-8NgfXq1c0Y+NNtgI9DuDuj2tK3WLePTSqX6NAxCe8MEuYJI++UOGu9t6lZGbAUZGyg2o4b1YQ/SYwNUPm5JfFw== + dependencies: + "@salesforce/dev-config" "^1.4.4" + "@salesforce/ts-types" "^1.1.1" + "@types/node" "^11.10.4" + fibers "^3.1.1" + js-yaml "3.12.2" + jsen "^0.6.6" + simpl-schema "^1.5.5" + underscore "1.5.2" + +"@steedos/core@file:packages/core": + version "1.3.23" + dependencies: + "@salesforce/dev-config" "^1.4.4" + "@salesforce/kit" "^1.0.4" + "@salesforce/ts-types" "^1.1.1" + "@steedos/auth" "^1.1.5" + "@steedos/objectql" "^1.0.13" + "@steedos/standard-objects" "^1.0.10" + "@types/express" "^4.16.1" + "@types/mongodb" "^3.1.22" + "@types/node" "^11.10.4" + "@types/underscore" "^1.8.13" + body-parser "^1.18.1" + bunyan-sfdx-no-dtrace "^1.8.2" + chai "^4.2.0" + clone "^2.1.2" + cookies "^0.6.1" + devextreme "^18.2.6" + express "^4.15.4" + express-graphql "^0.7.1" + fibers "^3.1.1" + globby "^9.1.0" + graphql "^14.1.1" + graphql-type-json "^0.2.2" + js-yaml ">=3.13.1" + jsen "^0.6.6" + mongodb "^3.0.8" + odata-v4-mongodb "^0.1.12" + pg "^7.8.2" + reflect-metadata "^0.1.10" + routing-controllers "^0.7.7" + simpl-schema "^1.5.5" + uglify-js "^3.6.0" + underscore "1.5.2" + +"@steedos/filters@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@steedos/filters/-/filters-0.0.3.tgz#e336e0861d8e586456746947442b1fd6e7f47c54" + integrity sha512-Q3oGoGRqxyZkpsC77xJowY4s72YO3TTMAazIvpc8fr/vwLOuGGCWA9ybv3e7lWlxqU0InnL8uJkqyM0cxSAu1Q== + dependencies: + devextreme "^18.2.6" + +"@steedos/meteor-bundle-dependencies@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@steedos/meteor-bundle-dependencies/-/meteor-bundle-dependencies-0.0.3.tgz#e72d2f4e139a47990c5c7d727f283af02e07d407" + integrity sha512-e1k2w94D3SHV0Q0CGtFOqPtXbImNhzU7BefnuxbzOjWq3c00JcSUt4cq7oKtd3KLGAE9nUgrjJk5UtqJqTPjiw== + dependencies: + apn "1.6.2" + arson "0.2.6" + basic-auth-connect "1.0.0" + bcryptjs "2.3.0" + cli-color "0.2.3" + combined-stream2 "1.1.2" + compression "1.7.1" + connect "3.6.5" + cookie-parser "1.4.3" + cookies "0.6.1" + core-js "2.5.7" + decimal.js "^10.0.2" + errorhandler "1.5.0" + es5-shim "4.5.10" + faye-websocket "0.11.1" + install "0.12.2" + json5 "2.1.0" + lolex "2.3.1" + meteor-babel "7.2.0" + meteor-babel-helpers "0.0.3" + meteor-deque "2.1.0" + meteor-promise "0.8.7" + mongodb "3.1.6" + mongodb-uri "0.9.7" + node-fetch "2.1.2" + node-gcm "0.14.4" + node4mailer "4.0.3" + parseurl "1.3.2" + permessage-deflate "0.1.6" + phone "1.0.3" + promise "8.0.2" + qs-middleware "1.0.3" + reify "0.17.3" + request "2.83.0" + semver "5.4.1" + send "0.16.1" + sha256 "0.2.0" + sockjs "0.3.19" + stream-buffers "0.2.5" + stream-to-string "1.1.0" + useragent "2.3.0" + uuid "3.3.2" + whatwg-fetch "2.0.4" + +"@steedos/objectql@^0.0.11": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@steedos/objectql/-/objectql-0.0.11.tgz#ae9cf1645bf474a7a841e4653a35d67739560760" + integrity sha512-8A216WhYR9ikkbE2UJA0cz9RtgkiIq7xaCz1V6rJAl5sdSxGq/PtFHthFkfVGQJ9kfr6h7yOu+gnlKfN1GIhmg== + dependencies: + "@salesforce/dev-config" "^1.4.4" + "@salesforce/kit" "^1.0.4" + "@salesforce/ts-types" "^1.1.1" + "@steedos/filters" "0.0.3" + "@steedos/odata-v4-typeorm" "^0.0.24" + "@steedos/standard-objects" "0.0.1" + "@types/express" "^4.16.1" + "@types/mongodb" "^3.1.22" + "@types/node" "^11.10.4" + "@types/underscore" "^1.8.13" + app-root-path "^2.2.1" + body-parser "^1.18.1" + bunyan-sfdx-no-dtrace "^1.8.2" + chai "^4.2.0" + clone "^2.1.2" + cookies "^0.6.1" + express "^4.15.4" + express-graphql "^0.7.1" + fibers "^3.1.1" + globby "^9.1.0" + graphql "^14.1.1" + graphql-type-json "^0.2.2" + jsen "^0.6.6" + mongodb "^3.0.8" + odata-v4-mongodb "^0.1.12" + odata-v4-sql "^0.1.2" + reflect-metadata "^0.1.10" + routing-controllers "^0.7.7" + typeorm "^0.2.16" + underscore "1.5.2" + +"@steedos/objectql@^0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@steedos/objectql/-/objectql-0.0.4.tgz#388d80564c14aceb22870b739840748ede229ebf" + integrity sha512-2u5rguD9M8WUVr5y7DifMGqfPaq3bbSMwnQMCOHhCGyQqIzeBh3AOjz/HcTZI5E9wCW0+DE4TRcsUGocK65sbg== + dependencies: + "@salesforce/dev-config" "^1.4.4" + "@salesforce/kit" "^1.0.4" + "@salesforce/ts-types" "^1.1.1" + "@steedos/filters" "0.0.3" + "@steedos/odata-v4-typeorm" "^0.0.23" + "@steedos/standard-objects" "0.0.1" + "@types/express" "^4.16.1" + "@types/mongodb" "^3.1.22" + "@types/node" "^11.10.4" + "@types/underscore" "^1.8.13" + body-parser "^1.18.1" + bunyan-sfdx-no-dtrace "^1.8.2" + chai "^4.2.0" + clone "^2.1.2" + cookies "^0.6.1" + express "^4.15.4" + express-graphql "^0.7.1" + fibers "^3.1.1" + globby "^9.1.0" + graphql "^14.1.1" + graphql-type-json "^0.2.2" + jsen "^0.6.6" + mongodb "^3.0.8" + odata-v4-mongodb "^0.1.12" + odata-v4-sql "^0.1.2" + reflect-metadata "^0.1.10" + routing-controllers "^0.7.7" + typeorm "^0.2.16" + underscore "1.5.2" + +"@steedos/objectql@file:packages/objectql": + version "1.0.13" + dependencies: + "@salesforce/dev-config" "^1.4.4" + "@salesforce/kit" "^1.0.4" + "@salesforce/ts-types" "^1.1.1" + "@steedos/filters" "^1.0.0" + "@steedos/odata-v4-typeorm" "^0.0.24" + "@steedos/schemas" "^1.0.5" + "@steedos/standard-objects" "^1.0.11" + "@types/express" "^4.16.1" + "@types/mongodb" "^3.1.22" + "@types/node" "^11.10.4" + "@types/underscore" "^1.8.13" + app-root-path "^2.2.1" + body-parser "^1.18.1" + bunyan-sfdx-no-dtrace "^1.8.2" + chai "^4.2.0" + clone "^2.1.2" + cookies "^0.6.1" + express "^4.15.4" + express-graphql "^0.7.1" + fibers "^3.1.1" + globby "^9.1.0" + graphql "^14.1.1" + graphql-type-json "^0.2.2" + jsen "^0.6.6" + mongodb "^3.0.8" + odata-v4-mongodb "^0.1.12" + odata-v4-sql "^0.1.2" + reflect-metadata "^0.1.10" + routing-controllers "^0.7.7" + typeorm "^0.2.16" + underscore "1.5.2" + +"@steedos/odata-v4-typeorm@^0.0.23": + version "0.0.23" + resolved "https://registry.yarnpkg.com/@steedos/odata-v4-typeorm/-/odata-v4-typeorm-0.0.23.tgz#a6eac3163c3f39f65de44f1ae2ab291a129bc312" + integrity sha512-SyXReHk91U37oixD7N+IpOYOnAQQPuJ+AmhS/g/buKSW5blhtO6l1wj3r/qIjkivUGy3u+mp3oiFhyboa3zBQg== + dependencies: + odata-v4-parser "0.1.13" + odata-v4-sql "^0.1.2" + +"@steedos/odata-v4-typeorm@^0.0.24": + version "0.0.24" + resolved "https://registry.yarnpkg.com/@steedos/odata-v4-typeorm/-/odata-v4-typeorm-0.0.24.tgz#da14a880e5ec2b52b91f2912939b812449988e8b" + integrity sha512-L13O836n9UOZ+V8k9BGpDuAydWdU46p/LqFuonTjxGUaewAPaJW2pS4vOzSV+WMdMq55XPv3h3s5Ygh33pReXA== + dependencies: + odata-v4-parser "0.1.13" + odata-v4-sql "^0.1.2" + +"@steedos/project-template-empty@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@steedos/project-template-empty/-/project-template-empty-0.0.3.tgz#7c97c5e318341da270134291f15201bedaecde11" + integrity sha512-twyRrvSsJ0XfgHOVggB1lkXb+YzKthEDhkYNnhsciabhCuj80UgX5RndLzaND6JChFvbmEAs3G3OM/ySuYtvWA== + +"@steedos/standard-objects@0.0.1", "@steedos/standard-objects@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@steedos/standard-objects/-/standard-objects-0.0.1.tgz#9ae2ad078d0b06df9648f6d2dbfc75a6f9c37962" + integrity sha512-DsF50A3sfGF01Fcf5jNEIvlCoI66pXah2Y3oc3ODqJfa6f343KjrSmsVSMaaNdoQeqrtgjJKqr3w+C8RGUDbNA== + +"@steedos/steedos-model-generator@^0.5.34": + version "0.5.34" + resolved "https://registry.yarnpkg.com/@steedos/steedos-model-generator/-/steedos-model-generator-0.5.34.tgz#5ef4dc0fcdfad5d12b4b1befaad055f345d9b25f" + integrity sha512-Hj2ezmxvWeqBBsLZDL6YqWBKFYRaUd4tg0nRBg9MkmI5V//1tr7p7RKKUud7OPFZAprIvIMNxj6YlImGEi3xLA== + dependencies: + change-case "^3.1.0" + fs-extra "^7.0.1" + handlebars "^4.0.12" + inquirer "^6.2.2" + mssql "^4.3.2" + mysql "^2.16.0" + oracledb "^3.1.2" + pg "^7.8.1" + reflect-metadata "^0.1.13" + sqlite3 "^4.0.6" + typeorm "^0.2.13" + typescript "^3.3.3333" + yargs "^13.2.1" + yn "^2.0.0" + +"@svgr/babel-plugin-add-jsx-attribute@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1" + integrity sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig== + +"@svgr/babel-plugin-remove-jsx-attribute@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz#297550b9a8c0c7337bea12bdfc8a80bb66f85abc" + integrity sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz#c196302f3e68eab6a05e98af9ca8570bc13131c7" + integrity sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz#310ec0775de808a6a2e4fd4268c245fd734c1165" + integrity sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w== + +"@svgr/babel-plugin-svg-dynamic-title@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.1.tgz#646c2f5b5770c2fe318d6e51492344c3d62ddb63" + integrity sha512-p6z6JJroP989jHWcuraeWpzdejehTmLUpyC9smhTBWyPN0VVGe2phbYxpPTV7Vh8XzmFrcG55idrnfWn/2oQEw== + +"@svgr/babel-plugin-svg-em-dimensions@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz#9a94791c9a288108d20a9d2cc64cac820f141391" + integrity sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w== + +"@svgr/babel-plugin-transform-react-native-svg@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz#151487322843359a1ca86b21a3815fd21a88b717" + integrity sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw== + +"@svgr/babel-plugin-transform-svg-component@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz#5f1e2f886b2c85c67e76da42f0f6be1b1767b697" + integrity sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw== + +"@svgr/babel-preset@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-4.3.1.tgz#62ffcb85d756580e8ce608e9d2ac3b9063be9e28" + integrity sha512-rPFKLmyhlh6oeBv3j2vEAj2nd2QbWqpoJLKzBLjwQVt+d9aeXajVaPNEqrES2spjXKR4OxfgSs7U0NtmAEkr0Q== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^4.2.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^4.2.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^4.2.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^4.2.0" + "@svgr/babel-plugin-svg-dynamic-title" "^4.3.1" + "@svgr/babel-plugin-svg-em-dimensions" "^4.2.0" + "@svgr/babel-plugin-transform-react-native-svg" "^4.2.0" + "@svgr/babel-plugin-transform-svg-component" "^4.2.0" + +"@svgr/core@^4.1.0": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-4.3.2.tgz#939c89be670ad79b762f4c063f213f0e02535f2e" + integrity sha512-N+tP5CLFd1hP9RpO83QJPZY3NL8AtrdqNbuhRgBkjE/49RnMrrRsFm1wY8pueUfAGvzn6tSXUq29o6ah8RuR5w== + dependencies: + "@svgr/plugin-jsx" "^4.3.2" + camelcase "^5.3.1" + cosmiconfig "^5.2.1" + +"@svgr/hast-util-to-babel-ast@^4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz#1d5a082f7b929ef8f1f578950238f630e14532b8" + integrity sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg== + dependencies: + "@babel/types" "^7.4.4" + +"@svgr/plugin-jsx@^4.1.0", "@svgr/plugin-jsx@^4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-4.3.2.tgz#ce9ddafc8cdd74da884c9f7af014afcf37f93d3c" + integrity sha512-+1GW32RvmNmCsOkMoclA/TppNjHPLMnNZG3/Ecscxawp051XJ2MkO09Hn11VcotdC2EPrDfT8pELGRo+kbZ1Eg== + dependencies: + "@babel/core" "^7.4.5" + "@svgr/babel-preset" "^4.3.1" + "@svgr/hast-util-to-babel-ast" "^4.3.2" + svg-parser "^2.0.0" + +"@svgr/plugin-svgo@^4.0.3": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz#daac0a3d872e3f55935c6588dd370336865e9e32" + integrity sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w== + dependencies: + cosmiconfig "^5.2.1" + merge-deep "^3.0.2" + svgo "^1.2.2" + +"@svgr/webpack@4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-4.1.0.tgz#20c88f32f731c7b1d4711045b2b993887d731c28" + integrity sha512-d09ehQWqLMywP/PT/5JvXwPskPK9QCXUjiSkAHehreB381qExXf5JFCBWhfEyNonRbkIneCeYM99w+Ud48YIQQ== + dependencies: + "@babel/core" "^7.1.6" + "@babel/plugin-transform-react-constant-elements" "^7.0.0" + "@babel/preset-env" "^7.1.6" + "@babel/preset-react" "^7.0.0" + "@svgr/core" "^4.1.0" + "@svgr/plugin-jsx" "^4.1.0" + "@svgr/plugin-svgo" "^4.0.3" + loader-utils "^1.1.0" + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@types/body-parser@*": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.1.tgz#18fcf61768fb5c30ccc508c21d6fd2e8b3bf7897" + integrity sha512-RoX2EZjMiFMjZh9lmYrwgoP9RTpAjSHiJxdp4oidAQVO02T7HER3xj9UKue5534ULWeqVEkujhWcyvUce+d68w== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bson@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/bson/-/bson-4.0.0.tgz#9073772679d749116eb1dfca56f8eaac6d59cc7a" + integrity sha512-pq/rqJwJWkbS10crsG5bgnrisL8pML79KlMKQMoQwLUjlPAkrUHMvHJ3oGwE7WHR61Lv/nadMwXVAD2b+fpD8Q== + dependencies: + "@types/node" "*" + +"@types/chai-as-promised@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.0.tgz#010b04cde78eacfb6e72bfddb3e58fe23c2e78b9" + integrity sha512-MFiW54UOSt+f2bRw8J7LgQeIvE/9b4oGvwU7XW30S9QGAiHGnU/fmiOprsyMkdmH2rl8xSPc0/yrQw8juXU6bQ== + dependencies: + "@types/chai" "*" + +"@types/chai-subset@^1.3.2": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" + integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw== + dependencies: + "@types/chai" "*" + +"@types/chai@*", "@types/chai@^4", "@types/chai@^4.1.7": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.1.tgz#de162553aceca778d989929d821c5d4942921ebc" + integrity sha512-LDKlQW/V8bQr5p9aoHye9p7x9faxq0GVeWAkn/Zgyyn848LIAzuR1sHQjGmUBFUpINuGWDG2NTM/ofA2aLMIew== + +"@types/connect@*": + version "3.4.32" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" + integrity sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg== + dependencies: + "@types/node" "*" + +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/express-serve-static-core@*": + version "4.16.9" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.9.tgz#69e00643b0819b024bdede95ced3ff239bb54558" + integrity sha512-GqpaVWR0DM8FnRUJYKlWgyARoBUAVfRIeVDZQKOttLFp5SmhhF9YFIYeTPwMd/AXfxlP7xVO2dj1fGu0Q+krKQ== + dependencies: + "@types/node" "*" + "@types/range-parser" "*" + +"@types/express@^4.16.1": + version "4.17.1" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.1.tgz#4cf7849ae3b47125a567dfee18bfca4254b88c5c" + integrity sha512-VfH/XCP0QbQk5B5puLqTLEeFgR8lfCJHZJKkInZ9mkYd+u8byX0kztXEQxEk4wZXJs8HI+7km2ALXjn4YKcX9w== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/serve-static" "*" + +"@types/fs-extra@^5.0.3", "@types/fs-extra@^5.0.5": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.1.0.tgz#2a325ef97901504a3828718c390d34b8426a10a1" + integrity sha512-AInn5+UBFIK9FK5xc9yP5e3TQSPNNgjHByqYcj9g5elVBnDQcQL7PlO1CIRy2gWlbwK7UPYqi7vRvFA44dCmYQ== + dependencies: + "@types/node" "*" + +"@types/glob@*", "@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/handlebars@^4.0.38", "@types/handlebars@^4.0.40": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@types/handlebars/-/handlebars-4.1.0.tgz#3fcce9bf88f85fe73dc932240ab3fb682c624850" + integrity sha512-gq9YweFKNNB1uFK71eRqsd4niVkXrxHugqWFQkeLRJvGjnxsLr16bYtcsG4tOFwmYi0Bax+wCkbf1reUfdl4kA== + dependencies: + handlebars "*" + +"@types/highlight.js@^9.12.3": + version "9.12.3" + resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.3.tgz#b672cfaac25cbbc634a0fd92c515f66faa18dbca" + integrity sha512-pGF/zvYOACZ/gLGWdQH8zSwteQS1epp68yRcVLJMgUck/MjEn/FBYmPub9pXT8C1e4a8YZfHo1CKyV8q1vKUnQ== + +"@types/inquirer@0.0.44": + version "0.0.44" + resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-0.0.44.tgz#60ce954581cfdf44ad3899ec4cdc5fbe3fef1694" + integrity sha512-ugbhy1yBtCz5iTWYF+AGRS/UcMcWicdyHhxl9VaeFYc3ueg0CCssthQLB3rIcIOeGtfG6WPEvHdLu/IjKYfefg== + dependencies: + "@types/rx" "*" + "@types/through" "*" + +"@types/lodash@*", "@types/lodash@^4.14.110": + version "4.14.138" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.138.tgz#34f52640d7358230308344e579c15b378d91989e" + integrity sha512-A4uJgHz4hakwNBdHNPdxOTkYmXNgmUAKLbXZ7PKGslgeV0Mb8P3BlbYfPovExek1qnod4pDfRbxuzcVs3dlFLg== + +"@types/long@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" + integrity sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q== + +"@types/marked@^0.4.0": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@types/marked/-/marked-0.4.2.tgz#64a89e53ea37f61cc0f3ee1732c555c2dbf6452f" + integrity sha512-cDB930/7MbzaGF6U3IwSQp6XBru8xWajF5PV2YZZeV8DyiliTuld11afVztGI9+yJZ29il5E+NpGA6ooV/Cjkg== + +"@types/mime@*": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" + integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== + +"@types/minimatch@*", "@types/minimatch@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/mocha@*", "@types/mocha@^5", "@types/mocha@^5.2.6": + version "5.2.7" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" + integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== + +"@types/mongodb@^3.1.22": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@types/mongodb/-/mongodb-3.3.1.tgz#9569ffcb356fbb5313ae2d3afa88c230bf8cf0d1" + integrity sha512-Va7o1fN3zeabmIJSQ6yuAWkqPvrT38HSTIi4YbVOb2UL7FJ4diXrWt+OUuuEFWAVPtF9VZV5h+7LDYdzgXWgQA== + dependencies: + "@types/bson" "*" + "@types/node" "*" + +"@types/nock@*": + version "10.0.3" + resolved "https://registry.yarnpkg.com/@types/nock/-/nock-10.0.3.tgz#dab1d18ffbccfbf2db811dab9584304eeb6e1c4c" + integrity sha512-OthuN+2FuzfZO3yONJ/QVjKmLEuRagS9TV9lEId+WHL9KhftYG+/2z+pxlr0UgVVXSpVD8woie/3fzQn8ft/Ow== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "12.7.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.4.tgz#64db61e0359eb5a8d99b55e05c729f130a678b04" + integrity sha512-W0+n1Y+gK/8G2P/piTkBBN38Qc5Q1ZSO6B5H3QmPCUewaiXOo2GCAWZ4ElZCcNhjJuBSUSLGFUJnmlCn5+nxOQ== + +"@types/node@^10", "@types/node@^10.1.0": + version "10.14.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.17.tgz#b96d4dd3e427382482848948041d3754d40fd5ce" + integrity sha512-p/sGgiPaathCfOtqu2fx5Mu1bcjuP8ALFg4xpGgNkcin7LwRyzUKniEHBKdcE1RPsenq5JVPIpMTJSygLboygQ== + +"@types/node@^11.10.4": + version "11.13.20" + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.13.20.tgz#da42fe93d6599f80b35ffeb5006f4c31f40d89ea" + integrity sha512-JE0UpLWZTV1sGcaj0hN+Q0760OEjpgyFJ06DOMVW6qKBducKdJQaIw0TGL6ccj7VXRduIOHLWQi+tHwulZJHVQ== + +"@types/node@^8.0.47": + version "8.10.53" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.53.tgz#5fa08eef810b08b2c03073e360b54f7bad899db1" + integrity sha512-aOmXdv1a1/vYUn1OT1CED8ftbkmmYbKhKGSyMDeJiidLvKRKvZUQOdXwG/wcNY7T1Qb0XTlVdiYjIq00U7pLrQ== + +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + +"@types/range-parser@*": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" + integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== + +"@types/rx-core-binding@*": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/rx-core-binding/-/rx-core-binding-4.0.4.tgz#d969d32f15a62b89e2862c17b3ee78fe329818d3" + integrity sha512-5pkfxnC4w810LqBPUwP5bg7SFR/USwhMSaAeZQQbEHeBp57pjKXRlXmqpMrLJB4y1oglR/c2502853uN0I+DAQ== + dependencies: + "@types/rx-core" "*" + +"@types/rx-core@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-core/-/rx-core-4.0.3.tgz#0b3354b1238cedbe2b74f6326f139dbc7a591d60" + integrity sha1-CzNUsSOM7b4rdPYybxOdvHpZHWA= + +"@types/rx-lite-aggregates@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-aggregates/-/rx-lite-aggregates-4.0.3.tgz#6efb2b7f3d5f07183a1cb2bd4b1371d7073384c2" + integrity sha512-MAGDAHy8cRatm94FDduhJF+iNS5//jrZ/PIfm+QYw9OCeDgbymFHChM8YVIvN2zArwsRftKgE33QfRWvQk4DPg== + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-async@*": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/rx-lite-async/-/rx-lite-async-4.0.2.tgz#27fbf0caeff029f41e2d2aae638b05e91ceb600c" + integrity sha512-vTEv5o8l6702ZwfAM5aOeVDfUwBSDOs+ARoGmWAKQ6LOInQ8J4/zjM7ov12fuTpktUKdMQjkeCp07Vd73mPkxw== + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-backpressure@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-backpressure/-/rx-lite-backpressure-4.0.3.tgz#05abb19bdf87cc740196c355e5d0b37bb50b5d56" + integrity sha512-Y6aIeQCtNban5XSAF4B8dffhIKu6aAy/TXFlScHzSxh6ivfQBQw6UjxyEJxIOt3IT49YkS+siuayM2H/Q0cmgA== + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-coincidence@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-coincidence/-/rx-lite-coincidence-4.0.3.tgz#80bd69acc4054a15cdc1638e2dc8843498cd85c0" + integrity sha512-1VNJqzE9gALUyMGypDXZZXzR0Tt7LC9DdAZQ3Ou/Q0MubNU35agVUNXKGHKpNTba+fr8GdIdkC26bRDqtCQBeQ== + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-experimental@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/rx-lite-experimental/-/rx-lite-experimental-4.0.1.tgz#c532f5cbdf3f2c15da16ded8930d1b2984023cbd" + integrity sha1-xTL1y98/LBXaFt7Ykw0bKYQCPL0= + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-joinpatterns@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/rx-lite-joinpatterns/-/rx-lite-joinpatterns-4.0.1.tgz#f70fe370518a8432f29158cc92ffb56b4e4afc3e" + integrity sha1-9w/jcFGKhDLykVjMkv+1a05K/D4= + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-testing@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/rx-lite-testing/-/rx-lite-testing-4.0.1.tgz#21b19d11f4dfd6ffef5a9d1648e9c8879bfe21e9" + integrity sha1-IbGdEfTf1v/vWp0WSOnIh5v+Iek= + dependencies: + "@types/rx-lite-virtualtime" "*" + +"@types/rx-lite-time@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-time/-/rx-lite-time-4.0.3.tgz#0eda65474570237598f3448b845d2696f2dbb1c4" + integrity sha512-ukO5sPKDRwCGWRZRqPlaAU0SKVxmWwSjiOrLhoQDoWxZWg6vyB9XLEZViKOzIO6LnTIQBlk4UylYV0rnhJLxQw== + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite-virtualtime@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/rx-lite-virtualtime/-/rx-lite-virtualtime-4.0.3.tgz#4b30cacd0fe2e53af29f04f7438584c7d3959537" + integrity sha512-3uC6sGmjpOKatZSVHI2xB1+dedgml669ZRvqxy+WqmGJDVusOdyxcKfyzjW0P3/GrCiN4nmRkLVMhPwHCc5QLg== + dependencies: + "@types/rx-lite" "*" + +"@types/rx-lite@*": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/rx-lite/-/rx-lite-4.0.6.tgz#3c02921c4244074234f26b772241bcc20c18c253" + integrity sha512-oYiDrFIcor9zDm0VDUca1UbROiMYBxMLMaM6qzz4ADAfOmA9r1dYEcAFH+2fsPI5BCCjPvV9pWC3X3flbrvs7w== + dependencies: + "@types/rx-core" "*" + "@types/rx-core-binding" "*" + +"@types/rx@*": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@types/rx/-/rx-4.1.1.tgz#598fc94a56baed975f194574e0f572fd8e627a48" + integrity sha1-WY/JSla67ZdfGUV04PVy/Y5iekg= + dependencies: + "@types/rx-core" "*" + "@types/rx-core-binding" "*" + "@types/rx-lite" "*" + "@types/rx-lite-aggregates" "*" + "@types/rx-lite-async" "*" + "@types/rx-lite-backpressure" "*" + "@types/rx-lite-coincidence" "*" + "@types/rx-lite-experimental" "*" + "@types/rx-lite-joinpatterns" "*" + "@types/rx-lite-testing" "*" + "@types/rx-lite-time" "*" + "@types/rx-lite-virtualtime" "*" + +"@types/serve-static@*": + version "1.13.3" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1" + integrity sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g== + dependencies: + "@types/express-serve-static-core" "*" + "@types/mime" "*" + +"@types/shelljs@^0.8.0": + version "0.8.5" + resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.5.tgz#1e507b2f6d1f893269bd3e851ec24419ef9beeea" + integrity sha512-bZgjwIWu9gHCjirKJoOlLzGi5N0QgZ5t7EXEuoqyWCHTuSddURXo3FOBYDyRPNOWzZ6NbkLvZnVkn483Y/tvcQ== + dependencies: + "@types/glob" "*" + "@types/node" "*" + +"@types/sinon@*", "@types/sinon@^7.0.8": + version "7.0.13" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.0.13.tgz#ca039c23a9e27ebea53e0901ef928ea2a1a6d313" + integrity sha512-d7c/C/+H/knZ3L8/cxhicHUiTDxdgap0b/aNJfsmLwFu/iOP17mdgbQsbHA3SJmrzsjD0l3UEE5SN4xxuz5ung== + +"@types/sinon@^4": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-4.3.3.tgz#97cbbfddc3282b5fd40c7abf80b99db426fd4237" + integrity sha512-Tt7w/ylBS/OEAlSCwzB0Db1KbxnkycP/1UkQpbvKFYoUuRn4uYsC3xh5TRPrOjTy0i8TIkSz1JdNL4GPVdf3KQ== + +"@types/tapable@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.2.tgz#e13182e1b69871a422d7863e11a4a6f5b814a4bd" + integrity sha512-42zEJkBpNfMEAvWR5WlwtTH22oDzcMjFsL9gDGExwF8X8WvAiw7Vwop7hPw03QT8TKfec83LwbHj6SvpqM4ELQ== + +"@types/through@*": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.29.tgz#72943aac922e179339c651fa34a4428a4d722f93" + integrity sha512-9a7C5VHh+1BKblaYiq+7Tfc+EOmjMdZaD1MYtkQjSoxgB69tBjW98ry6SKsi4zEIWztLOMRuL87A3bdT/Fc/4w== + dependencies: + "@types/node" "*" + +"@types/underscore@^1.8.13": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@types/underscore/-/underscore-1.9.2.tgz#2c4f7743287218f5c2d9a83db3806672aa48530d" + integrity sha512-KgOKTAD+9X+qvZnB5S1+onqKc4E+PZ+T6CM/NA5ohRPLHJXb+yCJMVf8pWOnvuBuKFNUAJW8N97IA6lba6mZGg== + +"@types/yargs@^12.0.1": + version "12.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" + integrity sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw== + +"@webassemblyjs/ast@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace" + integrity sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA== + dependencies: + "@webassemblyjs/helper-module-context" "1.7.11" + "@webassemblyjs/helper-wasm-bytecode" "1.7.11" + "@webassemblyjs/wast-parser" "1.7.11" + +"@webassemblyjs/floating-point-hex-parser@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313" + integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg== + +"@webassemblyjs/helper-api-error@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a" + integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg== + +"@webassemblyjs/helper-buffer@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b" + integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w== + +"@webassemblyjs/helper-code-frame@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b" + integrity sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw== + dependencies: + "@webassemblyjs/wast-printer" "1.7.11" + +"@webassemblyjs/helper-fsm@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181" + integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A== + +"@webassemblyjs/helper-module-context@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209" + integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg== + +"@webassemblyjs/helper-wasm-bytecode@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06" + integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ== + +"@webassemblyjs/helper-wasm-section@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a" + integrity sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/helper-buffer" "1.7.11" + "@webassemblyjs/helper-wasm-bytecode" "1.7.11" + "@webassemblyjs/wasm-gen" "1.7.11" + +"@webassemblyjs/ieee754@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b" + integrity sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63" + integrity sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw== + dependencies: + "@xtuc/long" "4.2.1" + +"@webassemblyjs/utf8@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82" + integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA== + +"@webassemblyjs/wasm-edit@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005" + integrity sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/helper-buffer" "1.7.11" + "@webassemblyjs/helper-wasm-bytecode" "1.7.11" + "@webassemblyjs/helper-wasm-section" "1.7.11" + "@webassemblyjs/wasm-gen" "1.7.11" + "@webassemblyjs/wasm-opt" "1.7.11" + "@webassemblyjs/wasm-parser" "1.7.11" + "@webassemblyjs/wast-printer" "1.7.11" + +"@webassemblyjs/wasm-gen@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8" + integrity sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/helper-wasm-bytecode" "1.7.11" + "@webassemblyjs/ieee754" "1.7.11" + "@webassemblyjs/leb128" "1.7.11" + "@webassemblyjs/utf8" "1.7.11" + +"@webassemblyjs/wasm-opt@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7" + integrity sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/helper-buffer" "1.7.11" + "@webassemblyjs/wasm-gen" "1.7.11" + "@webassemblyjs/wasm-parser" "1.7.11" + +"@webassemblyjs/wasm-parser@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a" + integrity sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/helper-api-error" "1.7.11" + "@webassemblyjs/helper-wasm-bytecode" "1.7.11" + "@webassemblyjs/ieee754" "1.7.11" + "@webassemblyjs/leb128" "1.7.11" + "@webassemblyjs/utf8" "1.7.11" + +"@webassemblyjs/wast-parser@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c" + integrity sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/floating-point-hex-parser" "1.7.11" + "@webassemblyjs/helper-api-error" "1.7.11" + "@webassemblyjs/helper-code-frame" "1.7.11" + "@webassemblyjs/helper-fsm" "1.7.11" + "@xtuc/long" "4.2.1" + +"@webassemblyjs/wast-printer@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813" + integrity sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/wast-parser" "1.7.11" + "@xtuc/long" "4.2.1" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" + integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g== + +"@zkochan/cmd-shim@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" + integrity sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg== + dependencies: + is-windows "^1.0.0" + mkdirp-promise "^5.0.1" + mz "^2.5.0" + +JSONStream@^1.0.4, JSONStream@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abab@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.1.tgz#3fa17797032b71410ec372e11668f4b4ffc86a82" + integrity sha512-1zSbbCuoIjafKZ3mblY5ikvAb0ODUbqBnFuUb7f6uLeQhhGJ0vEV4ntmtxKLT2WgXCO94E07BjunsIw1jOMPZw== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abbrev@1.0.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + integrity sha1-kbR5JYinc4wl813W9jdSovh3YTU= + +accepts@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.1.4.tgz#d71c96f7d41d0feda2c38cd14e8a27c04158df4a" + integrity sha1-1xyW99QdD+2iw4zRToonwEFY30o= + dependencies: + mime-types "~2.0.4" + negotiator "0.4.9" + +accepts@^1.3.5, accepts@~1.3.3, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-dynamic-import@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" + integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg== + dependencies: + acorn "^5.0.0" + +acorn-globals@^4.1.0: + version "4.3.3" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.3.tgz#a86f75b69680b8780d30edd21eee4e0ea170c05e" + integrity sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-jsx@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f" + integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw== + +acorn-node@^1.2.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn-walk@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.0.0.tgz#c8ba6f0f1aac4b0a9e32d1f0af12be769528f36b" + integrity sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg== + +acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + +acorn@^6.0.1, acorn@^6.0.7: + version "6.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" + integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== + +acorn@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.0.0.tgz#26b8d1cd9a9b700350b71c0905546f64d1284e7a" + integrity sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ== + +adal-node@^0.1.22: + version "0.1.28" + resolved "https://registry.yarnpkg.com/adal-node/-/adal-node-0.1.28.tgz#468c4bb3ebbd96b1270669f4b9cba4e0065ea485" + integrity sha1-RoxLs+u9lrEnBmn0ucuk4AZepIU= + dependencies: + "@types/node" "^8.0.47" + async ">=0.6.0" + date-utils "*" + jws "3.x.x" + request ">= 2.52.0" + underscore ">= 1.3.1" + uuid "^3.1.0" + xmldom ">= 0.1.x" + xpath.js "~1.1.0" + +address@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" + integrity sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg== + +address@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +adler-32@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/adler-32/-/adler-32-1.2.0.tgz#6a3e6bf0a63900ba15652808cb15c6813d1a5f25" + integrity sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU= + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + +after@0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" + integrity sha1-q11PuIP1loFtNRX495HAr0ht1ic= + +agent-base@4, agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" + +agent-base@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" + integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== + dependencies: + humanize-ms "^1.2.1" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY= + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.1.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.3, ajv@^6.5.5, ajv@^6.9.1: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +aliyun-sdk@^1.11.12: + version "1.12.2" + resolved "https://registry.yarnpkg.com/aliyun-sdk/-/aliyun-sdk-1.12.2.tgz#a98d8470666012f6b0b4b9224a9357a2dd649a3a" + integrity sha512-BswRQVQ+E7tqJA2vmTbi0D5mAxa7PC/gG3WYyoiyL+wfalAs69E2e2cCLxX9bLM6WYSQ6ogXhtQq2OgZhFOy1w== + dependencies: + cucumber "^5.1.0" + jasmine-node "^3.0.0" + jshint "^2.10.2" + node_memcached "1.1.3" + pomelo-protobuf "^0.4.0" + protobufjs ">=5.0.3" + semver "^6.3.0" + xml2js "0.4.4" + xmlbuilder "^13.0.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= + dependencies: + string-width "^2.0.0" + +ansi-colors@3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" + integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== + +ansi-colors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" + integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== + dependencies: + ansi-wrap "^0.1.0" + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-escapes@^3.0.0, ansi-escapes@^3.1.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.0.0, ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-wrap@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= + +ansicolors@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk= + +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +apn@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/apn/-/apn-1.6.2.tgz#c074d41220bdb7e6a19502075d4feba1968383f3" + integrity sha1-wHTUEiC9t+ahlQIHXU/roZaDg/M= + dependencies: + q "1.x" + +app-root-path@^2.0.1, app-root-path@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a" + integrity sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA== + +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + integrity sha1-126/jKlNJ24keja61EpLdKthGZE= + dependencies: + default-require-extensions "^1.0.0" + +append-transform@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" + integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw== + dependencies: + default-require-extensions "^2.0.0" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +aproba@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arg@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.1.tgz#485f8e7c390ce4c5f78257dbea80d4be11feda4c" + integrity sha512-SlmP3fEA88MBv0PypnXZ8ZfJhwmDeIE3SP71j37AiXQBXYosPV0x6uISAaHYSlSVhmHOVkomen0tbGk6Anlebw== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argv@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" + integrity sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas= + +aria-query@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" + integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= + dependencies: + ast-types-flow "0.0.7" + commander "^2.11.0" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-differ@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" + integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-from@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= + +array-parallel@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/array-parallel/-/array-parallel-0.1.3.tgz#8f785308926ed5aa478c47e64d1b334b6c0c947d" + integrity sha1-j3hTCJJu1apHjEfmTRszS2wMlH0= + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= + +array-series@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/array-series/-/array-series-0.1.5.tgz#df5d37bfc5c2ef0755e2aa4f92feae7d4b5a972f" + integrity sha1-3103v8XC7wdV4qpPkv6ufUtaly8= + +array-union@^1.0.1, array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arraybuffer.slice@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + integrity sha1-8zshWfBTKj8xB6JywMz70a0peco= + +arrify@^1.0.0, arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +arson@0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/arson/-/arson-0.2.6.tgz#0a487ebcbbb1db1a3d5889821d44478ecd054cd1" + integrity sha512-wVRnIfjOaCWu3jrf3j1CU/eotDf7tuM34cBswo32EwyLPaMiaWgETfROdYVv47VWEbWSOaZaDnkypGQtQduLbw== + +asap@^2.0.0, asap@~2.0.3, asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@0.1.11: + version "0.1.11" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" + integrity sha1-VZvhg3bQik7E2+gId9J4GGObLfc= + +asn1@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert-plus@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" + integrity sha1-7nQAlBMALYTOxyGcasgRgS5yMWA= + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + integrity sha1-104bh+ev/A24qttwIfP+SBAasjQ= + +assert@^1.1.1, assert@^1.4.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assertion-error-formatter@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error-formatter/-/assertion-error-formatter-2.0.1.tgz#6bbdffaec8e2fa9e2b0eb158bfe353132d7c0a9b" + integrity sha512-cjC3jUCh9spkroKue5PDSKH5RFQ/KNuZJhk3GwHYmB/8qqETxLOmMdLH+ohi/VukNzxDlMvIe7zScvLoOdhb6Q== + dependencies: + diff "^3.0.0" + pad-right "^0.2.2" + repeat-string "^1.6.1" + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types-flow@0.0.7, ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@1.x, async@^1.5.0, async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + +async@>=0.6.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.1.0.tgz#42b3b12ae1b74927b5217d8c0016baaf62463772" + integrity sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ== + +async@^2.1.4: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +async@~0.2.6: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E= + +async@~0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob-lite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" + integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +auth0-js@^9.10.1, auth0-js@^9.11.2: + version "9.11.3" + resolved "https://registry.yarnpkg.com/auth0-js/-/auth0-js-9.11.3.tgz#a19add9f5c47d155b7a6f87a6dd2b197a9a43860" + integrity sha512-86EGbaXPHBuyYPPPpvkckH7rCnEgS14DHsK64v2tb4ph4NsZ+peW6pjwBHkOdz4Ytd/ibhGTYCEbA9xdHWSqiA== + dependencies: + base64-js "^1.3.0" + idtoken-verifier "^1.4.1" + js-cookie "^2.2.0" + qs "^6.7.0" + superagent "^3.8.3" + url-join "^4.0.1" + winchan "^0.2.2" + +auth0-lock@^11.14.1: + version "11.17.2" + resolved "https://registry.yarnpkg.com/auth0-lock/-/auth0-lock-11.17.2.tgz#a8cae2c37eed9b9dd0f7053b0d1fc5dca80b6a88" + integrity sha512-ux2RyhJkBleRIX6LpSvU8VeRoI2CTZTYsmiaqFHw/b9AQyQsMFjPkUJmFavgr/lhCDA96HRHmh3wmNVIfuq07A== + dependencies: + auth0-js "^9.11.2" + auth0-password-policies "^1.0.2" + blueimp-md5 "2.3.1" + immutable "^3.7.3" + jsonp "^0.2.1" + password-sheriff "^1.1.0" + prop-types "^15.6.0" + qs "^6.7.0" + react "^15.6.2" + react-dom "^15.6.2" + react-transition-group "^2.2.1" + trim "0.0.1" + url-join "^1.1.0" + +auth0-password-policies@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/auth0-password-policies/-/auth0-password-policies-1.0.2.tgz#b5ba7454254f0dc51067b37c674bc09b0f96ba30" + integrity sha512-ZshousKt+Wfv/iIBS3oQfOsH8NBF9IbL15qd2Qur8YfiQrRjrAT0T7VaesnrytYEHEXkUbHcdxWEAlyr16w20A== + dependencies: + password-sheriff "^1.1.0" + +autoprefixer@^9.4.2: + version "9.6.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz#51967a02d2d2300bb01866c1611ec8348d355a47" + integrity sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw== + dependencies: + browserslist "^4.6.3" + caniuse-lite "^1.0.30000980" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.17" + postcss-value-parser "^4.0.0" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + integrity sha1-FDQt0428yU0OW4fXY81jYSwOeU8= + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws-sign@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/aws-sign/-/aws-sign-0.3.0.tgz#3d81ca69b474b1e16518728b51c24ff0bbedc6e9" + integrity sha1-PYHKabR0seFlGHKLUcJP8Lvtxuk= + +aws4@^1.2.1, aws4@^1.6.0, aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + +axobject-query@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" + integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== + dependencies: + ast-types-flow "0.0.7" + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== + +babel-core@^6.0.0, babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-eslint@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-9.0.0.tgz#7d9445f81ed9f60aff38115f838970df9f2b6220" + integrity sha512-itv1MwE3TMbY0QtNfeL7wzak1mV47Uy+n6HtSOO4Xd7rvmO+tsGQSgyOEEgo6Y2vHZKZphaoelNeSVj4vkLA1g== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + eslint-scope "3.7.1" + eslint-visitor-keys "^1.0.0" + +babel-extract-comments@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" + integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ== + dependencies: + babylon "^6.18.0" + +babel-generator@^6.18.0, babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-evaluate-path@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz#a62fa9c4e64ff7ea5cea9353174ef023a900a67c" + integrity sha512-mUh0UhS607bGh5wUMAQfOpt2JX2ThXMtppHRdRU1kL7ZLRWIXxoV2UIV1r2cAeeNeU1M5SB5/RSUgUxrK8yOkA== + +babel-helper-flip-expressions@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz#3696736a128ac18bc25254b5f40a22ceb3c1d3fd" + integrity sha1-NpZzahKKwYvCUlS19AoizrPB0/0= + +babel-helper-is-nodes-equiv@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" + integrity sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ= + +babel-helper-is-void-0@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz#7d9c01b4561e7b95dbda0f6eee48f5b60e67313e" + integrity sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4= + +babel-helper-mark-eval-scopes@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz#d244a3bef9844872603ffb46e22ce8acdf551562" + integrity sha1-0kSjvvmESHJgP/tG4izorN9VFWI= + +babel-helper-remove-or-void@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz#a4f03b40077a0ffe88e45d07010dee241ff5ae60" + integrity sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA= + +babel-helper-to-multiple-sequence-expressions@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz#a3f924e3561882d42fcf48907aa98f7979a4588d" + integrity sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA== + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-jest@23.6.0, babel-jest@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" + integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew== + dependencies: + babel-plugin-istanbul "^4.1.6" + babel-preset-jest "^23.2.0" + +babel-loader@8.0.5: + version "8.0.5" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.5.tgz#225322d7509c2157655840bba52e46b6c2f2fe33" + integrity sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw== + dependencies: + find-cache-dir "^2.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + util.promisify "^1.0.0" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-dynamic-import-node@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz#c0adfb07d95f4a4495e9aaac6ec386c4d7c2524e" + integrity sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA== + dependencies: + object.assign "^4.1.0" + +babel-plugin-dynamic-import-node@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" + integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" + integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ== + dependencies: + babel-plugin-syntax-object-rest-spread "^6.13.0" + find-up "^2.1.0" + istanbul-lib-instrument "^1.10.1" + test-exclude "^4.2.1" + +babel-plugin-jest-hoist@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" + integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc= + +babel-plugin-macros@2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.5.0.tgz#01f4d3b50ed567a67b80a30b9da066e94f4097b6" + integrity sha512-BWw0lD0kVZAXRD3Od1kMrdmfudqzDzYv2qrN3l2ISR1HVp1EgLKfbOrYV9xmY5k3qx3RIu5uPAUZZZHpo0o5Iw== + dependencies: + cosmiconfig "^5.0.5" + resolve "^1.8.1" + +babel-plugin-minify-builtins@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz#31eb82ed1a0d0efdc31312f93b6e4741ce82c36b" + integrity sha512-wpqbN7Ov5hsNwGdzuzvFcjgRlzbIeVv1gMIlICbPj0xkexnfoIDe7q+AZHMkQmAE/F9R5jkrB6TLfTegImlXag== + +babel-plugin-minify-constant-folding@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.5.0.tgz#f84bc8dbf6a561e5e350ff95ae216b0ad5515b6e" + integrity sha512-Vj97CTn/lE9hR1D+jKUeHfNy+m1baNiJ1wJvoGyOBUx7F7kJqDZxr9nCHjO/Ad+irbR3HzR6jABpSSA29QsrXQ== + dependencies: + babel-helper-evaluate-path "^0.5.0" + +babel-plugin-minify-dead-code-elimination@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.1.tgz#1a0c68e44be30de4976ca69ffc535e08be13683f" + integrity sha512-x8OJOZIrRmQBcSqxBcLbMIK8uPmTvNWPXH2bh5MDCW1latEqYiRMuUkPImKcfpo59pTUB2FT7HfcgtG8ZlR5Qg== + dependencies: + babel-helper-evaluate-path "^0.5.0" + babel-helper-mark-eval-scopes "^0.4.3" + babel-helper-remove-or-void "^0.4.3" + lodash "^4.17.11" + +babel-plugin-minify-flip-comparisons@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz#00ca870cb8f13b45c038b3c1ebc0f227293c965a" + integrity sha1-AMqHDLjxO0XAOLPB68DyJyk8llo= + dependencies: + babel-helper-is-void-0 "^0.4.3" + +babel-plugin-minify-guarded-expressions@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.4.tgz#818960f64cc08aee9d6c75bec6da974c4d621135" + integrity sha512-RMv0tM72YuPPfLT9QLr3ix9nwUIq+sHT6z8Iu3sLbqldzC1Dls8DPCywzUIzkTx9Zh1hWX4q/m9BPoPed9GOfA== + dependencies: + babel-helper-evaluate-path "^0.5.0" + babel-helper-flip-expressions "^0.4.3" + +babel-plugin-minify-infinity@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz#dfb876a1b08a06576384ef3f92e653ba607b39ca" + integrity sha1-37h2obCKBldjhO8/kuZTumB7Oco= + +babel-plugin-minify-mangle-names@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.5.0.tgz#bcddb507c91d2c99e138bd6b17a19c3c271e3fd3" + integrity sha512-3jdNv6hCAw6fsX1p2wBGPfWuK69sfOjfd3zjUXkbq8McbohWy23tpXfy5RnToYWggvqzuMOwlId1PhyHOfgnGw== + dependencies: + babel-helper-mark-eval-scopes "^0.4.3" + +babel-plugin-minify-numeric-literals@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz#8e4fd561c79f7801286ff60e8c5fd9deee93c0bc" + integrity sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw= + +babel-plugin-minify-replace@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.5.0.tgz#d3e2c9946c9096c070efc96761ce288ec5c3f71c" + integrity sha512-aXZiaqWDNUbyNNNpWs/8NyST+oU7QTpK7J9zFEFSA0eOmtUNMU3fczlTTTlnCxHmq/jYNFEmkkSG3DDBtW3Y4Q== + +babel-plugin-minify-simplify@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.1.tgz#f21613c8b95af3450a2ca71502fdbd91793c8d6a" + integrity sha512-OSYDSnoCxP2cYDMk9gxNAed6uJDiDz65zgL6h8d3tm8qXIagWGMLWhqysT6DY3Vs7Fgq7YUDcjOomhVUb+xX6A== + dependencies: + babel-helper-evaluate-path "^0.5.0" + babel-helper-flip-expressions "^0.4.3" + babel-helper-is-nodes-equiv "^0.0.1" + babel-helper-to-multiple-sequence-expressions "^0.5.0" + +babel-plugin-minify-type-constructors@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz#1bc6f15b87f7ab1085d42b330b717657a2156500" + integrity sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA= + dependencies: + babel-helper-is-void-0 "^0.4.3" + +babel-plugin-named-asset-import@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.3.tgz#9ba2f3ac4dc78b042651654f07e847adfe50667c" + integrity sha512-1XDRysF4894BUdMChT+2HHbtJYiO7zx5Be7U6bT8dISy7OdyETMGIAQBMPQCsY1YRf0xcubwnKKaDr5bk15JTA== + +babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= + +babel-plugin-transform-es2015-modules-reify@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-reify/-/babel-plugin-transform-es2015-modules-reify-0.18.0.tgz#c70e6d24f5c29f87de900b7b17730c04997af261" + integrity sha512-bwbrF9cAsMvZamg+tkfN1fazGj5uiTxhaL5fRfR5xDp2JELgY8yrEhq42czar39EBvWscX0DA6dLSeCdY+4Xuw== + dependencies: + reify "^0.18.1" + +babel-plugin-transform-inline-consecutive-adds@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz#323d47a3ea63a83a7ac3c811ae8e6941faf2b0d1" + integrity sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE= + +babel-plugin-transform-member-expression-literals@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz#37039c9a0c3313a39495faac2ff3a6b5b9d038bf" + integrity sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8= + +babel-plugin-transform-merge-sibling-variables@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz#85b422fc3377b449c9d1cde44087203532401dae" + integrity sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4= + +babel-plugin-transform-minify-booleans@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198" + integrity sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg= + +babel-plugin-transform-object-rest-spread@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-property-literals@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39" + integrity sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk= + dependencies: + esutils "^2.0.2" + +babel-plugin-transform-react-remove-prop-types@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== + +babel-plugin-transform-regexp-constructors@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz#58b7775b63afcf33328fae9a5f88fbd4fb0b4965" + integrity sha1-WLd3W2OvzzMyj66aX4j71PsLSWU= + +babel-plugin-transform-remove-console@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" + integrity sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A= + +babel-plugin-transform-remove-debugger@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz#42b727631c97978e1eb2d199a7aec84a18339ef2" + integrity sha1-QrcnYxyXl44estGZp67IShgznvI= + +babel-plugin-transform-remove-undefined@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.5.0.tgz#80208b31225766c630c97fa2d288952056ea22dd" + integrity sha512-+M7fJYFaEE/M9CXa0/IRkDbiV3wRELzA1kKQFCJ4ifhrzLKn/9VCCgj9OFmYWwBd8IB48YdgPkHYtbYq+4vtHQ== + dependencies: + babel-helper-evaluate-path "^0.5.0" + +babel-plugin-transform-simplify-comparison-operators@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz#f62afe096cab0e1f68a2d753fdf283888471ceb9" + integrity sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk= + +babel-plugin-transform-undefined-to-void@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280" + integrity sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA= + +babel-polyfill@6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-jest@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" + integrity sha1-jsegOhOPABoaj7HoETZSvxpV2kY= + dependencies: + babel-plugin-jest-hoist "^23.2.0" + babel-plugin-syntax-object-rest-spread "^6.13.0" + +babel-preset-meteor@^7.2.0: + version "7.5.5" + resolved "https://registry.yarnpkg.com/babel-preset-meteor/-/babel-preset-meteor-7.5.5.tgz#7d00f9ef5df7bee1bf3aa41791aa4ebb2e66b96c" + integrity sha512-Qdx8miwYtbadW9RiZ2WKqW9mD8A4FNbYsINFLmj4A4iq7ed9oTAqD5WbZHU8/mWYhZfn5aR4yBVb6GOt+FM/zA== + dependencies: + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-class-properties" "^7.5.5" + "@babel/plugin-proposal-object-rest-spread" "^7.5.5" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-class-properties" "^7.2.0" + "@babel/plugin-syntax-flow" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.5.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.5.5" + "@babel/plugin-transform-classes" "^7.5.5" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.5.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-flow-strip-types" "^7.4.4" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-object-super" "^7.5.5" + "@babel/plugin-transform-parameters" "^7.4.4" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.5" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.2" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.4.4" + +babel-preset-minify@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.5.1.tgz#25f5d0bce36ec818be80338d0e594106e21eaa9f" + integrity sha512-1IajDumYOAPYImkHbrKeiN5AKKP9iOmRoO2IPbIuVp0j2iuCcj0n7P260z38siKMZZ+85d3mJZdtW8IgOv+Tzg== + dependencies: + babel-plugin-minify-builtins "^0.5.0" + babel-plugin-minify-constant-folding "^0.5.0" + babel-plugin-minify-dead-code-elimination "^0.5.1" + babel-plugin-minify-flip-comparisons "^0.4.3" + babel-plugin-minify-guarded-expressions "^0.4.4" + babel-plugin-minify-infinity "^0.4.3" + babel-plugin-minify-mangle-names "^0.5.0" + babel-plugin-minify-numeric-literals "^0.4.3" + babel-plugin-minify-replace "^0.5.0" + babel-plugin-minify-simplify "^0.5.1" + babel-plugin-minify-type-constructors "^0.4.3" + babel-plugin-transform-inline-consecutive-adds "^0.4.3" + babel-plugin-transform-member-expression-literals "^6.9.4" + babel-plugin-transform-merge-sibling-variables "^6.9.4" + babel-plugin-transform-minify-booleans "^6.9.4" + babel-plugin-transform-property-literals "^6.9.4" + babel-plugin-transform-regexp-constructors "^0.4.3" + babel-plugin-transform-remove-console "^6.9.4" + babel-plugin-transform-remove-debugger "^6.9.4" + babel-plugin-transform-remove-undefined "^0.5.0" + babel-plugin-transform-simplify-comparison-operators "^6.9.4" + babel-plugin-transform-undefined-to-void "^6.9.4" + lodash "^4.17.11" + +babel-preset-react-app@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-7.0.2.tgz#d01ae973edc93b9f1015cb0236dd55889a584308" + integrity sha512-mwCk/u2wuiO8qQqblN5PlDa44taY0acq7hw6W+a70W522P7a9mIcdggL1fe5/LgAT7tqCq46q9wwhqaMoYKslQ== + dependencies: + "@babel/core" "7.2.2" + "@babel/plugin-proposal-class-properties" "7.3.0" + "@babel/plugin-proposal-decorators" "7.3.0" + "@babel/plugin-proposal-object-rest-spread" "7.3.2" + "@babel/plugin-syntax-dynamic-import" "7.2.0" + "@babel/plugin-transform-classes" "7.2.2" + "@babel/plugin-transform-destructuring" "7.3.2" + "@babel/plugin-transform-flow-strip-types" "7.2.3" + "@babel/plugin-transform-react-constant-elements" "7.2.0" + "@babel/plugin-transform-react-display-name" "7.2.0" + "@babel/plugin-transform-runtime" "7.2.0" + "@babel/preset-env" "7.3.1" + "@babel/preset-react" "7.0.0" + "@babel/preset-typescript" "7.1.0" + "@babel/runtime" "7.3.1" + babel-loader "8.0.5" + babel-plugin-dynamic-import-node "2.2.0" + babel-plugin-macros "2.5.0" + babel-plugin-transform-react-remove-prop-types "0.4.24" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@6.26.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-arraybuffer@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz#474df4a9f2da24e05df3158c3b1db3c3cd46a154" + integrity sha1-R030qfLaJOBd8xWMOx2zw81GoVQ= + +base64-js@^1.0.2, base64-js@^1.2.0, base64-js@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base64id@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f" + integrity sha1-As4P3u4M709ACA4ec+g08LG/zj8= + +base64url@3.x.x: + version "3.0.1" + resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" + integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +basic-auth-connect@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz#fdb0b43962ca7b40456a7c2bb48fe173da2d2122" + integrity sha1-/bC0OWLKe0BFanwrtI/hc9otISI= + +basic-auth@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + +basic-auth@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-0.0.1.tgz#31ddb65843f6c35c6fea7beb46a987cb8ce18924" + integrity sha1-Md22WEP2w1xv6nvrRqmHy4zhiSQ= + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bcrypt@^3.0.4, bcrypt@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-3.0.6.tgz#f607846df62d27e60d5e795612c4f67d70206eb2" + integrity sha512-taA5bCTfXe7FUjKroKky9EXpdhkVvhE5owfxfLYodbrAR1Ul3juLmIQmIQBK4L9a5BuUcE6cqmwT+Da20lF9tg== + dependencies: + nan "2.13.2" + node-pre-gyp "0.12.0" + +bcryptjs@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.3.0.tgz#5826900cfef7abaf3425c72e4d464de509b8c2ec" + integrity sha1-WCaQDP73q680JccuTUZN5Qm4wuw= + +becke-ch--regex--s0-0-v1--base--pl--lib@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz#429ceebbfa5f7e936e78d73fbdc7da7162b20e20" + integrity sha1-Qpzuu/pffpNueNc/vcfacWKyDiA= + +before-after-hook@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" + integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== + +benchmark@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-1.0.0.tgz#2f1e2fa4c359f11122aa183082218e957e390c73" + integrity sha1-Lx4vpMNZ8REiqhgwgiGOlX45DHM= + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= + dependencies: + callsite "1.0.0" + +bfj@6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz#05a3b7784fbd72cfa3c22e56002ef99336516c48" + integrity sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ== + dependencies: + bluebird "^3.5.1" + check-types "^7.3.0" + hoopy "^0.1.2" + tryer "^1.0.0" + +big-number@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/big-number/-/big-number-0.3.1.tgz#ac73020c0a59bb79eb17c2ce2db77f77d974e013" + integrity sha1-rHMCDApZu3nrF8LOLbd/d9l04BM= + +big-number@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/big-number/-/big-number-1.0.0.tgz#a0277607a0adb06492d3099546ef0d547785df18" + integrity sha512-cHUzdT+mMXd1ozht8n5ZwBlNiPO/4zCqqkyp3lF1TMPsRJLXUbQ7cKnfXRkrW475H5SOtSOP0HFeihNbpa53MQ== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bignumber.js@7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" + integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +bl@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" + integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bl@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-2.2.0.tgz#e1a574cdf528e4053019bb800b041c0ac88da493" + integrity sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bl@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-3.0.0.tgz#3611ec00579fd18561754360b21e9f784500ff88" + integrity sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A== + dependencies: + readable-stream "^3.0.1" + +blob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + integrity sha1-vPEwUspURj8w+fx+lbmkdjCpSSE= + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= + dependencies: + inherits "~2.0.0" + +bluebird@^2.6.2, bluebird@^2.8.1: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + integrity sha1-U0uQM8AiyVecVro7Plpcqvu2UOE= + +bluebird@^3.4.1, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: + version "3.5.5" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" + integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== + +blueimp-md5@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.3.1.tgz#992a6737733b9da1edd641550dc3acab2e9cfc5a" + integrity sha1-mSpnN3M7naHt1kFVDcOsqy6c/Fo= + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +body-parser@1.19.0, body-parser@^1.18.1, body-parser@^1.18.3: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +boom@0.4.x: + version "0.4.2" + resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" + integrity sha1-emNune1O/O+xnO9JR6PGffrukRs= + dependencies: + hoek "0.9.x" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + integrity sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8= + dependencies: + hoek "2.x.x" + +boom@4.x.x: + version "4.3.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + integrity sha1-T4owBctKfjiJ90kDD9JbluAdLjE= + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + integrity sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw== + dependencies: + hoek "4.x.x" + +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + integrity sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0= + dependencies: + pako "~0.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.1.tgz#42e828954b6b29a7a53e352277be429478a69062" + integrity sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A== + dependencies: + caniuse-lite "^1.0.30000929" + electron-to-chromium "^1.3.103" + node-releases "^1.1.3" + +browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.3.5, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.6: + version "4.7.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" + integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== + dependencies: + caniuse-lite "^1.0.30000989" + electron-to-chromium "^1.3.247" + node-releases "^1.1.29" + +bser@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" + integrity sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg== + dependencies: + node-int64 "^0.4.0" + +bson@^1.1.0, bson@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/bson/-/bson-1.1.1.tgz#4330f5e99104c4e751e7351859e2d408279f2f13" + integrity sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg== + +btoa-lite@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= + +buffer-from@^1.0.0, buffer-from@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-shims@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= + +buffer-stream-reader@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/buffer-stream-reader/-/buffer-stream-reader-0.1.1.tgz#ca8bf93631deedd8b8f8c3bb44991cc30951e259" + integrity sha1-yov5NjHe7di4+MO7RJkcwwlR4lk= + +buffer-writer@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" + integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0, buffer@^4.9.1: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.1.0: + version "5.4.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.2.tgz#2012872776206182480eccb2c0fba5f672a2efef" + integrity sha512-iy9koArjAFCzGnx3ZvNA6Z0clIbbFgbdWQ0mKD3hO0krOrZh8UgA6qMKcZvwLJxS+D6iVR76+5/pV56yMNYTag== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + +bunyan-sfdx-no-dtrace@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/bunyan-sfdx-no-dtrace/-/bunyan-sfdx-no-dtrace-1.8.2.tgz#10682de07fec17ed14528b166995b1f18bbd4f9a" + integrity sha1-EGgt4H/sF+0UUosWaZWx8Yu9T5o= + optionalDependencies: + dtrace-provider "~0.6" + moment "^2.10.6" + mv "~2" + safe-json-stringify "~1" + +busboy@^0.2.13: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= + dependencies: + dicer "0.2.5" + readable-stream "1.1.x" + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= + +byte-size@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" + integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^11.0.2: + version "11.3.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" + integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: + version "12.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +caching-transform@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-3.0.2.tgz#601d46b91eca87687a281e71cef99791b0efca70" + integrity sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w== + dependencies: + hasha "^3.0.0" + make-dir "^2.0.0" + package-hash "^3.0.0" + write-file-atomic "^2.4.2" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@3.0.x, camel-case@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000918, caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000989: + version "1.0.30000989" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9" + integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw== + +capture-exit@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" + integrity sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28= + dependencies: + rsvp "^3.3.3" + +capture-stack-trace@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" + integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + +cardinal@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" + integrity sha1-fMEFXYItISlU0HsIXeolHMe8VQU= + dependencies: + ansicolors "~0.3.2" + redeyed "~2.1.0" + +case-sensitive-paths-webpack-plugin@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz#3371ef6365ef9c25fa4b81c16ace0e9c7dc58c3e" + integrity sha512-u5ElzokS8A1pm9vM3/iDgTcI3xqHxuCao94Oz8etI3cf0Tio0p8izkDYbTIn09uP3yUUr6+veaE6IkjnTYS46g== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +cfb@~1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/cfb/-/cfb-1.0.8.tgz#77f213493d697d754fd9c0f5511eab5ad72d02cf" + integrity sha1-d/ITST1pfXVP2cD1UR6rWtctAs8= + dependencies: + commander "^2.14.1" + printj "~1.1.2" + +chai-as-promised@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" + integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== + dependencies: + check-error "^1.0.2" + +chai-subset@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/chai-subset/-/chai-subset-1.6.0.tgz#a5d0ca14e329a79596ed70058b6646bd6988cfe9" + integrity sha1-pdDKFOMpp5WW7XAFi2ZGvWmIz+k= + +chai@^4, chai@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + +chalk@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796" + integrity sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g== + dependencies: + ansi-styles "^3.2.0" + escape-string-regexp "^1.0.5" + supports-color "^5.2.0" + +chalk@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +change-case@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.1.0.tgz#0e611b7edc9952df2e8513b27b42de72647dd17e" + integrity sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw== + dependencies: + camel-case "^3.0.0" + constant-case "^2.0.0" + dot-case "^2.1.0" + header-case "^1.0.0" + is-lower-case "^1.1.0" + is-upper-case "^1.1.0" + lower-case "^1.1.1" + lower-case-first "^1.0.0" + no-case "^2.3.2" + param-case "^2.1.0" + pascal-case "^2.0.0" + path-case "^2.1.0" + sentence-case "^2.1.0" + snake-case "^2.1.0" + swap-case "^1.1.0" + title-case "^2.1.0" + upper-case "^1.1.1" + upper-case-first "^1.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +charenc@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +check-types@^7.3.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" + integrity sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg== + +chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.5: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1, chownr@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" + integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== + +chrome-trace-event@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== + +class-transformer@^0.1.9: + version "0.1.10" + resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.1.10.tgz#350f168ebb4c1f87edb18b98dd973681fc20fff7" + integrity sha512-QiNdUxEvTBiUtc0KiapGVHhgaqGQVEhOfL9UEBnb9xRfcwmDJT5ijIDwcwJUTwXaT/kGvZZB4JCGsiuR5adX6g== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +class-validator@^0.8.1: + version "0.8.5" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.8.5.tgz#484785acda98f68549c3a84dc1bb2f77b736dc58" + integrity sha512-84yezRo44aP4oGhvPmqj6obAFQF1NzUyfR0+f8jubzdAspO5pmjpHhBBlPf335epUskzXAFe5uo4Qf+c7SI+DA== + dependencies: + validator "9.2.0" + +clean-css@4.2.x: + version "4.2.1" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" + integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g== + dependencies: + source-map "~0.6.0" + +clean-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" + integrity sha1-jffHquUf02h06PjQW5GAvBGj/tc= + dependencies: + escape-string-regexp "^1.0.5" + +clean-stack@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-1.3.0.tgz#9e821501ae979986c46b1d66d2d432db2fd4ae31" + integrity sha1-noIVAa6XmYbEax1m0tQy2y/UrjE= + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= + +cli-color@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-0.2.3.tgz#0a25ceae5a6a1602be7f77d28563c36700274e88" + integrity sha1-CiXOrlpqFgK+f3fShWPDZwAnTog= + dependencies: + es5-ext "~0.9.2" + memoizee "~0.2.5" + +cli-cursor@^2.0.0, cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-highlight@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.1.tgz#2180223d51618b112f4509cf96e4a6c750b07e97" + integrity sha512-0y0VlNmdD99GXZHYnvrQcmHxP8Bi6T00qucGgBgGv4kJ0RyDthNnnFPupHV7PYv/OXSVk+azFbOeaW6+vGmx9A== + dependencies: + chalk "^2.3.0" + highlight.js "^9.6.0" + mz "^2.4.0" + parse5 "^4.0.0" + yargs "^13.0.0" + +cli-spinners@^1.1.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" + integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== + +cli-table3@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== + dependencies: + object-assign "^4.1.0" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + +cli-ux@^5.2.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/cli-ux/-/cli-ux-5.3.2.tgz#6f433539bf17a61eb6dbe8fb6a6cd8d7bdf3b96f" + integrity sha512-H7gFNM5FxAZ+DUGTQNZfKs6lUOPKZGCIUNsYiQ1FuoeJjo9RLnBbUUnKhQ68DqfrH6i/BRmv8edOY0EfUHD6Mg== + dependencies: + "@oclif/command" "^1.5.1" + "@oclif/errors" "^1.2.1" + "@oclif/linewrap" "^1.0.0" + "@oclif/screen" "^1.0.3" + ansi-escapes "^3.1.0" + ansi-styles "^3.2.1" + cardinal "^2.1.1" + chalk "^2.4.1" + clean-stack "^2.0.0" + extract-stack "^1.0.0" + fs-extra "^7.0.1" + hyperlinker "^1.0.0" + indent-string "^3.2.0" + is-wsl "^1.1.0" + lodash "^4.17.11" + natural-orderby "^2.0.1" + password-prompt "^1.1.2" + semver "^5.6.0" + string-width "^3.1.0" + strip-ansi "^5.1.0" + supports-color "^5.5.0" + supports-hyperlinks "^1.0.1" + treeify "^1.1.0" + tslib "^1.9.3" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + +cli@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14" + integrity sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ= + dependencies: + exit "0.1.2" + glob "^7.1.1" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone-deep@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" + integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY= + dependencies: + for-own "^0.1.3" + is-plain-object "^2.0.1" + kind-of "^3.0.2" + lazy-cache "^1.0.3" + shallow-clone "^0.1.2" + +clone-deep@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" + integrity sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ== + dependencies: + for-own "^1.0.0" + is-plain-object "^2.0.4" + kind-of "^6.0.0" + shallow-clone "^1.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" + integrity sha1-0hfR6WERjjrJpLi7oyhVU79kfNs= + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +clone@^2.1.1, clone@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +closure-compiler@0.2.12: + version "0.2.12" + resolved "https://registry.yarnpkg.com/closure-compiler/-/closure-compiler-0.2.12.tgz#6c3087cad12742c79e47f0ce50e87af91cf8e171" + integrity sha1-bDCHytEnQseeR/DOUOh6+Rz44XE= + dependencies: + google-closure-compiler "20150901.x" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +codecov@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.5.0.tgz#3d0748932f9cb41e1ad7f21fa346ef1b2b1bed47" + integrity sha512-/OsWOfIHaQIr7aeZ4pY0UC1PZT6kimoKFOFYFNb6wxo3iw12nRrh+mNGH72rnXxNsq6SGfesVPizm/6Q3XqcFQ== + dependencies: + argv "^0.0.2" + ignore-walk "^3.0.1" + js-yaml "^3.13.1" + teeny-request "^3.11.3" + urlgrey "^0.4.4" + +codepage@~1.13.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/codepage/-/codepage-1.13.1.tgz#4f19dbbe3ebc2909dc8ebfc47ea26d838715e3f8" + integrity sha512-KnY6cQlgkfBjplnQkLk3M5KEfAKa7i9SMqXp+bMuy2/bgYovvU4LDAQvkMaoScwhvozA9VUtgnbS4Z8f7zVA8w== + dependencies: + commander "~2.14.1" + exit-on-epipe "~1.0.1" + +coffeescript@~1.12.7: + version "1.12.7" + resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.12.7.tgz#e57ee4c4867cf7f606bfc4a0f2d550c0981ddd27" + integrity sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +colors@^1.1.2, colors@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== + +columnify@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= + dependencies: + strip-ansi "^3.0.0" + wcwidth "^1.0.0" + +combined-stream2@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/combined-stream2/-/combined-stream2-1.1.2.tgz#f6e14b7a015666f8c7b0a1fac506240164ac3570" + integrity sha1-9uFLegFWZvjHsKH6xQYkAWSsNXA= + dependencies: + bluebird "^2.8.1" + debug "^2.1.1" + stream-length "^1.0.1" + +combined-stream@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.4.tgz#2d1a43347dbe9515a4a2796732e5b88473840b22" + integrity sha1-LRpDNH2+lRWkonlnMuW4hHOECyI= + dependencies: + delayed-stream "0.0.5" + +combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@~1.0.5, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +combined-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + integrity sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8= + dependencies: + delayed-stream "0.0.5" + +commander@2.15.1, commander@~2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== + +commander@2.17.x, commander@~2.17.1: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commander@^2.11.0, commander@^2.12.1, commander@^2.14.1, commander@^2.19.0, commander@^2.20.0, commander@^2.9.0, commander@~2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + +commander@~2.14.1: + version "2.14.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" + integrity sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +common-tags@^1.4.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +compare-func@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" + integrity sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg= + dependencies: + array-ify "^1.0.0" + dot-prop "^3.0.0" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-emitter@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + integrity sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM= + +component-emitter@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe" + integrity sha1-zNETqGOI0GSC0D3j/H35hSa6jv4= + +component-emitter@^1.2.0, component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +compressible@~2.0.11, compressible@~2.0.16: + version "2.0.17" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== + dependencies: + mime-db ">= 1.40.0 < 2" + +compression@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.1.tgz#eff2603efc2e22cf86f35d2eb93589f9875373db" + integrity sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s= + dependencies: + accepts "~1.3.4" + bytes "3.0.0" + compressible "~2.0.11" + debug "2.6.9" + on-headers "~1.0.1" + safe-buffer "5.1.1" + vary "~1.1.2" + +compression@^1.5.2: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +config-chain@^1.1.11: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" + integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +confusing-browser-globals@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.8.tgz#93ffec1f82a6e2bf2bc36769cc3a92fa20e502f3" + integrity sha512-lI7asCibVJ6Qd3FGU7mu4sfG4try4LX3+GVS+Gv8UlrEf2AeW57piecapnog2UHZSbcX/P/1UDWVaTsblowlZg== + +connect-history-api-fallback@^1.3.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +connect-route@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/connect-route/-/connect-route-0.1.5.tgz#e3c218319d2e88a8a9ae0b0e0fe09a729c39744a" + integrity sha1-48IYMZ0uiKiprgsOD+Cacpw5dEo= + +connect@3.6.5: + version "3.6.5" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.5.tgz#fb8dde7ba0763877d0ec9df9dac0b4b40e72c7da" + integrity sha1-+43ee6B2OHfQ7J352sC0tA5yx9o= + dependencies: + debug "2.6.9" + finalhandler "1.0.6" + parseurl "~1.3.2" + utils-merge "1.0.1" + +connect@^3.6.6: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +console-browserify@1.1.x, console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constant-case@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46" + integrity sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY= + dependencies: + snake-case "^2.1.0" + upper-case "^1.1.1" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@^1.0.4, content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +conventional-changelog-angular@^1.3.3: + version "1.6.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz#b27f2b315c16d0a1f23eb181309d0e6a4698ea0f" + integrity sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg== + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + +conventional-changelog-angular@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz#299fdd43df5a1f095283ac16aeedfb0a682ecab0" + integrity sha512-YD1xzH7r9yXQte/HF9JBuEDfvjxxwDGGwZU1+ndanbY0oFgA+Po1T9JDSpPLdP0pZT6MhCAsdvFKC4TJ4MTJTA== + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + +conventional-changelog-core@^3.1.6: + version "3.2.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb" + integrity sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ== + dependencies: + conventional-changelog-writer "^4.0.6" + conventional-commits-parser "^3.0.3" + dateformat "^3.0.0" + get-pkg-repo "^1.0.0" + git-raw-commits "2.0.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^2.0.3" + lodash "^4.2.1" + normalize-package-data "^2.3.5" + q "^1.5.1" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + through2 "^3.0.0" + +conventional-changelog-preset-loader@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.2.0.tgz#571e2b3d7b53d65587bea9eedf6e37faa5db4fcc" + integrity sha512-zXB+5vF7D5Y3Cb/rJfSyCCvFphCVmF8mFqOdncX3BmjZwAtGAPfYrBcT225udilCKvBbHgyzgxqz2GWDB5xShQ== + +conventional-changelog-writer@^4.0.6: + version "4.0.7" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.7.tgz#e4b7d9cbea902394ad671f67108a71fa90c7095f" + integrity sha512-p/wzs9eYaxhFbrmX/mCJNwJuvvHR+j4Fd0SQa2xyAhYed6KBiZ780LvoqUUvsayP4R1DtC27czalGUhKV2oabw== + dependencies: + compare-func "^1.3.1" + conventional-commits-filter "^2.0.2" + dateformat "^3.0.0" + handlebars "^4.1.2" + json-stringify-safe "^5.0.1" + lodash "^4.2.1" + meow "^4.0.0" + semver "^6.0.0" + split "^1.0.0" + through2 "^3.0.0" + +conventional-commits-filter@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz#f122f89fbcd5bb81e2af2fcac0254d062d1039c1" + integrity sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ== + dependencies: + lodash.ismatch "^4.4.0" + modify-values "^1.0.0" + +conventional-commits-parser@^2.1.0: + version "2.1.7" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz#eca45ed6140d72ba9722ee4132674d639e644e8e" + integrity sha512-BoMaddIEJ6B4QVMSDu9IkVImlGOSGA1I2BQyOZHeLQ6qVOJLcLKn97+fL6dGbzWEiqDzfH4OkcveULmeq2MHFQ== + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.0" + lodash "^4.2.1" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^2.0.0" + trim-off-newlines "^1.0.0" + +conventional-commits-parser@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.3.tgz#c3f972fd4e056aa8b9b4f5f3d0e540da18bf396d" + integrity sha512-KaA/2EeUkO4bKjinNfGUyqPTX/6w9JGshuQRik4r/wJz7rUw3+D3fDG6sZSEqJvKILzKXFQuFkpPLclcsAuZcg== + dependencies: + JSONStream "^1.0.4" + is-text-path "^2.0.0" + lodash "^4.2.1" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^3.0.0" + trim-off-newlines "^1.0.0" + +conventional-recommended-bump@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz#5af63903947b6e089e77767601cb592cabb106ba" + integrity sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ== + dependencies: + concat-stream "^2.0.0" + conventional-changelog-preset-loader "^2.1.1" + conventional-commits-filter "^2.0.2" + conventional-commits-parser "^3.0.3" + git-raw-commits "2.0.0" + git-semver-tags "^2.0.3" + meow "^4.0.0" + q "^1.5.1" + +convert-hex@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/convert-hex/-/convert-hex-0.1.0.tgz#08c04568922c27776b8a2e81a95d393362ea0b65" + integrity sha1-CMBFaJIsJ3drii6BqV05M2LqC2U= + +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== + dependencies: + safe-buffer "~5.1.1" + +convert-string@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/convert-string/-/convert-string-0.1.0.tgz#79ce41a9bb0d03bcf72cdc6a8f3c56fbbc64410a" + integrity sha1-ec5BqbsNA7z3LNxqjzxW+7xkQQo= + +cookie-jar@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/cookie-jar/-/cookie-jar-0.3.0.tgz#bc9a27d4e2b97e186cd57c9e2063cb99fa68cccc" + integrity sha1-vJon1OK5fhhs1XyeIGPLmfpozMw= + +cookie-parser@1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.3.tgz#0fe31fa19d000b95f4aadf1f53fdc2b8a203baa5" + integrity sha1-D+MfoZ0AC5X0qt8fU/3CuKIDuqU= + dependencies: + cookie "0.3.1" + cookie-signature "1.0.6" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.3.1, cookie@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +cookiejar@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" + integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== + +cookies@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.6.1.tgz#ef693b1bc6f01f567d46e2f504e9c15fb70cba90" + integrity sha1-72k7G8bwH1Z9RuL1BOnBX7cMupA= + dependencies: + depd "~1.1.0" + keygrip "~1.0.0" + +cookies@^0.6.1, cookies@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.6.2.tgz#6ac1b052895208e8fc4c4f5f86a9ed31b9cb5ccf" + integrity sha1-asGwUolSCOj8TE9fhqntMbnLXM8= + dependencies: + depd "~1.1.0" + keygrip "~1.0.1" + +cookies@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.7.3.tgz#7912ce21fbf2e8c2da70cf1c3f351aecf59dadfa" + integrity sha512-+gixgxYSgQLTaTIilDHAdlNPZDENDQernEMiIcZpYYP14zgHsCt4Ce1FEjFtcp6GefhozebB6orvhAAWx/IS0A== + dependencies: + depd "~1.1.2" + keygrip "~1.0.3" + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js-compat@^3.1.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150" + integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A== + dependencies: + browserslist "^4.6.6" + semver "^6.3.0" + +core-js@2.5.7: + version "2.5.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" + integrity sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw== + +core-js@2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.4.tgz#b8897c062c4d769dd30a0ac5c73976c47f92ea0d" + integrity sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A== + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= + +core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.3, core-js@^2.6.5: + version "2.6.9" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" + integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0, cosmiconfig@^5.0.5, cosmiconfig@^5.0.7, cosmiconfig@^5.1.0, cosmiconfig@^5.2.0, cosmiconfig@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +crc-32@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + dependencies: + capture-stack-trace "^1.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +create-react-class@^15.6.0: + version "15.6.3" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" + integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + +cron-parser@^2.7.3: + version "2.13.0" + resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-2.13.0.tgz#6f930bb6f2931790d2a9eec83b3ec276e27a6725" + integrity sha512-UWeIpnRb0eyoWPVk+pD3TDpNx3KCFQeezO224oJIkktBrcW6RoAPOx5zIKprZGfk6vcYSmA8yQXItejSaDBhbQ== + dependencies: + is-nan "^1.2.1" + moment-timezone "^0.5.25" + +cross-fetch@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723" + integrity sha1-pH/09/xxLauo9qaVoRyUhEDUVyM= + dependencies: + node-fetch "2.1.2" + whatwg-fetch "2.0.4" + +cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^4, cross-spawn@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +crypt@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= + +cryptiles@0.2.x: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" + integrity sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw= + dependencies: + boom "0.4.x" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + integrity sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g= + dependencies: + boom "2.x.x" + +cryptiles@3.x.x: + version "3.1.4" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.4.tgz#769a68c95612b56faadfcebf57ac86479cbe8322" + integrity sha512-8I1sgZHfVwcSOY6mSGpVU3lw/GSIZvusg8dD2+OGehCJpOhQRLNcH0qb9upQnOH4XhgxxFJSg6E2kx95deb1Tw== + dependencies: + boom "5.x.x" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-js@^3.1.9-1: + version "3.1.9-1" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.9-1.tgz#fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8" + integrity sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg= + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + +css-blank-pseudo@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" + integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== + dependencies: + postcss "^7.0.5" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-has-pseudo@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" + integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^5.0.0-rc.4" + +css-loader@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.0.tgz#9f46aaa5ca41dbe31860e3b62b8e23c42916bf56" + integrity sha512-tMXlTYf3mIMt3b0dDCOQFJiVvxbocJ5Ho577WiGPYPZcqVEO218L2iU22pDXzkTZCLDE+9AmGSUkWxeh/nZReA== + dependencies: + babel-code-frame "^6.26.0" + css-selector-tokenizer "^0.7.0" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + postcss "^6.0.23" + postcss-modules-extract-imports "^1.2.0" + postcss-modules-local-by-default "^1.2.0" + postcss-modules-scope "^1.1.0" + postcss-modules-values "^1.3.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + +css-prefers-color-scheme@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" + integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== + dependencies: + postcss "^7.0.5" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-select@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" + integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== + dependencies: + boolbase "^1.0.0" + css-what "^2.1.2" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-selector-tokenizer@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" + integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +css-tree@1.0.0-alpha.29: + version "1.0.0-alpha.29" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" + integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== + dependencies: + mdn-data "~1.1.0" + source-map "^0.5.3" + +css-tree@1.0.0-alpha.33: + version "1.0.0-alpha.33" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e" + integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w== + dependencies: + mdn-data "2.0.4" + source-map "^0.5.3" + +css-unit-converter@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" + integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= + +css-what@2.1, css-what@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +cssdb@^4.3.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" + integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== + +cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.0: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" + integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== + dependencies: + css-tree "1.0.0-alpha.29" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + dependencies: + cssom "0.3.x" + +ctype@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" + integrity sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8= + +cucumber-expressions@^6.0.0: + version "6.6.2" + resolved "https://registry.yarnpkg.com/cucumber-expressions/-/cucumber-expressions-6.6.2.tgz#d89640eccc72a78380b6c210eae36a64e7462b81" + integrity sha512-WcFSVBiWNLJbIcAAC3t/ACU46vaOKfe1UIF5H3qveoq+Y4XQm9j3YwHurQNufRKBBg8nCnpU7Ttsx7egjS3hwA== + dependencies: + becke-ch--regex--s0-0-v1--base--pl--lib "^1.2.0" + +cucumber-tag-expressions@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/cucumber-tag-expressions/-/cucumber-tag-expressions-1.1.1.tgz#7f5c7b70009bc2b666591bfe64854578bedee85a" + integrity sha1-f1x7cACbwrZmWRv+ZIVFeL7e6Fo= + +cucumber@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cucumber/-/cucumber-5.1.0.tgz#7b166812c255bec7eac4b0df7007a40d089c895d" + integrity sha512-zrl2VYTBRgvxucwV2GKAvLqcfA1Naeax8plPvWgPEzl3SCJiuPPv3WxBHIRHtPYcEdbHDR6oqLpZP4bJ8UIdmA== + dependencies: + "@babel/polyfill" "^7.2.3" + assertion-error-formatter "^2.0.1" + bluebird "^3.4.1" + cli-table3 "^0.5.1" + colors "^1.1.2" + commander "^2.9.0" + cross-spawn "^6.0.5" + cucumber-expressions "^6.0.0" + cucumber-tag-expressions "^1.1.1" + duration "^0.2.1" + escape-string-regexp "^1.0.5" + figures "2.0.0" + gherkin "^5.0.0" + glob "^7.1.3" + indent-string "^3.1.0" + is-generator "^1.0.2" + is-stream "^1.1.0" + knuth-shuffle-seeded "^1.0.6" + lodash "^4.17.10" + mz "^2.4.0" + progress "^2.0.0" + resolve "^1.3.3" + serialize-error "^3.0.0" + stack-chain "^2.0.0" + stacktrace-js "^2.0.0" + string-argv "0.1.1" + title-case "^2.1.1" + util-arity "^1.0.2" + verror "^1.9.0" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= + +d@1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +damerau-levenshtein@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414" + integrity sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA== + +dargs@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + integrity sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc= + dependencies: + number-is-nan "^1.0.0" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= + +date-utils@*: + version "1.2.21" + resolved "https://registry.yarnpkg.com/date-utils/-/date-utils-1.2.21.tgz#61fb16cdc1274b3c9acaaffe9fc69df8720a2b64" + integrity sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q= + +dateformat@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + integrity sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk= + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + +dateformat@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + +debug@0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" + integrity sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk= + +debug@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + integrity sha1-+HBX6ZWxofauaklgZkE3vFbwOdo= + dependencies: + ms "0.7.1" + +debug@2.6.9, debug@^2.1.0, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@3.2.6, debug@^3.0.0, debug@^3.1.0, debug@^3.2.5, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.8.1.tgz#20ff4d26f5e422cb68a1bacbbb61039ad8c1c130" + integrity sha1-IP9NJvXkIstoobrLu2EDmtjBwTA= + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= + +decamelize-keys@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decamelize@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" + integrity sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg== + dependencies: + xregexp "4.0.0" + +decimal.js@^10.0.2: + version "10.2.0" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.0.tgz#39466113a9e036111d02f82489b5fd6b0b5ed231" + integrity sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + +deep-equal@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + +deep-equal@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745" + integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +default-gateway@^2.6.0: + version "2.7.2" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-2.7.2.tgz#b7ef339e5e024b045467af403d50348db4642d0f" + integrity sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ== + dependencies: + execa "^0.10.0" + ip-regex "^2.1.0" + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg= + dependencies: + strip-bom "^2.0.0" + +default-require-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" + integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc= + dependencies: + strip-bom "^3.0.0" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +defer-to-connect@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.2.tgz#4bae758a314b034ae33902b5aac25a8dd6a8633e" + integrity sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw== + +define-properties@^1.1.1, define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU= + dependencies: + globby "^6.1.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + p-map "^1.1.1" + pify "^3.0.0" + rimraf "^2.2.8" + +delayed-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + integrity sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8= + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@^1.1.2, depd@~1.1.0, depd@~1.1.1, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +deprecation@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= + +detect-indent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" + integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + +detect-libc@^1.0.2, detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +detect-port-alt@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +devextreme@^18.2.6: + version "18.2.10" + resolved "https://registry.yarnpkg.com/devextreme/-/devextreme-18.2.10.tgz#ff1d088665fae623ef7d460fd2cc8f30bd518be4" + integrity sha512-IwDx1eK/oxdBCTDHCMt178lhCjJiyYNhRjpL3xcsxNrNC4KkwoNOg52F6de+6wxs+Yl7WJHUlbCXverWeTDPuA== + dependencies: + jszip "^2.0.0 || ^3.0.0" + quill "^1.3.6" + showdown "^1.8.6" + turndown "^5.0.1" + +dezalgo@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= + dependencies: + asap "^2.0.0" + wrappy "1" + +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + +diff@3.5.0, diff@^3.0.0, diff@^3.1.0, diff@^3.2.0, diff@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diff@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" + integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + +dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" + integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== + dependencies: + "@babel/runtime" "^7.1.2" + +dom-serializer@0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" + integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +domain-browser@^1.1.1, domain-browser@^1.1.7: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domhandler@2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" + integrity sha1-LeWaCCLVAn+r/28DLCsloqir5zg= + dependencies: + domelementtype "1" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5, domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee" + integrity sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4= + dependencies: + no-case "^2.2.0" + +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + integrity sha1-G3CK8JSknJoOfbyteQq6U52sEXc= + dependencies: + is-obj "^1.0.0" + +dot-prop@^4.1.0, dot-prop@^4.1.1, dot-prop@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + +dotenv-expand@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275" + integrity sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU= + +dotenv@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.0.0.tgz#24e37c041741c5f4b25324958ebbc34bca965935" + integrity sha512-FlWbnhgjtwD+uNLUGHbMykMOYQaTivdHEmYwAKFjn6GKe/CqY0fNae93ZHTd20snh9ZLr8mTzIL9m0APQ1pjQg== + +dotenv@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" + integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w== + +double-ended-queue@2.1.0-0: + version "2.1.0-0" + resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" + integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw= + +dtrace-provider@~0.6: + version "0.6.0" + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.6.0.tgz#0b078d5517937d873101452d9146737557b75e51" + integrity sha1-CweNVReTfYcxAUUtkUZzdVe3XlE= + dependencies: + nan "^2.0.8" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexer@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +duration@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/duration/-/duration-0.2.2.tgz#ddf149bc3bc6901150fe9017111d016b3357f529" + integrity sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg== + dependencies: + d "1" + es5-ext "~0.10.46" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs-include-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ejs-include-regex/-/ejs-include-regex-1.0.0.tgz#e2f71575cbfd551ac800b2474c1f62a38e70093a" + integrity sha1-4vcVdcv9VRrIALJHTB9io45wCTo= + +ejs-lint@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ejs-lint/-/ejs-lint-0.2.0.tgz#3fdf72bd095e7e8fbc5110b69182bceba35a62d3" + integrity sha1-P99yvQlefo+8URC2kYK866NaYtM= + dependencies: + ejs "2.4.1" + ejs-include-regex "^1.0.0" + glob "^7.0.3" + read-input "^0.3.1" + rewire "^2.5.1" + syntax-error "^1.1.6" + yargs "^4.6.0" + +ejs@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.4.1.tgz#82e15b1b2a1f948b18097476ba2bd7c66f4d1566" + integrity sha1-guFbGyoflIsYCXR2uivXxm9NFWY= + +ejs@^2.5.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" + integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== + +electron-to-chromium@^1.3.103, electron-to-chromium@^1.3.247: + version "1.3.252" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.252.tgz#5b6261965b564a0f4df0f1c86246487897017f52" + integrity sha512-NWJ5TztDnjExFISZHFwpoJjMbLUifsNBnx7u2JI0gCw6SbKyQYYWWtBHasO/jPtHym69F4EZuTpRNGN11MT/jg== + +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= + +elliptic@^6.0.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.1.tgz#c380f5f909bf1b9b4428d028cd18d3b0efd6b52b" + integrity sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +"emoji-regex@>=6.0.0 <=6.1.1": + version "6.1.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" + integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= + +emoji-regex@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" + integrity sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +encodeurl@~1.0.1, encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= + dependencies: + iconv-lite "~0.4.13" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + dependencies: + once "^1.4.0" + +engine.io-client@1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.6.11.tgz#7d250d8fa1c218119ecde51390458a57d5171376" + integrity sha1-fSUNj6HCGBGezeUTkEWKV9UXE3Y= + dependencies: + component-emitter "1.1.2" + component-inherit "0.0.3" + debug "2.2.0" + engine.io-parser "1.2.4" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.1" + parseqs "0.0.2" + parseuri "0.0.4" + ws "1.0.1" + xmlhttprequest-ssl "1.5.1" + yeast "0.1.2" + +engine.io-parser@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.2.4.tgz#e0897b0bf14e792d4cd2a5950553919c56948c42" + integrity sha1-4Il7C/FOeS1M0qWVBVORnFaUjEI= + dependencies: + after "0.8.1" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.2" + blob "0.0.4" + has-binary "0.1.6" + utf8 "2.1.0" + +engine.io@1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.6.11.tgz#2533a97a65876c40ffcf95397b7ef9b495c423fe" + integrity sha1-JTOpemWHbED/z5U5e375tJXEI/4= + dependencies: + accepts "1.1.4" + base64id "0.1.0" + debug "2.2.0" + engine.io-parser "1.2.4" + ws "1.1.0" + +enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + +entities@1.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" + integrity sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY= + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +env-paths@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" + integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= + +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.3.tgz#9d3c000fb9f5c461f7c4e63c1aa75373ac7aaa36" + integrity sha512-vRC4rKv87twMZy92X4+TmUdv3iYMsmePbpG/YguHsfzmZ8bYJZYYep7yrXH09yFUaCEPKgNK5X79+Yq7hwLVOA== + dependencies: + stackframe "^1.0.4" + +errorhandler@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/errorhandler/-/errorhandler-1.5.0.tgz#eaba64ca5d542a311ac945f582defc336165d9f4" + integrity sha1-6rpkyl1UKjEayUX1gt78M2Fl2fQ= + dependencies: + accepts "~1.3.3" + escape-html "~1.0.3" + +es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.14.1.tgz#6e8d84b445ec9c610781e74a6d52cc31aac5b4ca" + integrity sha512-cp/Tb1oA/rh2X7vqeSOvM+TSo3UkJLX70eNihgVEvnzwAgikjkTFr/QVgRCaxjm0knCNQzNoxxxcw2zO2LJdZA== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.0" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-inspect "^1.6.0" + object-keys "^1.1.1" + string.prototype.trimleft "^2.0.0" + string.prototype.trimright "^2.0.0" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14, es5-ext@~0.10.46: + version "0.10.51" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.51.tgz#ed2d7d9d48a12df86e0299287e93a09ff478842f" + integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "^1.0.0" + +es5-ext@~0.9.2: + version "0.9.2" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.9.2.tgz#d2e309d1f223b0718648835acf5b8823a8061f8a" + integrity sha1-0uMJ0fIjsHGGSINaz1uII6gGH4o= + +es5-shim@4.5.10: + version "4.5.10" + resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.10.tgz#b7e17ef4df2a145b821f1497b50c25cf94026205" + integrity sha512-vmryBdqKRO8Ei9LJ4yyEk/EOmAOGIagcHDYPpTAi6pot4IMHS1AC2q5cTKPmydpijg2iX8DVmCuqgrNxIWj8Yg== + +es6-error@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + +es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= + dependencies: + d "1" + es5-ext "~0.10.14" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@1.8.x: + version "1.8.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + integrity sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg= + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +escodegen@^1.9.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" + integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-ast-utils@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz#3d58ba557801cfb1c941d68131ee9f8c34bd1586" + integrity sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA== + dependencies: + lodash.get "^4.4.2" + lodash.zip "^4.2.0" + +eslint-config-oclif@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-oclif/-/eslint-config-oclif-3.1.0.tgz#cbc207ced09e31676dcee2f724fc509cd20eb0bd" + integrity sha512-Tqgy43cNXsSdhTLWW4RuDYGFhV240sC4ISSv/ZiUEg/zFxExSEUpRE6J+AGnkKY9dYwIW4C9b2YSUVv8z/miMA== + dependencies: + eslint-config-xo-space "^0.20.0" + eslint-plugin-mocha "^5.2.0" + eslint-plugin-node "^7.0.1" + eslint-plugin-unicorn "^6.0.1" + +eslint-config-react-app@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-3.0.8.tgz#6f606828ba30bafee7d744c41cd07a3fea8f3035" + integrity sha512-Ovi6Bva67OjXrom9Y/SLJRkrGqKhMAL0XCH8BizPhjEVEhYczl2ZKiNZI2CuqO5/CJwAfMwRXAVGY0KToWr1aA== + dependencies: + confusing-browser-globals "^1.0.6" + +eslint-config-xo-space@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/eslint-config-xo-space/-/eslint-config-xo-space-0.20.0.tgz#75e1fb86d1b052fc1cc3036ca2fa441fa92b85e4" + integrity sha512-bOsoZA8M6v1HviDUIGVq1fLVnSu3mMZzn85m2tqKb73tSzu4GKD4Jd2Py4ZKjCgvCbRRByEB5HPC3fTMnnJ1uw== + dependencies: + eslint-config-xo "^0.24.0" + +eslint-config-xo@^0.24.0: + version "0.24.2" + resolved "https://registry.yarnpkg.com/eslint-config-xo/-/eslint-config-xo-0.24.2.tgz#f61b8ce692e9f9519bdb6edc4ed7ebcd5be48f48" + integrity sha512-ivQ7qISScW6gfBp+p31nQntz1rg34UCybd3uvlngcxt5Utsf4PMMi9QoAluLFcPUM5Tvqk4JGraR9qu3msKPKQ== + +eslint-import-resolver-node@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== + dependencies: + debug "^2.6.9" + resolve "^1.5.0" + +eslint-loader@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.1.1.tgz#2a9251523652430bfdd643efdb0afc1a2a89546a" + integrity sha512-1GrJFfSevQdYpoDzx8mEE2TDWsb/zmFuY09l6hURg1AeFIKQOvZ+vH0UPjzmd1CZIbfTV5HUkMeBmFiDBkgIsQ== + dependencies: + loader-fs-cache "^1.0.0" + loader-utils "^1.0.2" + object-assign "^4.0.1" + object-hash "^1.1.4" + rimraf "^2.6.1" + +eslint-module-utils@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c" + integrity sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw== + dependencies: + debug "^2.6.8" + pkg-dir "^2.0.0" + +eslint-plugin-es@^1.3.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998" + integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA== + dependencies: + eslint-utils "^1.4.2" + regexpp "^2.0.1" + +eslint-plugin-flowtype@2.50.1: + version "2.50.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.1.tgz#36d4c961ac8b9e9e1dc091d3fba0537dad34ae8a" + integrity sha512-9kRxF9hfM/O6WGZcZPszOVPd2W0TLHBtceulLTsGfwMPtiCCLnCW0ssRiOOiXyqrCA20pm1iXdXm7gQeN306zQ== + dependencies: + lodash "^4.17.10" + +eslint-plugin-header@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-header/-/eslint-plugin-header-3.0.0.tgz#0e048b5f0adfdd9754142d59d551ae6bfdaf90ad" + integrity sha512-OIu2ciVW8jK4Ove4JHm1I7X0C98PZuLCyCsoUhAm2HpyGS+zr34qLM6iV06unnDvssvvEh5BkOfaLRF+N7cGoQ== + +eslint-plugin-import@2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8" + integrity sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g== + dependencies: + contains-path "^0.1.0" + debug "^2.6.8" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.1" + eslint-module-utils "^2.2.0" + has "^1.0.1" + lodash "^4.17.4" + minimatch "^3.0.3" + read-pkg-up "^2.0.0" + resolve "^1.6.0" + +eslint-plugin-jsx-a11y@6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz#69bca4890b36dcf0fe16dd2129d2d88b98f33f88" + integrity sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw== + dependencies: + aria-query "^3.0.0" + array-includes "^3.0.3" + ast-types-flow "^0.0.7" + axobject-query "^2.0.1" + damerau-levenshtein "^1.0.4" + emoji-regex "^6.5.1" + has "^1.0.3" + jsx-ast-utils "^2.0.1" + +eslint-plugin-mocha@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-5.3.0.tgz#cf3eb18ae0e44e433aef7159637095a7cb19b15b" + integrity sha512-3uwlJVLijjEmBeNyH60nzqgA1gacUWLUmcKV8PIGNvj1kwP/CTgAWQHn2ayyJVwziX+KETkr9opNwT1qD/RZ5A== + dependencies: + ramda "^0.26.1" + +eslint-plugin-node@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db" + integrity sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw== + dependencies: + eslint-plugin-es "^1.3.1" + eslint-utils "^1.3.1" + ignore "^4.0.2" + minimatch "^3.0.4" + resolve "^1.8.1" + semver "^5.5.0" + +eslint-plugin-react@7.12.4: + version "7.12.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.4.tgz#b1ecf26479d61aee650da612e425c53a99f48c8c" + integrity sha512-1puHJkXJY+oS1t467MjbqjvX53uQ05HXwjqDgdbGBqf5j9eeydI54G3KwiJmWciQ0HTBacIKw2jgwSBSH3yfgQ== + dependencies: + array-includes "^3.0.3" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.0.1" + object.fromentries "^2.0.0" + prop-types "^15.6.2" + resolve "^1.9.0" + +eslint-plugin-unicorn@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-6.0.1.tgz#4a97f0bc9449e20b82848dad12094ee2ba72347e" + integrity sha512-hjy9LhTdtL7pz8WTrzS0CGXRkWK3VAPLDjihofj8JC+uxQLfXm0WwZPPPB7xKmcjRyoH+jruPHOCrHNEINpG/Q== + dependencies: + clean-regexp "^1.0.0" + eslint-ast-utils "^1.0.0" + import-modules "^1.1.0" + lodash.camelcase "^4.1.1" + lodash.kebabcase "^4.0.1" + lodash.snakecase "^4.0.1" + lodash.upperfirst "^4.2.0" + safe-regex "^1.1.0" + +eslint-scope@3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^4.0.0, eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.1, eslint-utils@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab" + integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== + dependencies: + eslint-visitor-keys "^1.0.0" + +eslint-visitor-keys@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint@5.12.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.12.0.tgz#fab3b908f60c52671fb14e996a450b96c743c859" + integrity sha512-LntwyPxtOHrsJdcSwyQKVtHofPHdv+4+mFwEe91r2V13vqpM8yLr7b1sW+Oo/yheOPkWYsYlYJCkzlFAt8KV7g== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.5.3" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^2.1.0" + eslint-scope "^4.0.0" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^5.0.0" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^6.1.0" + js-yaml "^3.12.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.5" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^5.5.1" + strip-ansi "^4.0.0" + strip-json-comments "^2.0.1" + table "^5.0.2" + text-table "^0.2.0" + +eslint@^5.14.1: + version "5.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" + integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.9.1" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^4.0.3" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^5.0.1" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^6.2.2" + js-yaml "^3.13.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.11" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^5.5.1" + strip-ansi "^4.0.0" + strip-json-comments "^2.0.1" + table "^5.2.3" + text-table "^0.2.0" + +espree@^5.0.0, espree@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" + integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== + dependencies: + acorn "^6.0.7" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +esprima@2.7.x, esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= + +esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= + +esprima@^4.0.0, esprima@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + integrity sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q= + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eval@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.2.tgz#9f7103284c105a66df4030b2b3273165837013da" + integrity sha1-n3EDKEwQWmbfQDCysycxZYNwE9o= + dependencies: + require-like ">= 0.1.1" + +event-emitter@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.2.2.tgz#c81e3724eb55407c5a0d5ee3299411f700f54291" + integrity sha1-yB43JOtVQHxaDV7jKZQR9wD1QpE= + dependencies: + es5-ext "~0.9.2" + +eventemitter3@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" + integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo= + +eventemitter3@^3.0.0, eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +events@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= + +events@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" + integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== + +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" + integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw== + dependencies: + merge "^1.2.0" + +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== + +exit@0.1.2, exit@0.1.x, exit@^0.1.2, exit@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.0" + +expect@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" + integrity sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w== + dependencies: + ansi-styles "^3.2.0" + jest-diff "^23.6.0" + jest-get-type "^22.1.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + +express-graphql@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/express-graphql/-/express-graphql-0.7.1.tgz#6c7712ee966c3aba1930e064ea4c8181e56fd3ef" + integrity sha512-YpheAqTbSKpb5h57rV2yu2dPNUBi4FvZDspZ5iEV3ov34PBRgnM4lEBkv60+vZRJ6SweYL14N8AGYdov7g6ooQ== + dependencies: + accepts "^1.3.5" + content-type "^1.0.4" + http-errors "^1.7.1" + raw-body "^2.3.3" + +express-jwt@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/express-jwt/-/express-jwt-5.3.1.tgz#66f05c7dddb5409c037346a98b88965bb10ea4ae" + integrity sha512-1C9RNq0wMp/JvsH/qZMlg3SIPvKu14YkZ4YYv7gJQ1Vq+Dv8LH9tLKenS5vMNth45gTlEUGx+ycp9IHIlaHP/g== + dependencies: + async "^1.5.0" + express-unless "^0.3.0" + jsonwebtoken "^8.1.0" + lodash.set "^4.0.0" + +express-unless@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/express-unless/-/express-unless-0.3.1.tgz#2557c146e75beb903e2d247f9b5ba01452696e20" + integrity sha1-JVfBRudb65A+LSR/m1ugFFJpbiA= + +express@^4.15.4, express@^4.16.2, express@^4.16.4: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@^3.0.1, extend@^3.0.2, extend@~3.0.0, extend@~3.0.1, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.0, external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-stack@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/extract-stack/-/extract-stack-1.0.0.tgz#b97acaf9441eea2332529624b732fc5a1c8165fa" + integrity sha1-uXrK+UQe6iMyUpYktzL8WhyBZfo= + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fancy-test@^1.4.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/fancy-test/-/fancy-test-1.4.4.tgz#979f2827fccafac0ef52b542ab9ba9e8bcf40e50" + integrity sha512-F2JYBLJTsfvqjziAl/niwxnWYJy+JCIyDMbbBJqT7XzF8JwEIOL3/TC99v3Ig5LFXkvuwKrKpetSymd6CjH8ew== + dependencies: + "@types/chai" "*" + "@types/lodash" "*" + "@types/mocha" "*" + "@types/nock" "*" + "@types/node" "*" + "@types/sinon" "*" + lodash "^4.17.13" + mock-stdin "^0.3.1" + stdout-stderr "^0.1.9" + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-diff@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" + integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig== + +fast-glob@^2.0.2, fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-glob@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.0.4.tgz#d484a41005cb6faeb399b951fd1bd70ddaebb602" + integrity sha512-wkIbV6qg37xTJwqSsdnIphL1e+LaGz4AIQqr00mIubMaEhv1/HEmJ0uuCGZRNRUkZZmOB5mJKO0ZUTVq+SxMQg== + dependencies: + "@nodelib/fs.stat" "^2.0.1" + "@nodelib/fs.walk" "^1.2.1" + glob-parent "^5.0.0" + is-glob "^4.0.1" + merge2 "^1.2.3" + micromatch "^4.0.2" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastparse@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fastq@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2" + integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA== + dependencies: + reusify "^1.0.0" + +faye-websocket@0.11.1: + version "0.11.1" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.1: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= + dependencies: + bser "^2.0.0" + +fbjs@^0.8.9: + version "0.8.17" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" + integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.18" + +fibers@3.1.1, fibers@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fibers/-/fibers-3.1.1.tgz#0238902ca938347bd779523692fbeefdf4f688ab" + integrity sha512-dl3Ukt08rHVQfY8xGD0ODwyjwrRALtaghuqGH2jByYX1wpY+nAnRQjJ6Dbqq0DnVgNVQ9yibObzbF4IlPyiwPw== + dependencies: + detect-libc "^1.0.3" + +figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + +figlet@^1.1.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.2.4.tgz#2d2f48b61a77418ba6cbd9db2e25da27efee16d0" + integrity sha512-mv8YA9RruB4C5QawPaD29rEVx3N97ZTyNrE4DAfbhuo6tpcMdKnPVo8MlyT3RP5uPcg5M14bEJBq7kjFf4kAWg== + +figures@2.0.0, figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-loader@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-2.0.0.tgz#39749c82f020b9e85901dcff98e8004e6401cfde" + integrity sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ== + dependencies: + loader-utils "^1.0.2" + schema-utils "^1.0.0" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + +fileset@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + +filesize@3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f" + integrity sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8= + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + +finalhandler@1.1.2, finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-up@3.0.0, find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat-cache@^1.2.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== + dependencies: + circular-json "^0.3.1" + graceful-fs "^4.1.2" + rimraf "~2.6.2" + write "^0.2.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flat@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" + integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== + dependencies: + is-buffer "~2.0.3" + +flatted@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" + integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + +flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +flushwritable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/flushwritable/-/flushwritable-1.0.0.tgz#3e328d8fde412ad47e738e3be750b4d290043498" + integrity sha1-PjKNj95BKtR+c44751C00pAENJg= + +fn-name@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" + integrity sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc= + +follow-redirects@^1.0.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.8.1.tgz#24804f9eaab67160b0e840c085885d606371a35b" + integrity sha512-micCIbldHioIegeKs41DoH0KS3AXfFzgS30qVkM6z/XOE/GJgvmsoc839NUqa1B9udYe9dQxgv7KFwng6+p/dw== + dependencies: + debug "^3.0.0" + +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.3, for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + dependencies: + for-in "^1.0.1" + +foreground-child@^1.5.6: + version "1.5.6" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" + integrity sha1-T9ca0t/elnibmApcCilZN8svXOk= + dependencies: + cross-spawn "^4" + signal-exit "^3.0.0" + +forever-agent@~0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" + integrity sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +fork-ts-checker-webpack-plugin@1.0.0-alpha.6: + version "1.0.0-alpha.6" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.0.0-alpha.6.tgz#826c57048addf8a3253853615c84f3ff7beeaf45" + integrity sha512-s/V+58nLrUjuXyzYk8AL11XG8bxIirTbafDLMn26sL59HQx8QvvsRTqOkhq4MV0coIkog1jZuH/E9Abm8zFZ2g== + dependencies: + babel-code-frame "^6.22.0" + chalk "^2.4.1" + chokidar "^2.0.4" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + +form-data@2.3.3, form-data@~2.3.1, form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +form-data@^2.3.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +form-data@~0.1.0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" + integrity sha1-kavXiKupcCsaq/qLwBAxoqyeOxI= + dependencies: + async "~0.9.0" + combined-stream "~0.0.4" + mime "~1.2.11" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + integrity sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE= + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +formBuilder@^3.2.4: + version "3.2.5" + resolved "https://registry.yarnpkg.com/formBuilder/-/formBuilder-3.2.5.tgz#e1c6f1d8c42c5c71cca8e4579ea8e52f2383e86c" + integrity sha512-YAgV7IiAdkVhEPsXlKsGc87VVQ7h+3KhxgtBqHNHWfAkhu0lBP8hqhyMSnz6Fkz1F5hmgb4/k/+Z5JJDvwlkdA== + dependencies: + jquery ">=3.4.1" + jquery-ui-sortable "*" + +formidable@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz#70fb7ca0290ee6ff961090415f4b3df3d2082659" + integrity sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg== + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +frac@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/frac/-/frac-1.1.2.tgz#3d74f7f6478c88a1b5020306d747dc6313c74d0b" + integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@7.0.1, fs-extra@^7.0.0, fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" + integrity sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.6" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" + integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== + dependencies: + minipass "^2.2.1" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg== + dependencies: + nan "^2.9.2" + node-pre-gyp "^0.10.0" + +fsevents@^1.2.3, fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + integrity sha1-nDHa40dnAY/h0kmyTa2mfQktoQU= + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +g-status@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/g-status/-/g-status-2.0.2.tgz#270fd32119e8fc9496f066fe5fe88e0a6bc78b97" + integrity sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA== + dependencies: + arrify "^1.0.1" + matcher "^1.0.0" + simple-git "^1.85.0" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@~1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +generic-pool@^3.6.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.7.1.tgz#36fe5bb83e7e0e032e5d32cd05dc00f5ff119aa8" + integrity sha512-ug6DAZoNgWm6q5KhPFA+hzXfBLFQu5sTXxPpv44DmE0A2g+CiHoq9LTVdkXpZMkYVMoGw83F6W+WT0h0MFMK/w== + +genfun@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" + integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" + integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== + +get-pkg-repo@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" + integrity sha1-xztInAbYDMVTbCyFP54FIyBWly0= + dependencies: + hosted-git-info "^2.1.4" + meow "^3.3.0" + normalize-package-data "^2.3.0" + parse-github-repo-url "^1.3.0" + through2 "^2.0.0" + +get-port@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" + integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== + +get-stdin@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +gfycat-sdk@1.4.18: + version "1.4.18" + resolved "https://registry.yarnpkg.com/gfycat-sdk/-/gfycat-sdk-1.4.18.tgz#ecf17fb6ec1175d7b9bee7f4058dd5bcd266ead7" + integrity sha512-BrINtO6rj8Nr0pm38Qr3epayOuvlKcEFcDCw6yL9T4SrsWTECct6FS/isli766kdij2GGG6bWU6bRp+fDS2Cbg== + dependencies: + babel-runtime "^6.23.0" + +gherkin@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/gherkin/-/gherkin-5.1.0.tgz#684bbb03add24eaf7bdf544f58033eb28fb3c6d5" + integrity sha1-aEu7A63STq9731RPWAM+so+zxtU= + +git-raw-commits@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5" + integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg== + dependencies: + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^2.0.0" + +git-raw-commits@^1.3.0: + version "1.3.6" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff" + integrity sha512-svsK26tQ8vEKnMshTDatSIQSMDdz8CxIIqKsvPqbtV23Etmw6VNaFAitu8zwZ0VrOne7FztwPyRLxK7/DIUTQg== + dependencies: + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^2.0.0" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-2.0.3.tgz#48988a718acf593800f99622a952a77c405bfa34" + integrity sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA== + dependencies: + meow "^4.0.0" + semver "^6.0.0" + +git-up@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.1.tgz#cb2ef086653640e721d2042fe3104857d89007c0" + integrity sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw== + dependencies: + is-ssh "^1.3.0" + parse-url "^5.0.0" + +git-url-parse@^11.1.2: + version "11.1.2" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.1.2.tgz#aff1a897c36cc93699270587bea3dbcbbb95de67" + integrity sha512-gZeLVGY8QVKMIkckncX+iCq2/L8PlwncvDFKiWkBn9EtCfYDbliRTTp6qzyQ1VMdITUfq7293zDzfpjdiGASSQ== + dependencies: + git-up "^4.0.0" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= + dependencies: + ini "^1.3.2" + +github-slugger@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.2.1.tgz#47e904e70bf2dccd0014748142d31126cfd49508" + integrity sha512-SsZUjg/P03KPzQBt7OxJPasGw6NRO5uOgiZ5RGXVud5iSIZ0eNZeNp5rTwCxtavrRUa/A77j8mePVc5lEvk0KQ== + dependencies: + emoji-regex ">=6.0.0 <=6.1.1" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" + integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + integrity sha1-gFIR3wT6rxxjo2ADBs31reULLsg= + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^5.0.15: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1, glob@~7.1.3: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.0, global-dirs@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + dependencies: + ini "^1.3.4" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0, globals@^11.7.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +globby@8.0.2, globby@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" + integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== + dependencies: + array-union "^1.0.1" + dir-glob "2.0.0" + fast-glob "^2.0.2" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + +globby@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22" + integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A== + dependencies: + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^9.1.0, globby@^9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +globule@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" + integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ== + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +gm@^1.17.0: + version "1.23.1" + resolved "https://registry.yarnpkg.com/gm/-/gm-1.23.1.tgz#2edeeb958084d0f8ea7988e5d995b1c7dfc14777" + integrity sha1-Lt7rlYCE0PjqeYjl2ZWxx9/BR3c= + dependencies: + array-parallel "~0.1.3" + array-series "~0.1.5" + cross-spawn "^4.0.0" + debug "^3.1.0" + +google-closure-compiler@20150901.x: + version "20150901.0.0" + resolved "https://registry.yarnpkg.com/google-closure-compiler/-/google-closure-compiler-20150901.0.0.tgz#3d01c6cade65790a9bfb4e30b2158b7635acbade" + integrity sha1-PQHGyt5leQqb+04wshWLdjWsut4= + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" + integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== + +graphql-request@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.8.2.tgz#398d10ae15c585676741bde3fc01d5ca948f8fbe" + integrity sha512-dDX2M+VMsxXFCmUX0Vo0TopIZIX4ggzOtiCsThgtrKR4niiaagsGTDIHj3fsOMFETpa064vzovI+4YV4QnMbcg== + dependencies: + cross-fetch "2.2.2" + +graphql-type-json@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.2.4.tgz#545af27903e40c061edd30840a272ea0a49992f9" + integrity sha512-/tq02ayMQjrG4oDFDRLLrPk0KvJXue0nVXoItBe7uAdbNXjQUu+HYCBdAmPLQoseVzUKKMzrhq2P/sfI76ON6w== + +graphql@^14.1.1: + version "14.5.4" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.5.4.tgz#b33fe957854e90c10d4c07c7d26b6c8e9f159a13" + integrity sha512-dPLvHoxy5m9FrkqWczPPRnH0X80CyvRE6e7Fa5AWEqEAzg9LpxHvKh24po/482E6VWHigOkAmb4xCp6P9yT9gw== + dependencies: + iterall "^1.2.2" + +gridfs-stream@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/gridfs-stream/-/gridfs-stream-1.1.1.tgz#3dd3a100ec2021a181282f6eb46709636074df89" + integrity sha1-PdOhAOwgIaGBKC9utGcJY2B034k= + dependencies: + flushwritable "^1.0.0" + +growl@1.10.5, growl@^1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gud@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" + integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== + +gzip-size@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80" + integrity sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA== + dependencies: + duplexer "^0.1.1" + pify "^3.0.0" + +handle-thing@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" + integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== + +handlebars@*, handlebars@^4.0.1, handlebars@^4.0.12, handlebars@^4.0.3, handlebars@^4.0.6, handlebars@^4.1.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.2.0.tgz#57ce8d2175b9bbb3d8b3cf3e4217b1aec8ddcb2e" + integrity sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw== + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + integrity sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4= + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + integrity sha1-M0gdDxu/9gDdID11gSpqX7oALio= + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0= + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +harmony-reflect@1.6.1, harmony-reflect@^1.4.6: + version "1.6.1" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" + integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-binary@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10" + integrity sha1-JTJvOc+k9hath4eJTjryz7x7bhA= + dependencies: + isarray "0.0.1" + +has-binary@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + integrity sha1-aOYesWIQyVRaClzOBqhzkS/h5ow= + dependencies: + isarray "0.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + +has-unicode@^2.0.0, has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hasha@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-3.0.0.tgz#52a32fab8569d41ca69a61ff1a214f8eb7c8bd39" + integrity sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk= + dependencies: + is-stream "^1.0.1" + +hawk@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.0.0.tgz#b90bb169807285411da7ffcb8dd2598502d3b52d" + integrity sha1-uQuxaYByhUEdp//LjdJZhQLTtS0= + dependencies: + boom "0.4.x" + cryptiles "0.2.x" + hoek "0.9.x" + sntp "0.2.x" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + integrity sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ= + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hawk@~6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + integrity sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ== + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= + +he@1.2.0, he@1.2.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +header-case@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-1.0.1.tgz#9535973197c144b09613cd65d317ef19963bd02d" + integrity sha1-lTWXMZfBRLCWE81l0xfvGZY70C0= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.3" + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +highlight.js@^9.0.0, highlight.js@^9.6.0: + version "9.15.10" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2" + integrity sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw== + +history@^4.9.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/history/-/history-4.9.0.tgz#84587c2068039ead8af769e9d6a6860a14fa1bca" + integrity sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^2.2.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^0.4.0" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoek@0.9.x: + version "0.9.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" + integrity sha1-PTIkYrrfB3Fup+uFuviAec3c5QU= + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0= + +hoek@4.x.x: + version "4.2.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" + integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA== + +hoist-non-react-statics@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" + integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA== + dependencies: + react-is "^16.7.0" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hoopy@^0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: + version "2.8.4" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" + integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-entities@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= + +html-minifier@^3.2.3: + version "3.5.21" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +html-webpack-plugin@4.0.0-alpha.2: + version "4.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.0-alpha.2.tgz#7745967e389a57a098e26963f328ebe4c19b598d" + integrity sha512-tyvhjVpuGqD7QYHi1l1drMQTg5i+qRxpQEGbdnYFREgOKy7aFDf/ocQ/V1fuEDlQx7jV2zMap3Hj2nE9i5eGXw== + dependencies: + "@types/tapable" "1.0.2" + html-minifier "^3.2.3" + loader-utils "^1.1.0" + lodash "^4.17.10" + pretty-error "^2.0.2" + tapable "^1.0.0" + util.promisify "1.0.0" + +htmlparser2@3.8.x: + version "3.8.3" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" + integrity sha1-mWwosZFRaovoZQGn15dX5ccMEGg= + dependencies: + domelementtype "1" + domhandler "2.3" + domutils "1.5" + entities "1.0" + readable-stream "1.1" + +htmlparser2@^3.3.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-cache-semantics@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + +http-cache-semantics@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" + integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== + +http-call@^5.1.2: + version "5.2.5" + resolved "https://registry.yarnpkg.com/http-call/-/http-call-5.2.5.tgz#cccb144230dd2f379cf61800fd4461e24571c1be" + integrity sha512-SfJ9j2xfi8zhQuJxcBCN1AhPCUAvPhipNaoeHWHfHiV0gz4uf9RUt2kl+xu9mxJLKxhNP7We87aRGbaSGPjr8A== + dependencies: + content-type "^1.0.4" + debug "^4.1.1" + is-retry-allowed "^1.1.0" + is-stream "^2.0.0" + parse-json "^4.0.0" + tunnel-agent "^0.6.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@1.7.3, http-errors@^1.7.1, http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== + dependencies: + agent-base "4" + debug "3.1.0" + +http-proxy-middleware@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy-middleware@~0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab" + integrity sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q== + dependencies: + http-proxy "^1.16.2" + is-glob "^4.0.0" + lodash "^4.17.5" + micromatch "^3.1.9" + +http-proxy@^1.16.2, http-proxy@^1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" + integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== + dependencies: + eventemitter3 "^3.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" + integrity sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY= + dependencies: + asn1 "0.1.11" + assert-plus "^0.1.5" + ctype "0.5.3" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + integrity sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8= + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + integrity sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI= + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +https-proxy-agent@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" + integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + dependencies: + ms "^2.0.0" + +husky@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/husky/-/husky-1.3.1.tgz#26823e399300388ca2afff11cfa8a86b0033fae0" + integrity sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg== + dependencies: + cosmiconfig "^5.0.7" + execa "^1.0.0" + find-up "^3.0.0" + get-stdin "^6.0.0" + is-ci "^2.0.0" + pkg-dir "^3.0.0" + please-upgrade-node "^3.1.1" + read-pkg "^4.0.1" + run-node "^1.0.0" + slash "^2.0.0" + +hyperlinker@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hyperlinker/-/hyperlinker-1.0.0.tgz#23dc9e38a206b208ee49bc2d6c8ef47027df0c0e" + integrity sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ== + +iconv-lite@0.4.24, iconv-lite@^0.4.23, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI= + dependencies: + postcss "^6.0.1" + +identity-obj-proxy@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= + dependencies: + harmony-reflect "^1.4.6" + +idtoken-verifier@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/idtoken-verifier/-/idtoken-verifier-1.4.1.tgz#032d7720fdd091830d22f694eb94b5f6644b0d3b" + integrity sha512-BoJc00Gj37hrNlx7NYmd8uJFvvC9/FiWDKugDluP4JmgOGT/AfNlPfnRmi9fHEEqSatnIIr3WTyf0dlhHfSHnA== + dependencies: + base64-js "^1.2.0" + crypto-js "^3.1.9-1" + jsbn "^0.1.0" + promise-polyfill "^8.1.3" + unfetch "^4.1.0" + url-join "^1.1.0" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + dependencies: + minimatch "^3.0.4" + +ignore@^3.3.5, ignore@^3.3.7: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.2, ignore@^4.0.3, ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.1: + version "5.1.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= + +immer@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" + integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== + +immutable@^3.7.3: + version "3.8.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" + integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +import-local@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ== + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +import-modules@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/import-modules/-/import-modules-1.1.0.tgz#748db79c5cc42bb9701efab424f894e72600e9dc" + integrity sha1-dI23nFzEK7lwHvq0JPiU5yYA6dw= + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +indent-string@^3.0.0, indent-string@^3.1.0, indent-string@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +init-package-json@^1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" + integrity sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw== + dependencies: + glob "^7.1.1" + npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0" + promzard "^0.3.0" + read "~1.0.1" + read-package-json "1 || 2" + semver "2.x || 3.x || 4 || 5" + validate-npm-package-license "^3.0.1" + validate-npm-package-name "^3.0.0" + +inquirer@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52" + integrity sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.0" + figures "^2.0.0" + lodash "^4.17.10" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.1.0" + string-width "^2.1.0" + strip-ansi "^5.0.0" + through "^2.3.6" + +inquirer@^6.1.0, inquirer@^6.2.0, inquirer@^6.2.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +install@0.12.2: + version "0.12.2" + resolved "https://registry.yarnpkg.com/install/-/install-0.12.2.tgz#ea10e9b2cbb5b0484f25080b24b5b34429d9f564" + integrity sha512-+7thTb4Rpvs9mnlhHKGZFJbGOO6kyMgy+gg0sgM5vFzIFK0wrCYXqdlaM71Bi289DTuPHf61puMFsaZBcwDIrg== + +internal-ip@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-3.0.1.tgz#df5c99876e1d2eb2ea2d74f520e3f669a00ece27" + integrity sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q== + dependencies: + default-gateway "^2.6.0" + ipaddr.js "^1.5.2" + +interpret@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + +ipaddr.js@^1.5.2: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.0.2, is-buffer@^1.1.5, is-buffer@~1.1.1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" + integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== + +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== + dependencies: + ci-info "^1.5.0" + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-generator-fn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" + integrity sha1-lp1J4bszKfa7fwkIm+JleLLd1Go= + +is-generator@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-generator/-/is-generator-1.0.3.tgz#c14c21057ed36e328db80347966c693f886389f3" + integrity sha1-wUwhBX7TbjKNuANHlmxpP4hjifM= + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-lower-case@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" + integrity sha1-fhR75HaNxGbbO/shzGCzHmrWk5M= + dependencies: + lower-case "^1.1.0" + +is-nan@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.2.1.tgz#9faf65b6fb6db24b7f5c0628475ea71f988401e2" + integrity sha1-n69ltvttskt/XAYoR16nH5iEAeI= + dependencies: + define-properties "^1.1.1" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.0, is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== + dependencies: + symbol-observable "^1.1.0" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= + +is-path-in-cwd@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.0.0.tgz#7fd1a7f1b69e160cde9181d2313f445c68aa2679" + integrity sha512-EYisGhpgSCwspmIuRHGjROWTon2Xp8Z7U03Wubk/bTL5TTRC5R1rGVgyjzBrk9+ULdH6cRD06KRcw/xfqhVYKQ== + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" + integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg== + dependencies: + isobject "^4.0.0" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= + +is-root@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.0.0.tgz#838d1e82318144e5a6f77819d90207645acc7019" + integrity sha512-F/pJIk8QD6OX5DNhRB7hWamLsUilmkDGho48KbgZ6xg/lmAZXHxzXQ91jzB3yRSw5kdQGGGc4yz8HYhTYIMWPg== + +is-ssh@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.1.tgz#f349a8cadd24e65298037a522cf7520f2e81a0f3" + integrity sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg== + dependencies: + protocols "^1.1.0" + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + +is-text-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= + dependencies: + text-extensions "^1.0.0" + +is-text-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" + integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== + dependencies: + text-extensions "^2.0.0" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-upper-case@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" + integrity sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8= + dependencies: + upper-case "^1.1.0" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.0, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isemail@3.x.x: + version "3.2.0" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c" + integrity sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg== + dependencies: + punycode "2.x.x" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isobject@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" + integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== + +isomorphic-fetch@2.2.1, isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-api@^1.3.1: + version "1.3.7" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa" + integrity sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA== + dependencies: + async "^2.1.4" + fileset "^2.0.2" + istanbul-lib-coverage "^1.2.1" + istanbul-lib-hook "^1.2.2" + istanbul-lib-instrument "^1.10.2" + istanbul-lib-report "^1.1.5" + istanbul-lib-source-maps "^1.2.6" + istanbul-reports "^1.5.1" + js-yaml "^3.7.0" + mkdirp "^0.5.1" + once "^1.4.0" + +istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" + integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ== + +istanbul-lib-coverage@^2.0.3, istanbul-lib-coverage@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== + +istanbul-lib-hook@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" + integrity sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw== + dependencies: + append-transform "^0.4.0" + +istanbul-lib-hook@^2.0.3: + version "2.0.7" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz#c95695f383d4f8f60df1f04252a9550e15b5b133" + integrity sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA== + dependencies: + append-transform "^1.0.0" + +istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" + integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A== + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.2.1" + semver "^5.3.0" + +istanbul-lib-instrument@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== + dependencies: + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" + istanbul-lib-coverage "^2.0.5" + semver "^6.0.0" + +istanbul-lib-report@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" + integrity sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw== + dependencies: + istanbul-lib-coverage "^1.2.1" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-report@^2.0.4: + version "2.0.8" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== + dependencies: + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + supports-color "^6.1.0" + +istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" + integrity sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg== + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.2.1" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-lib-source-maps@^3.0.2: + version "3.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + rimraf "^2.6.3" + source-map "^0.6.1" + +istanbul-reports@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" + integrity sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw== + dependencies: + handlebars "^4.0.3" + +istanbul-reports@^2.1.1: + version "2.2.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" + integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== + dependencies: + handlebars "^4.1.2" + +istanbul@0.4.5, istanbul@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" + integrity sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs= + dependencies: + abbrev "1.0.x" + async "1.x" + escodegen "1.8.x" + esprima "2.7.x" + glob "^5.0.15" + handlebars "^4.0.1" + js-yaml "3.x" + mkdirp "0.5.x" + nopt "3.x" + once "1.x" + resolve "1.1.x" + supports-color "^3.1.0" + which "^1.1.1" + wordwrap "^1.0.0" + +iterall@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" + integrity sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA== + +jasmine-growl-reporter@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jasmine-growl-reporter/-/jasmine-growl-reporter-2.0.0.tgz#4943a2481193d66a8a68ee2f38b6c360fb037859" + integrity sha512-RYwVfPaGgxQQSHDOt6jQ99/KAkFQ/Fiwg/AzBS+uO9A4UhGhxb7hwXaUUSU/Zs0MxBoFNqmIRC+7P4/+5O3lXg== + dependencies: + growl "^1.10.5" + +jasmine-node@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jasmine-node/-/jasmine-node-3.0.0.tgz#f12b6fdd24633402ec23e8ea6fef6ffbcb464f90" + integrity sha512-vUa5Q7bQYwHHqi6FlJYndiKqZp+d+c3MKe0QUMwwrC4JRmoRV3zkg0buxB/uQ6qLh0NO34TNstpAnvaZ6xGlAA== + dependencies: + coffeescript "~1.12.7" + gaze "~1.1.2" + jasmine-growl-reporter "~2.0.0" + jasmine-reporters "~1.0.0" + mkdirp "~0.3.5" + requirejs "~2.3.6" + underscore "~1.9.1" + walkdir "~0.0.12" + +jasmine-reporters@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jasmine-reporters/-/jasmine-reporters-1.0.2.tgz#ab613ed5977dc7487e85b3c12f6a8ea8db2ade31" + integrity sha1-q2E+1Zd9x0h+hbPBL2qOqNsq3jE= + dependencies: + mkdirp "~0.3.5" + +jest-changed-files@^23.4.2: + version "23.4.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" + integrity sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA== + dependencies: + throat "^4.0.0" + +jest-cli@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" + integrity sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.1.11" + import-local "^1.0.0" + is-ci "^1.0.10" + istanbul-api "^1.3.1" + istanbul-lib-coverage "^1.2.0" + istanbul-lib-instrument "^1.10.1" + istanbul-lib-source-maps "^1.2.4" + jest-changed-files "^23.4.2" + jest-config "^23.6.0" + jest-environment-jsdom "^23.4.0" + jest-get-type "^22.1.0" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve-dependencies "^23.6.0" + jest-runner "^23.6.0" + jest-runtime "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + jest-watcher "^23.4.0" + jest-worker "^23.2.0" + micromatch "^2.3.11" + node-notifier "^5.2.1" + prompts "^0.1.9" + realpath-native "^1.0.0" + rimraf "^2.5.4" + slash "^1.0.0" + string-length "^2.0.0" + strip-ansi "^4.0.0" + which "^1.2.12" + yargs "^11.0.0" + +jest-config@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" + integrity sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ== + dependencies: + babel-core "^6.0.0" + babel-jest "^23.6.0" + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^23.4.0" + jest-environment-node "^23.4.0" + jest-get-type "^22.1.0" + jest-jasmine2 "^23.6.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + micromatch "^2.3.11" + pretty-format "^23.6.0" + +jest-diff@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" + integrity sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g== + dependencies: + chalk "^2.0.1" + diff "^3.2.0" + jest-get-type "^22.1.0" + pretty-format "^23.6.0" + +jest-docblock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" + integrity sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c= + dependencies: + detect-newline "^2.1.0" + +jest-each@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" + integrity sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg== + dependencies: + chalk "^2.0.1" + pretty-format "^23.6.0" + +jest-environment-jsdom@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023" + integrity sha1-BWp5UrP+pROsYqFAosNox52eYCM= + dependencies: + jest-mock "^23.2.0" + jest-util "^23.4.0" + jsdom "^11.5.1" + +jest-environment-node@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10" + integrity sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA= + dependencies: + jest-mock "^23.2.0" + jest-util "^23.4.0" + +jest-get-type@^22.1.0: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w== + +jest-haste-map@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" + integrity sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg== + dependencies: + fb-watchman "^2.0.0" + graceful-fs "^4.1.11" + invariant "^2.2.4" + jest-docblock "^23.2.0" + jest-serializer "^23.0.1" + jest-worker "^23.2.0" + micromatch "^2.3.11" + sane "^2.0.0" + +jest-jasmine2@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" + integrity sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ== + dependencies: + babel-traverse "^6.0.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^23.6.0" + is-generator-fn "^1.0.0" + jest-diff "^23.6.0" + jest-each "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + pretty-format "^23.6.0" + +jest-leak-detector@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" + integrity sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg== + dependencies: + pretty-format "^23.6.0" + +jest-matcher-utils@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" + integrity sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog== + dependencies: + chalk "^2.0.1" + jest-get-type "^22.1.0" + pretty-format "^23.6.0" + +jest-message-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f" + integrity sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8= + dependencies: + "@babel/code-frame" "^7.0.0-beta.35" + chalk "^2.0.1" + micromatch "^2.3.11" + slash "^1.0.0" + stack-utils "^1.0.1" + +jest-mock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" + integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ= + +jest-pnp-resolver@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.0.2.tgz#470384ae9ea31f72136db52618aa4010ff23b715" + integrity sha512-H2DvUlwdMedNGv4FOliPDnxani6ATWy70xe2eckGJgkLoMaWzRPqpSlc5ShqX0Ltk5OhRQvPQY2LLZPOpgcc7g== + +jest-regex-util@^23.3.0: + version "23.3.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" + integrity sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U= + +jest-resolve-dependencies@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" + integrity sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA== + dependencies: + jest-regex-util "^23.3.0" + jest-snapshot "^23.6.0" + +jest-resolve@23.6.0, jest-resolve@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" + integrity sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA== + dependencies: + browser-resolve "^1.11.3" + chalk "^2.0.1" + realpath-native "^1.0.0" + +jest-runner@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" + integrity sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA== + dependencies: + exit "^0.1.2" + graceful-fs "^4.1.11" + jest-config "^23.6.0" + jest-docblock "^23.2.0" + jest-haste-map "^23.6.0" + jest-jasmine2 "^23.6.0" + jest-leak-detector "^23.6.0" + jest-message-util "^23.4.0" + jest-runtime "^23.6.0" + jest-util "^23.4.0" + jest-worker "^23.2.0" + source-map-support "^0.5.6" + throat "^4.0.0" + +jest-runtime@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" + integrity sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw== + dependencies: + babel-core "^6.0.0" + babel-plugin-istanbul "^4.1.6" + chalk "^2.0.1" + convert-source-map "^1.4.0" + exit "^0.1.2" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.1.11" + jest-config "^23.6.0" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + micromatch "^2.3.11" + realpath-native "^1.0.0" + slash "^1.0.0" + strip-bom "3.0.0" + write-file-atomic "^2.1.0" + yargs "^11.0.0" + +jest-serializer@^23.0.1: + version "23.0.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" + integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU= + +jest-snapshot@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" + integrity sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg== + dependencies: + babel-types "^6.0.0" + chalk "^2.0.1" + jest-diff "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-resolve "^23.6.0" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^23.6.0" + semver "^5.5.0" + +jest-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561" + integrity sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE= + dependencies: + callsites "^2.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.11" + is-ci "^1.0.10" + jest-message-util "^23.4.0" + mkdirp "^0.5.1" + slash "^1.0.0" + source-map "^0.6.0" + +jest-validate@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" + integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A== + dependencies: + chalk "^2.0.1" + jest-get-type "^22.1.0" + leven "^2.1.0" + pretty-format "^23.6.0" + +jest-watch-typeahead@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.2.1.tgz#6c40f232996ca6c39977e929e9f79b189e7d87e4" + integrity sha512-xdhEtKSj0gmnkDQbPTIHvcMmXNUDzYpHLEJ5TFqlaI+schi2NI96xhWiZk9QoesAS7oBmKwWWsHazTrYl2ORgg== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.4.1" + jest-watcher "^23.1.0" + slash "^2.0.0" + string-length "^2.0.0" + strip-ansi "^5.0.0" + +jest-watcher@^23.1.0, jest-watcher@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c" + integrity sha1-0uKM50+NrWxq/JIrksq+9u0FyRw= + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.1" + string-length "^2.0.0" + +jest-worker@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" + integrity sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk= + dependencies: + merge-stream "^1.0.1" + +jest@23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" + integrity sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw== + dependencies: + import-local "^1.0.0" + jest-cli "^23.6.0" + +joi@^11.1.1: + version "11.4.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-11.4.0.tgz#f674897537b625e9ac3d0b7e1604c828ad913ccb" + integrity sha512-O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA== + dependencies: + hoek "4.x.x" + isemail "3.x.x" + topo "2.x.x" + +jquery-ui-sortable@*: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jquery-ui-sortable/-/jquery-ui-sortable-1.0.0.tgz#0ee062ce02b29b36585ede3a3e0ddde666060f96" + integrity sha1-DuBizgKymzZYXt46Pg3d5mYGD5Y= + +jquery@>=3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" + integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== + +js-cookie@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" + integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== + +js-levenshtein@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@3.12.2: + version "3.12.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.2.tgz#ef1d067c5a9d9cb65bd72f285b5d8105c77f14fc" + integrity sha512-QHn/Lh/7HhZ/Twc7vJYQTkjuCa0kaCcDcjK5Zlk2rvnUpy7DxMJ23+Jc2dcyvltwQVg1nygAVlB2oRDFHoRS5Q== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@3.13.1, js-yaml@3.x, js-yaml@>=3.13.1, js-yaml@^3.12.0, js-yaml@^3.12.2, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.7.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@^0.1.0, jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^11.5.1, jsdom@^11.9.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" + +jsen@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/jsen/-/jsen-0.6.6.tgz#0240c18cf11350ac021456f48a7eb13bd67e0420" + integrity sha1-AkDBjPETUKwCFFb0in6xO9Z+BCA= + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +jshint@^2.10.2: + version "2.10.2" + resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.10.2.tgz#ed6626c4f8223c98e94aaea62767435427a49a3d" + integrity sha512-e7KZgCSXMJxznE/4WULzybCMNXNAd/bf5TSrvVEq78Q/K8ZwFpmBqQeDtNiHc3l49nV4E/+YeHU/JZjSUIrLAA== + dependencies: + cli "~1.0.0" + console-browserify "1.1.x" + exit "0.1.x" + htmlparser2 "3.8.x" + lodash "~4.17.11" + minimatch "~3.0.2" + shelljs "0.3.x" + strip-json-comments "1.0.x" + +jslint@^0.12.1: + version "0.12.1" + resolved "https://registry.yarnpkg.com/jslint/-/jslint-0.12.1.tgz#7b6a1e21c67380d5c8929c3dc0288227a9365dcb" + integrity sha512-q5iHswjOmJffbsGVq/1umGh4YBxb5pCArNHCZeHpkuVDDKM6IldqUn4hLehKSwQr7Bn07VXjD34Lx3nw+6j8eA== + dependencies: + exit "~0.1.2" + glob "~7.1.3" + nopt "~4.0.1" + readable-stream "~2.1.5" + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.2.6.tgz#f6efc93c06a04de9aec53053df2559bb19e2038b" + integrity sha1-9u/JPAagTemuxTBT3yVZuxniA4s= + +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE= + +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@2.1.0, json5@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" + integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== + dependencies: + minimist "^1.2.0" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsonp@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/jsonp/-/jsonp-0.2.1.tgz#a65b4fa0f10bda719a05441ea7b94c55f3e15bae" + integrity sha1-pltPoPEL2nGaBUQep7lMVfPhW64= + dependencies: + debug "^2.1.3" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +jsonwebtoken@^8.1.0, jsonwebtoken@^8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jsx-ast-utils@^2.0.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz#4d4973ebf8b9d2837ee91a8208cc66f3a2776cfb" + integrity sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ== + dependencies: + array-includes "^3.0.3" + object.assign "^4.1.0" + +"jszip@^2.0.0 || ^3.0.0", jszip@^3.1.5: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.2.2.tgz#b143816df7e106a9597a94c77493385adca5bd1d" + integrity sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + set-immediate-shim "~1.0.1" + +just-extend@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" + integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw== + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@3.x.x, jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +jwt-simple@0.1.x: + version "0.1.0" + resolved "https://registry.yarnpkg.com/jwt-simple/-/jwt-simple-0.1.0.tgz#546b34aab02e3cd49c43a4279498b34d940041e3" + integrity sha1-VGs0qrAuPNScQ6QnlJizTZQAQeM= + +keygrip@~1.0.0, keygrip@~1.0.1, keygrip@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.0.3.tgz#399d709f0aed2bab0a059e0cdd3a5023a053e1dc" + integrity sha512-/PpesirAIfaklxUzp4Yb7xBper9MwP6hNRA6BGGUFCgbJ+BM5CKBtsoxinNXkLHAr+GXS1/lSlF2rP7cv5Fl+g== + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +killable@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= + dependencies: + is-buffer "^1.0.2" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + +kleur@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" + integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ== + +knockout@^3.4.2: + version "3.5.0" + resolved "https://registry.yarnpkg.com/knockout/-/knockout-3.5.0.tgz#6d3e19bf53b1dc4d8de81c97a5ba9672443dc292" + integrity sha512-vBUF/IsBDzaejHkNpiquKdc5uPrImXuQ4Mb9lEfNNJ5cyHGI8ThDupR+h3eMFZhfmPE/brfwcIAn/fm0yOvJUg== + +knuth-shuffle-seeded@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz#01f1b65733aa7540ee08d8b0174164d22081e4e1" + integrity sha1-AfG2VzOqdUDuCNiwF0Fk0iCB5OE= + dependencies: + seed-random "~2.2.0" + +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== + dependencies: + lodash "^4.17.5" + webpack-sources "^1.1.0" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= + dependencies: + package-json "^4.0.0" + +latest-version@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +lazy-cache@^0.2.3: + version "0.2.7" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" + integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== + +length-stream@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/length-stream/-/length-stream-0.1.1.tgz#e724b1be2e3a961d4c4313437e49656910fae6d6" + integrity sha1-5ySxvi46lh1MQxNDfkllaRD65tY= + dependencies: + pass-stream "~0.1.0" + +lerna@^3.14.0: + version "3.16.4" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.16.4.tgz#158cb4f478b680f46f871d5891f531f3a2cb31ec" + integrity sha512-0HfwXIkqe72lBLZcNO9NMRfylh5Ng1l8tETgYQ260ZdHRbPuaLKE3Wqnd2YYRRkWfwPyEyZO8mZweBR+slVe1A== + dependencies: + "@lerna/add" "3.16.2" + "@lerna/bootstrap" "3.16.2" + "@lerna/changed" "3.16.4" + "@lerna/clean" "3.16.0" + "@lerna/cli" "3.13.0" + "@lerna/create" "3.16.0" + "@lerna/diff" "3.16.0" + "@lerna/exec" "3.16.0" + "@lerna/import" "3.16.0" + "@lerna/init" "3.16.0" + "@lerna/link" "3.16.2" + "@lerna/list" "3.16.0" + "@lerna/publish" "3.16.4" + "@lerna/run" "3.16.0" + "@lerna/version" "3.16.4" + import-local "^2.0.0" + npmlog "^4.1.2" + +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lie@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== + dependencies: + immediate "~3.0.5" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +lint-staged@^8.1.5: + version "8.2.1" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.2.1.tgz#752fcf222d9d28f323a3b80f1e668f3654ff221f" + integrity sha512-n0tDGR/rTCgQNwXnUf/eWIpPNddGWxC32ANTNYsj2k02iZb7Cz5ox2tytwBu+2r0zDXMEMKw7Y9OD/qsav561A== + dependencies: + chalk "^2.3.1" + commander "^2.14.1" + cosmiconfig "^5.2.0" + debug "^3.1.0" + dedent "^0.7.0" + del "^3.0.0" + execa "^1.0.0" + g-status "^2.0.2" + is-glob "^4.0.0" + is-windows "^1.0.2" + listr "^0.14.2" + listr-update-renderer "^0.5.0" + lodash "^4.17.11" + log-symbols "^2.2.0" + micromatch "^3.1.8" + npm-which "^3.0.1" + p-map "^1.1.1" + path-is-inside "^1.0.2" + pify "^3.0.0" + please-upgrade-node "^3.0.2" + staged-git-files "1.1.2" + string-argv "^0.0.2" + stringify-object "^3.2.2" + yup "^0.27.0" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= + +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^2.3.0" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + +listr@^0.14.2: + version "0.14.3" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +load-json-file@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" + integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== + dependencies: + graceful-fs "^4.1.15" + parse-json "^4.0.0" + pify "^4.0.1" + strip-bom "^3.0.0" + type-fest "^0.3.0" + +load-json-file@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" + integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== + dependencies: + graceful-fs "^4.1.15" + parse-json "^5.0.0" + strip-bom "^4.0.0" + type-fest "^0.6.0" + +loader-fs-cache@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz#54cedf6b727e1779fd8f01205f05f6e88706f086" + integrity sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw== + dependencies: + find-cache-dir "^0.1.1" + mkdirp "0.5.1" + +loader-runner@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash-cli@^4: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash-cli/-/lodash-cli-4.17.5.tgz#1bab72c8c9980febf4fe7a1900b0971ce040dd0b" + integrity sha512-eeQi+oVS76ofP791g4wEGs4B4nyc4fiHboUCc0BzM8qCkLAzqbroewOt98A8ISoY1HH2di00pENNErXf0MWxiw== + dependencies: + closure-compiler "0.2.12" + glob "7.1.1" + lodash "4.17.5" + semver "5.3.0" + uglify-js "2.7.5" + +lodash-es@^4.17.4: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" + integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== + +lodash._basecallback@^3.0.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz#b7b2bb43dc2160424a21ccf26c57e443772a8e27" + integrity sha1-t7K7Q9whYEJKIczybFfkQ3cqjic= + dependencies: + lodash._baseisequal "^3.0.0" + lodash._bindcallback "^3.0.0" + lodash.isarray "^3.0.0" + lodash.pairs "^3.0.0" + +lodash._baseeach@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz#cf8706572ca144e8d9d75227c990da982f932af3" + integrity sha1-z4cGVyyhROjZ11InyZDamC+TKvM= + dependencies: + lodash.keys "^3.0.0" + +lodash._basefind@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basefind/-/lodash._basefind-3.0.0.tgz#b2bba05cc645f972de2cf925fa2bf63a0f60c8ae" + integrity sha1-srugXMZF+XLeLPkl+iv2Og9gyK4= + +lodash._basefindindex@^3.0.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz#f083360a1b022418ed81bc899beb312e21e74a4f" + integrity sha1-8IM2ChsCJBjtgbyJm+sxLiHnSk8= + +lodash._baseisequal@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1" + integrity sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE= + dependencies: + lodash.isarray "^3.0.0" + lodash.istypedarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash._baseismatch@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/lodash._baseismatch/-/lodash._baseismatch-3.1.3.tgz#0728fc48efa11699d3d5f2d73049f2ab13c40fd5" + integrity sha1-Byj8SO+hFpnT1fLXMEnyqxPED9U= + dependencies: + lodash._baseisequal "^3.0.0" + +lodash._basematches@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._basematches/-/lodash._basematches-3.2.0.tgz#f47e03f07ec20784ab0968d0cb6cb597e2101158" + integrity sha1-9H4D8H7CB4SrCWjQy2y1l+IQEVg= + dependencies: + lodash._baseismatch "^3.0.0" + lodash.pairs "^3.0.0" + +lodash._bindcallback@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash.assign@^4.0.3, lodash.assign@^4.0.6: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= + +lodash.camelcase@^4.1.1, lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.every@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.every/-/lodash.every-4.6.0.tgz#eb89984bebc4364279bb3aefbbd1ca19bfa6c6a7" + integrity sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc= + +lodash.find@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-3.2.1.tgz#046e319f3ace912ac6c9246c7f683c5ec07b36ad" + integrity sha1-BG4xnzrOkSrGySRsf2g8XsB7Nq0= + dependencies: + lodash._basecallback "^3.0.0" + lodash._baseeach "^3.0.0" + lodash._basefind "^3.0.0" + lodash._basefindindex "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash.find@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" + integrity sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E= + +lodash.findwhere@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.findwhere/-/lodash.findwhere-3.1.0.tgz#7937d34f3eac818dec7fa94e8ca5e26fdba1cfc1" + integrity sha1-eTfTTz6sgY3sf6lOjKXib9uhz8E= + dependencies: + lodash._basematches "^3.0.0" + lodash.find "^3.0.0" + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= + +lodash.foreach@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + +lodash.isempty@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" + integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4= + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + +lodash.isobject@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" + integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + +lodash.istypedarray@^3.0.0: + version "3.0.6" + resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62" + integrity sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I= + +lodash.kebabcase@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.omit@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" + integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + +lodash.pairs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz#bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9" + integrity sha1-u+CNV4bu6qCaFckevw3LfSvjJqk= + dependencies: + lodash.keys "^3.0.0" + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.set@^4.0.0, lodash.set@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= + +lodash.snakecase@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.tail@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" + integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ= + +lodash.template@^4.0.2, lodash.template@^4.4.0, lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash.upperfirst@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984= + +lodash.without@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" + integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= + +lodash.zip@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" + integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA= + +lodash@4.17.11: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== + +lodash@4.17.5: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + integrity sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw== + +"lodash@>=3.5 <5", lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@~4.17.10, lodash@~4.17.11: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +lodash@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= + +log-symbols@2.2.0, log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= + dependencies: + chalk "^1.0.0" + +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= + dependencies: + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" + +loglevel@^1.4.1: + version "1.6.3" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" + integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== + +lolex@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.3.1.tgz#3d2319894471ea0950ef64692ead2a5318cff362" + integrity sha512-mQuW55GhduF3ppo+ZRUTz1PRjEh1hS5BbqU7d8D0ez2OKxHDod7StPPeAVKisZR5aLkHZjdGWSL42LSONUJsZw== + +lolex@^2.4.2: + version "2.7.5" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" + integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q== + +lolex@^4.1.0, lolex@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.2.0.tgz#ddbd7f6213ca1ea5826901ab1222b65d714b3cd7" + integrity sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg== + +long-timeout@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/long-timeout/-/long-timeout-0.1.1.tgz#9721d788b47e0bcb5a24c2e2bee1a0da55dab514" + integrity sha1-lyHXiLR+C8taJMLivuGg2lXatRQ= + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case-first@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" + integrity sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E= + dependencies: + lower-case "^1.1.2" + +lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@4.1.x, lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +macos-release@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" + integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== + +make-dir@^1.0.0, make-dir@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801" + integrity sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw== + dependencies: + semver "^6.0.0" + +make-error@^1.1.1: + version "1.3.5" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== + +make-fetch-happen@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.0.tgz#a8e3fe41d3415dd656fe7b8e8172e1fb4458b38d" + integrity sha512-nFr/vpL1Jc60etMVKeaLOqfGjMMb3tAHFVJWxHOFCFS04Zmd7kGlMxo0l1tzfhoQje0/UPnd0X8OeGUiXXnfPA== + dependencies: + agentkeepalive "^3.4.1" + cacache "^12.0.0" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + lru-cache "^5.1.1" + mississippi "^3.0.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^4.0.0" + ssri "^6.0.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +marked@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.4.0.tgz#9ad2c2a7a1791f10a852e0112f77b571dce10c66" + integrity sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw== + +matcher@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz#51d8301e138f840982b338b116bb0c09af62c1c2" + integrity sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg== + dependencies: + escape-string-regexp "^1.0.4" + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== + +mattermost-redux@^5.10.0: + version "5.14.0" + resolved "https://registry.yarnpkg.com/mattermost-redux/-/mattermost-redux-5.14.0.tgz#2415bac7563700c6fddd1ecb26b98b4c4a0e2cb5" + integrity sha512-nbqr1XSD2I0ezthSwGRhr9g6Zcpsi9yt90gC/EaBsS9XxWrCMqmqBmsOWoWEsE/G9AD5d+rwowuRy1pyTQZRAQ== + dependencies: + deep-equal "1.0.1" + eslint-plugin-header "3.0.0" + form-data "2.3.3" + gfycat-sdk "1.4.18" + harmony-reflect "1.6.1" + isomorphic-fetch "2.2.1" + mime-db "1.40.0" + moment-timezone "0.5.25" + redux "4.0.1" + redux-action-buffer "1.2.0" + redux-batched-actions "0.4.1" + redux-offline "git+https://github.com/enahum/redux-offline.git#4bd85e7e3b279a2b11fb4d587808d583d2b5e7b5" + redux-persist "4.9.1" + redux-thunk "2.3.0" + reselect "4.0.0" + serialize-error "2.1.0" + shallow-equals "1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +md5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" + integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk= + dependencies: + charenc "~0.0.1" + crypt "~0.0.1" + is-buffer "~1.1.1" + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdn-data@~1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" + integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= + dependencies: + mimic-fn "^1.0.0" + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +memoizee@~0.2.5: + version "0.2.6" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.2.6.tgz#bb45a7ad02530082f1612671dab35219cd2e0741" + integrity sha1-u0WnrQJTAILxYSZx2rNSGc0uB0E= + dependencies: + es5-ext "~0.9.2" + event-emitter "~0.2.2" + next-tick "0.1.x" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-pager@^1.0.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" + integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== + +meow@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" + integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + yargs-parser "^10.0.0" + +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +meow@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + +merge-deep@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2" + integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA== + dependencies: + arr-union "^3.1.0" + clone-deep "^0.2.4" + kind-of "^3.0.2" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" + +merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= + dependencies: + readable-stream "^2.0.1" + +merge2@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.4.tgz#c9269589e6885a60cf80605d9522d4b67ca646e3" + integrity sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A== + +merge@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" + integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== + +message-box@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/message-box/-/message-box-0.2.2.tgz#ddd36a59e8db893c1d4932039595882d1b8124c4" + integrity sha512-A32m9D2ZaE08ZaXoE74AjcKwjtwwEhDT2EeY7A3YMAEB4ypL0uMZw7HegwZ806GIWyY4VLwe3kGO9reIdjwiRg== + dependencies: + lodash "^4.17.14" + +meteor-babel-helpers@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/meteor-babel-helpers/-/meteor-babel-helpers-0.0.3.tgz#f2e5d9f8796fbd2e8901023d7699e5b202ea9fb0" + integrity sha1-8uXZ+HlvvS6JAQI9dpnlsgLqn7A= + +meteor-babel@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/meteor-babel/-/meteor-babel-7.2.0.tgz#4fd176f7dade7979a40672e6652c3c500d806935" + integrity sha512-hHpqdYRSZ9dt3bMv1Pw8U2QVD5l7qspwTb7L2g4w3DV0sw5d8sK8XthdILQhVohVNpomOvIq8TiGH1/RubF8GA== + dependencies: + "@babel/core" "^7.2.0" + "@babel/parser" "^7.2.0" + "@babel/plugin-proposal-class-properties" "^7.2.1" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.2.0" + "@babel/plugin-transform-runtime" "^7.2.0" + "@babel/plugin-transform-typescript" "^7.2.0" + "@babel/preset-react" "^7.0.0" + "@babel/runtime" "^7.2.0" + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.6" + "@babel/types" "^7.2.0" + babel-plugin-transform-es2015-modules-reify "^0.18.0" + babel-preset-meteor "^7.2.0" + babel-preset-minify "^0.5.0" + convert-source-map "^1.6.0" + lodash "^4.17.11" + meteor-babel-helpers "0.0.3" + reify "0.17.3" + +meteor-deque@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/meteor-deque/-/meteor-deque-2.1.0.tgz#5590af424b07eddd6026e206cc7aae5674470439" + integrity sha1-VZCvQksH7d1gJuIGzHquVnRHBDk= + dependencies: + double-ended-queue "2.1.0-0" + +meteor-node-stubs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/meteor-node-stubs/-/meteor-node-stubs-0.4.1.tgz#f755d8f127c1a1ae3d57dc71df197bb8c0e26767" + integrity sha512-UO2OStvLOKoApmOdIP5eCqoLaa/ritMXRg4ffJVdkNLEsczzPvTjgC0Mxk4cM4R8MZkwll90FYgjDf5qUTJdMA== + dependencies: + assert "^1.4.1" + browserify-zlib "^0.1.4" + buffer "^4.9.1" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.7" + events "^1.1.1" + https-browserify "0.0.1" + os-browserify "^0.2.1" + path-browserify "0.0.0" + process "^0.11.9" + punycode "^1.4.1" + querystring-es3 "^0.2.1" + readable-stream "^2.3.6" + stream-browserify "^2.0.1" + stream-http "^2.8.0" + string_decoder "^1.1.0" + timers-browserify "^1.4.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +meteor-promise@0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/meteor-promise/-/meteor-promise-0.8.5.tgz#4a39f21759502deaddcbb068fffa9b5da7116c47" + integrity sha512-QEqFDy7diGKbqToqm4WHrcc6Xtt31NBqr9fgen0gnDnnC2rQntN8WCsrl7xKIixnxPHIOejRfLRoooaSvvWnRg== + +meteor-promise@0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/meteor-promise/-/meteor-promise-0.8.7.tgz#9dadb92b8ac694a0bab43da5fac1a6a7bf831570" + integrity sha512-wAu9XI3+35H1YyhTnnk5QXCfdrho5n/0Ltj65DhsUwtFCuktV7hre92FjtJgBbs+RHj5/iZ8Zcbml40EGLcFTQ== + +methods@^1.1.1, methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + +"mime-db@>= 1.40.0 < 2": + version "1.41.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.41.0.tgz#9110408e1f6aa1b34aef51f2c9df3caddf46b6a0" + integrity sha512-B5gxBI+2K431XW8C2rcc/lhppbuji67nf9v39eH8pkWoZDxnAL0PxdpH32KYRScniF8qDHBDlI+ipgg5WrCUYw== + +mime-db@~1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" + integrity sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc= + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.7: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + +mime-types@~2.0.4: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" + integrity sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY= + dependencies: + mime-db "~1.12.0" + +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== + +mime@1.6.0, mime@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.0.2, mime@^2.0.3, mime@^2.3.1: + version "2.4.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + +mime@~1.2.11, mime@~1.2.9: + version "1.2.11" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + integrity sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA= + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mini-create-react-context@^0.3.0: + version "0.3.2" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.3.2.tgz#79fc598f283dd623da8e088b05db8cddab250189" + integrity sha512-2v+OeetEyliMt5VHMXsBhABoJ0/M4RCe7fatd/fBy6SMiKazUSEt3gxxypfnk2SHMkdBYvorHRoQxuGoiwbzAw== + dependencies: + "@babel/runtime" "^7.4.0" + gud "^1.0.0" + tiny-warning "^1.0.2" + +mini-css-extract-plugin@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0" + integrity sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw== + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= + +minipass@^2.2.1, minipass@^2.3.5: + version "2.5.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.5.0.tgz#dddb1d001976978158a05badfcbef4a771612857" + integrity sha512-9FwMVYhn6ERvMR8XFdOavRz4QK/VJV8elU1x50vYexf9lslDcWe/f4HBRxCPd185ekRSjU6CfYyJCECa/CQy7Q== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + dependencies: + minipass "^2.2.1" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + dependencies: + mkdirp "*" + +mkdirp@*, mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mkdirp@^0.3.5, mkdirp@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" + integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc= + +mocha@^5, mocha@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== + dependencies: + browser-stdout "1.3.1" + commander "2.15.1" + debug "3.1.0" + diff "3.5.0" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.5" + he "1.1.1" + minimatch "3.0.4" + mkdirp "0.5.1" + supports-color "5.4.0" + +mocha@^6.0.2: + version "6.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.0.tgz#f896b642843445d1bb8bca60eabd9206b8916e56" + integrity sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ== + dependencies: + ansi-colors "3.2.3" + browser-stdout "1.3.1" + debug "3.2.6" + diff "3.5.0" + escape-string-regexp "1.0.5" + find-up "3.0.0" + glob "7.1.3" + growl "1.10.5" + he "1.2.0" + js-yaml "3.13.1" + log-symbols "2.2.0" + minimatch "3.0.4" + mkdirp "0.5.1" + ms "2.1.1" + node-environment-flags "1.0.5" + object.assign "4.1.0" + strip-json-comments "2.0.1" + supports-color "6.0.0" + which "1.3.1" + wide-align "1.1.3" + yargs "13.2.2" + yargs-parser "13.0.0" + yargs-unparser "1.5.0" + +mock-stdin@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/mock-stdin/-/mock-stdin-0.3.1.tgz#c657d9642d90786435c64ca5e99bbd4d09bd7dd3" + integrity sha1-xlfZZC2QeGQ1xkyl6Zu9TQm9fdM= + +modify-values@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== + +moment-timezone@0.5.25: + version "0.5.25" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.25.tgz#a11bfa2f74e088327f2cd4c08b3e7bdf55957810" + integrity sha512-DgEaTyN/z0HFaVcVbSyVCUU6HeFdnNC3vE4c9cgu2dgMTvjBUBdBzWfasTBmAW45u5OIMeCJtU8yNjM22DHucw== + dependencies: + moment ">= 2.9.0" + +moment-timezone@^0.5.25: + version "0.5.26" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.26.tgz#c0267ca09ae84631aa3dc33f65bedbe6e8e0d772" + integrity sha512-sFP4cgEKTCymBBKgoxZjYzlSovC20Y6J7y3nanDc5RoBIXKlZhoYwBoZGe3flwU6A372AcRwScH8KiwV6zjy1g== + dependencies: + moment ">= 2.9.0" + +"moment@>= 2.9.0", moment@^2.10.6, moment@^2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + +mongo-object@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/mongo-object/-/mongo-object-0.1.3.tgz#56b2a46d3ae4f0bdb1935241928fb444034b92e5" + integrity sha512-m3vs+a1JkvRXELJMe2ieMmBe03NUy6bctGjWicRhReYj8brDi0ojKHLKLmXWr/RupNaFP8Q7/x8xG8GpFtp9wg== + dependencies: + lodash.foreach "^4.5.0" + lodash.isempty "^4.4.0" + lodash.isobject "^3.0.2" + lodash.without "^4.4.0" + +mongodb-core@3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-3.1.5.tgz#59ca67d7f6cea570d5437624a7afec8d752d477a" + integrity sha512-emT/tM4ZBinqd6RZok+EzDdtN4LjYJIckv71qQVOEFmvXgT5cperZegVmTgox/1cx4XQu6LJ5ZuIwipP/eKdQg== + dependencies: + bson "^1.1.0" + require_optional "^1.0.1" + safe-buffer "^5.1.2" + optionalDependencies: + saslprep "^1.0.0" + +mongodb-uri@0.9.7: + version "0.9.7" + resolved "https://registry.yarnpkg.com/mongodb-uri/-/mongodb-uri-0.9.7.tgz#0f771ad16f483ae65f4287969428e9fbc4aa6181" + integrity sha1-D3ca0W9IOuZfQoeWlCjp+8SqYYE= + +mongodb@3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.1.6.tgz#6054641973b5bf5b5ae1c67dcbcf8fa88280273d" + integrity sha512-E5QJuXQoMlT7KyCYqNNMfAkhfQD79AT4F8Xd+6x37OX+8BL17GyXyWvfm6wuyx4wnzCCPoCSLeMeUN2S7dU9yw== + dependencies: + mongodb-core "3.1.5" + safe-buffer "^5.1.2" + +mongodb@^3.0.8, mongodb@^3.1.13: + version "3.3.2" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.3.2.tgz#ff086b5f552cf07e24ce098694210f3d42d668b2" + integrity sha512-fqJt3iywelk4yKu/lfwQg163Bjpo5zDKhXiohycvon4iQHbrfflSAz9AIlRE6496Pm/dQKQK5bMigdVo2s6gBg== + dependencies: + bson "^1.1.1" + require_optional "^1.0.1" + safe-buffer "^5.1.2" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +mri@^1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a" + integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + integrity sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg= + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.0.0, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +mssql@^4.3.2: + version "4.3.7" + resolved "https://registry.yarnpkg.com/mssql/-/mssql-4.3.7.tgz#cfc60e6f48db7471172158b9878fbb9a910c98ca" + integrity sha512-+cs1uBD2Hut6UNeCnJHUeikWKIEhMTlr8s1bOw2BaVTPcyau1fFUqt1rQRilEq/GsyGkkzrE+TKw0jlvbW5cWQ== + dependencies: + debug "^3.2.6" + generic-pool "^3.6.1" + tedious "^2.7.1" + +mssql@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/mssql/-/mssql-5.1.0.tgz#a06d75866802a8e7e8b69df6a2dc7d2ada82bc4b" + integrity sha512-eHrqRWCEBaXo48y2ZBaDleFvrWm2vYm6dNm1ci0XLYxm6kUb4KRsvjl74iKFhfYyuF9z6qzmTe/QmoQk+YVcVw== + dependencies: + debug "^3.2.6" + generic-pool "^3.6.1" + tedious "^4.2.0" + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +multimatch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" + integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA== + dependencies: + array-differ "^2.0.3" + array-union "^1.0.2" + arrify "^1.0.1" + minimatch "^3.0.4" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mv@~2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI= + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + +mysql@^2.16.0, mysql@^2.17.1: + version "2.17.1" + resolved "https://registry.yarnpkg.com/mysql/-/mysql-2.17.1.tgz#62bba4a039a9b2f73638cd1652ce50fc6f682899" + integrity sha512-7vMqHQ673SAk5C8fOzTG2LpPcf3bNt0oL3sFpxPEEFp1mdlDcrLK0On7z8ZYKaaHrHwNcQ/MTUz7/oobZ2OyyA== + dependencies: + bignumber.js "7.2.1" + readable-stream "2.3.6" + safe-buffer "5.1.2" + sqlstring "2.3.1" + +mz@^2.4.0, mz@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@2.13.2: + version "2.13.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" + integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== + +nan@^2.0.8, nan@^2.12.1, nan@^2.9.2: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +native-duplexpair@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/native-duplexpair/-/native-duplexpair-1.0.0.tgz#7899078e64bf3c8a3d732601b3d40ff05db58fa0" + integrity sha1-eJkHjmS/PIo9cyYBs9QP8F21j6A= + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +natural-orderby@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/natural-orderby/-/natural-orderby-2.0.3.tgz#8623bc518ba162f8ff1cdb8941d74deb0fdcc016" + integrity sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q== + +ncp@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= + +needle@^2.2.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.4.9: + version "0.4.9" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.4.9.tgz#92e46b6db53c7e421ed64a2bc94f08be7630df3f" + integrity sha1-kuRrbbU8fkIe1koryU8IvnYw3z8= + +negotiator@0.6.2, negotiator@^0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + +next-tick@0.1.x: + version "0.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-0.1.0.tgz#1912cce8eb9b697d640fbba94f8f00dec3b94259" + integrity sha1-GRLM6OubaX1kD7upT48A3sO5Qlk= + +next-tick@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +nise@^1.3.3, nise@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.2.tgz#b6d29af10e48b321b307e10e065199338eeb2652" + integrity sha512-/6RhOUlicRCbE9s+94qCUsyE+pKlVJ5AhIv+jEE7ESKwnbXqulKZ1FYU+XAtHHWE9TinYvAxDUJAb912PwPoWA== + dependencies: + "@sinonjs/formatio" "^3.2.1" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + lolex "^4.1.0" + path-to-regexp "^1.7.0" + +no-case@^2.2.0, no-case@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +node-environment-flags@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" + integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== + dependencies: + object.getownpropertydescriptors "^2.0.3" + semver "^5.7.0" + +node-fetch-npm@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" + integrity sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw== + dependencies: + encoding "^0.1.11" + json-parse-better-errors "^1.0.0" + safe-buffer "^5.1.1" + +node-fetch@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" + integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= + +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-fetch@^2.2.0, node-fetch@^2.3.0, node-fetch@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + +node-forge@0.7.5: + version "0.7.5" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" + integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ== + +node-gcm@0.14.4: + version "0.14.4" + resolved "https://registry.yarnpkg.com/node-gcm/-/node-gcm-0.14.4.tgz#9965dbce370472e15b1863e8bc4b53a2faffa903" + integrity sha1-mWXbzjcEcuFbGGPovEtTovr/qQM= + dependencies: + debug "^0.8.1" + lodash "^3.10.1" + request "^2.27.0" + +node-gyp@3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.0.tgz#7474f63a3a0501161dda0b6341f022f14c423fa6" + integrity sha1-dHT2OjoFARYd2gtjQfAi8UxCP6Y= + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + minimatch "^3.0.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "2" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + +node-gyp@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.0.3.tgz#80d64c23790244991b6d44532f0a351bedd3dd45" + integrity sha512-z/JdtkFGUm0QaQUusvloyYuGDub3nUbOo5de1Fz57cM++osBTvQatBUSTlF1k/w8vFHPxxXW6zxGvkxXSpaBkQ== + dependencies: + env-paths "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + request "^2.87.0" + rimraf "2" + semver "~5.3.0" + tar "^4.4.8" + which "1" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-libs-browser@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-notifier@^5.2.1: + version "5.4.3" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" + integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== + dependencies: + growly "^1.3.0" + is-wsl "^1.1.0" + semver "^5.5.0" + shellwords "^0.1.1" + which "^1.3.0" + +node-pre-gyp@0.12.0, node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-pre-gyp@0.6.34: + version "0.6.34" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" + integrity sha1-lK0ceYoR1/xnOBtQ1H+MwY2Xmfc= + dependencies: + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +node-pre-gyp@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-pre-gyp@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" + integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-releases@^1.1.29, node-releases@^1.1.3: + version "1.1.29" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.29.tgz#86a57c6587a30ecd6726449e5d293466b0a0bb86" + integrity sha512-R5bDhzh6I+tpi/9i2hrrvGJ3yKPYzlVOORDkXhnZuwi5D3q1I5w4vYy24PJXTcLk9Q0kws9TO77T75bcK8/ysQ== + dependencies: + semver "^5.3.0" + +node-rsa@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-rsa/-/node-rsa-1.0.0.tgz#89d4719bd867933677d81a865c45f1bd5b3fbaca" + integrity sha512-xCk0QUCd7odKC+bWjW0Gm9x/E1Ti3HRsWSjkaKL9JE0aEjpuAa5OTNFiCzSat8sh7dGWIqyka/+070n+UHLyiw== + dependencies: + asn1 "0.2.3" + +node-schedule@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/node-schedule/-/node-schedule-1.3.2.tgz#d774b383e2a6f6ade59eecc62254aea07cd758cb" + integrity sha512-GIND2pHMHiReSZSvS6dpZcDH7pGPGFfWBIEud6S00Q8zEIzAs9ommdyRK1ZbQt8y1LyZsJYZgPnyi7gpU2lcdw== + dependencies: + cron-parser "^2.7.3" + long-timeout "0.1.1" + sorted-array-functions "^1.0.0" + +node-uuid@~1.4.0: + version "1.4.8" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" + integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc= + +node-xlsx@^0.12.0: + version "0.12.1" + resolved "https://registry.yarnpkg.com/node-xlsx/-/node-xlsx-0.12.1.tgz#ec8cabaf66204875094ec850766fcebbcaa6ceb5" + integrity sha512-PMIv0Gs05zb+7ZUQIMA5Fw8eFHxT8fVieKUKMUXI5EBuCsZ56bYKeaMaBf7pBAH3cw8Xa+dGK/xaLWZaEuyfiw== + dependencies: + buffer-from "^1.1.0" + xlsx "^0.12.4" + +node4mailer@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/node4mailer/-/node4mailer-4.0.3.tgz#8f0c7a6737527a128530185a14c2e879989a8910" + integrity sha1-jwx6ZzdSehKFMBhaFMLoeZiaiRA= + +node_memcached@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/node_memcached/-/node_memcached-1.1.3.tgz#89c152af88ad28817f00d891c990451d5d712ea8" + integrity sha1-icFSr4itKIF/ANiRyZBFHV1xLqg= + dependencies: + debug "^2.1.0" + +nodemon@^1.18.10: + version "1.19.2" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.19.2.tgz#b0975147dc99b3761ceb595b3f9277084931dcc0" + integrity sha512-hRLYaw5Ihyw9zK7NF+9EUzVyS6Cvgc14yh8CAYr38tPxJa6UrOxwAQ351GwrgoanHCF0FalQFn6w5eoX/LGdJw== + dependencies: + chokidar "^2.1.5" + debug "^3.1.0" + ignore-by-default "^1.0.1" + minimatch "^3.0.4" + pstree.remy "^1.1.6" + semver "^5.5.0" + supports-color "^5.2.0" + touch "^3.1.0" + undefsafe "^2.0.2" + update-notifier "^2.5.0" + +"nopt@2 || 3", nopt@3.x: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= + dependencies: + abbrev "1" + +nopt@^4.0.1, nopt@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= + dependencies: + abbrev "1" + +normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@^3.0.0, normalize-url@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +normalize-url@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" + integrity sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ== + +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + +npm-lifecycle@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.3.tgz#09e9b0b6686e85fd53bab82364386222d97a3730" + integrity sha512-M0QmmqbEHBXxDrmc6X3+eKjW9+F7Edg1ENau92WkYw1sox6wojHzEZJIRm1ItljEiaigZlKL8mXni/4ylAy1Dg== + dependencies: + byline "^5.0.0" + graceful-fs "^4.1.15" + node-gyp "^5.0.2" + resolve-from "^4.0.0" + slide "^1.1.6" + uid-number "0.0.6" + umask "^1.1.0" + which "^1.3.1" + +"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" + integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== + dependencies: + hosted-git-info "^2.7.1" + osenv "^0.1.5" + semver "^5.6.0" + validate-npm-package-name "^3.0.0" + +npm-packlist@^1.1.6, npm-packlist@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" + integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-path@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" + integrity sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw== + dependencies: + which "^1.2.10" + +npm-pick-manifest@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" + integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw== + dependencies: + figgy-pudding "^3.5.1" + npm-package-arg "^6.0.0" + semver "^5.4.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-which@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" + integrity sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo= + dependencies: + commander "^2.9.0" + npm-path "^2.0.2" + which "^1.2.10" + +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^1.0.2, nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.0.7: + version "2.1.4" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" + integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== + +nyc@^13, nyc@^13.3.0: + version "13.3.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-13.3.0.tgz#da4dbe91a9c8b9ead3f4f3344c76f353e3c78c75" + integrity sha512-P+FwIuro2aFG6B0Esd9ZDWUd51uZrAEoGutqZxzrVmYl3qSfkLgcQpBPBjtDFsUQLFY1dvTQJPOyeqr8S9GF8w== + dependencies: + archy "^1.0.0" + arrify "^1.0.1" + caching-transform "^3.0.1" + convert-source-map "^1.6.0" + find-cache-dir "^2.0.0" + find-up "^3.0.0" + foreground-child "^1.5.6" + glob "^7.1.3" + istanbul-lib-coverage "^2.0.3" + istanbul-lib-hook "^2.0.3" + istanbul-lib-instrument "^3.1.0" + istanbul-lib-report "^2.0.4" + istanbul-lib-source-maps "^3.0.2" + istanbul-reports "^2.1.1" + make-dir "^1.3.0" + merge-source-map "^1.1.0" + resolve-from "^4.0.0" + rimraf "^2.6.3" + signal-exit "^3.0.2" + spawn-wrap "^1.4.2" + test-exclude "^5.1.0" + uuid "^3.3.2" + yargs "^12.0.5" + yargs-parser "^11.1.1" + +oauth-sign@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e" + integrity sha1-y1QPk7srIqfVlBaRoojWDo6pOG4= + +oauth-sign@~0.8.1, oauth-sign@~0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +oauth2-server@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/oauth2-server/-/oauth2-server-2.4.1.tgz#da6dd054c021ec9c29439f5d1a28de63d02b716c" + integrity sha1-2m3QVMAh7JwpQ59dGijeY9ArcWw= + dependencies: + basic-auth "~0.0.1" + +oauth@0.9.x: + version "0.9.15" + resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" + integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE= + +object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^1.1.4: + version "1.3.1" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" + integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== + +object-inspect@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== + +object-is@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@4.1.0, object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.fromentries@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" + integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA== + dependencies: + define-properties "^1.1.2" + es-abstract "^1.11.0" + function-bind "^1.1.1" + has "^1.0.1" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" + integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +octokit-pagination-methods@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" + integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== + +odata-v4-literal@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/odata-v4-literal/-/odata-v4-literal-0.1.1.tgz#47c017b11294c0fc40c9d87d9266425a5671168f" + integrity sha512-xX9IrLywUmFI6In/AgT0Yy0DpBgW/Y7N9Q3iSfbqOjVyE2z8PvWflx9kgPBiCGmpZFw4dG2TKGlVRd2jgD8+vg== + +odata-v4-metadata@^0.1.2: + version "0.1.5" + resolved "https://registry.yarnpkg.com/odata-v4-metadata/-/odata-v4-metadata-0.1.5.tgz#e044900de724a35a869f91cf9acbf51f2b28f9c8" + integrity sha512-EKESasm7rFR+KtRePjvhfoc8FFj2ymSdPuOFFYcWUeuikfAv6nSw+VGuu4UWxcE+ZPoWZU9Wdi6o3cEzvnC1EQ== + +odata-v4-mongodb@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/odata-v4-mongodb/-/odata-v4-mongodb-0.1.12.tgz#dfd7517c0a3b573453d4c70e873323a14d103d51" + integrity sha512-XMR/+U3Xow+oWmK1815iNStoFEJuiQNICrBETSrpZe3A5V9dZ+/UVW/fytxD4qQ6VddCZe0gi07OuAh4EBJ1Yw== + dependencies: + odata-v4-literal "^0.1.0" + odata-v4-parser "^0.1.18" + +odata-v4-parser@0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/odata-v4-parser/-/odata-v4-parser-0.1.13.tgz#4b5cfef0381cc39c1ca0d53c0bbc825cc655b492" + integrity sha1-S1z+8Dgcw5wcoNU8C7yCXMZVtJI= + +odata-v4-parser@^0.1.18, odata-v4-parser@^0.1.29: + version "0.1.29" + resolved "https://registry.yarnpkg.com/odata-v4-parser/-/odata-v4-parser-0.1.29.tgz#49e466037dbc4fc088572a2deae822fc14e6c137" + integrity sha512-7ZsqxcMbGAqKSBme0+lul7g9K52RadGYU3WvYwDdduJNfnduSL59w4OEskvEzWHZMcPRqPnD9XtuO7Rpl+B3jA== + +odata-v4-service-document@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/odata-v4-service-document/-/odata-v4-service-document-0.0.3.tgz#0cd900b5a2e078e02d3383c14d51c48de67caa8a" + integrity sha1-DNkAtaLgeOAtM4PBTVHEjeZ8qoo= + dependencies: + extend "^3.0.0" + odata-v4-metadata "^0.1.2" + odata-v4-service-metadata "^0.1.4" + +odata-v4-service-metadata@^0.1.4, odata-v4-service-metadata@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/odata-v4-service-metadata/-/odata-v4-service-metadata-0.1.6.tgz#bd43d3aad487ac3fdeb979bb4b9cc92a03b95ac9" + integrity sha512-Cjn8xj5087a9jCqwhllzUrRSee67mglV6wNNB44mfRNXi/NNG5tyyXMo2M5/PG8OsHboCr9KdUgjqnYhBPsWxA== + dependencies: + extend "^3.0.0" + odata-v4-metadata "^0.1.2" + +odata-v4-sql@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/odata-v4-sql/-/odata-v4-sql-0.1.2.tgz#6b5d10ac6dd89f2087093b7cefaa511ee7af9ea9" + integrity sha512-Y3S2N2C+W5pRlXsnuZBhGZ+ZlbkBxjjzwi8I6MKRmjpqil1BOs0YIUQWYCp70WmP/psp//hOJHpBRc8iFgomTg== + dependencies: + odata-v4-literal "^0.1.0" + odata-v4-parser "0.1.13" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.1, on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +opn@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035" + integrity sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw== + dependencies: + is-wsl "^1.1.0" + +opn@^5.1.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optimize-css-assets-webpack-plugin@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.1.tgz#9eb500711d35165b45e7fd60ba2df40cb3eb9159" + integrity sha512-Rqm6sSjWtx9FchdP0uzTQDc7GXDKnwVEGoSxjezPkzMewx7gEWE9IMUYKmigTRC4U3RaNSwYVnUDLuIdtTpm0A== + dependencies: + cssnano "^4.1.0" + last-call-webpack-plugin "^3.0.0" + +optionator@^0.8.1, optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +options@>=0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8= + +oracledb@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/oracledb/-/oracledb-3.1.2.tgz#4d7df7b8eda161d4e645837cd43c530232d139e8" + integrity sha512-DOBKpUlfvGAX6bcpuPGtPVVfOOUqFue8eLjbnnmkDyBTU+YuH+gXHRy4ftlFzkHBXYkrSGenFJrXy8dDfEVXCg== + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" + integrity sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8= + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= + dependencies: + lcid "^1.0.0" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-locale@^3.0.0, os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-name@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== + dependencies: + macos-release "^2.2.0" + windows-release "^3.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@0, osenv@^0.1.4, osenv@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" + integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map-series@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" + integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= + dependencies: + p-reduce "^1.0.0" + +p-map@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== + +p-map@^2.0.0, p-map@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-pipe@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" + integrity sha1-SxoROZoRUgpneQ7loMHViB1r7+k= + +p-queue@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-4.0.0.tgz#ed0eee8798927ed6f2c2f5f5b77fdb2061a5d346" + integrity sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg== + dependencies: + eventemitter3 "^3.1.0" + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +p-waterfall@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-waterfall/-/p-waterfall-1.0.0.tgz#7ed94b3ceb3332782353af6aae11aa9fc235bb00" + integrity sha1-ftlLPOszMngjU69qrhGqn8I1uwA= + dependencies: + p-reduce "^1.0.0" + +package-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-3.0.0.tgz#50183f2d36c9e3e528ea0a8605dff57ce976f88e" + integrity sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA== + dependencies: + graceful-fs "^4.1.15" + hasha "^3.0.0" + lodash.flattendeep "^4.4.0" + release-zalgo "^1.0.0" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +packet-reader@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" + integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== + +pad-right@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/pad-right/-/pad-right-0.2.2.tgz#6fbc924045d244f2a2a244503060d3bfc6009774" + integrity sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q= + dependencies: + repeat-string "^1.5.2" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= + +pako@~1.0.2, pako@~1.0.5: + version "1.0.10" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@2.1.x, param-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parchment@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/parchment/-/parchment-1.1.4.tgz#aeded7ab938fe921d4c34bc339ce1168bc2ffde5" + integrity sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parent-require@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977" + integrity sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc= + +parse-asn1@^5.0.0: + version "5.1.4" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" + integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-github-repo-url@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" + integrity sha1-nn2LslKmy2ukJZUGC3v23z28H1A= + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + +parse-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" + integrity sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA== + dependencies: + is-ssh "^1.3.0" + protocols "^1.4.0" + +parse-url@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" + integrity sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg== + dependencies: + is-ssh "^1.3.0" + normalize-url "^3.3.0" + parse-path "^4.0.0" + protocols "^1.4.0" + +parse5@4.0.0, parse5@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== + +parsejson@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.1.tgz#9b10c6c0d825ab589e685153826de0a3ba278bcc" + integrity sha1-mxDGwNglq1ieaFFTgm3go7oni8w= + dependencies: + better-assert "~1.0.0" + +parsejson@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + integrity sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs= + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.2.tgz#9dfe70b2cddac388bde4f35b1f240fa58adbe6c7" + integrity sha1-nf5wss3aw4i95PNbHyQPpYrb5sc= + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.4.tgz#806582a39887e1ea18dd5e2fe0e01902268e9350" + integrity sha1-gGWCo5iH4eoY3V4v4OAZAiaOk1A= + dependencies: + better-assert "~1.0.0" + +parseurl@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-2.0.1.tgz#2d578d3455f660da65eca18ef95b4e0de912761e" + integrity sha1-LVeNNFX2YNpl7KGO+VtODekSdh4= + dependencies: + camel-case "^3.0.0" + upper-case-first "^1.1.0" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +pass-stream@~0.1.0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/pass-stream/-/pass-stream-0.1.5.tgz#9e3afa4d5825cdd1376075bdb56de36dfb33649f" + integrity sha1-njr6TVglzdE3YHW9tW3jbfszZJ8= + dependencies: + readable-stream "https://github.com/jeffbski/readable-stream/archive/v1.0.2-object-transform2-ret-self.tar.gz" + +passport-oauth2@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.5.0.tgz#64babbb54ac46a4dcab35e7f266ed5294e3c4108" + integrity sha512-kqBt6vR/5VlCK8iCx1/KpY42kQ+NEHZwsSyt4Y6STiNjU+wWICG1i8ucc1FapXDGO15C5O5VZz7+7vRzrDPXXQ== + dependencies: + base64url "3.x.x" + oauth "0.9.x" + passport-strategy "1.x.x" + uid2 "0.0.x" + utils-merge "1.x.x" + +passport-strategy@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" + integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ= + +passport@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.0.tgz#c5095691347bd5ad3b5e180238c3914d16f05811" + integrity sha1-xQlWkTR71a07XhgCOMORTRbwWBE= + dependencies: + passport-strategy "1.x.x" + pause "0.0.1" + +password-prompt@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/password-prompt/-/password-prompt-1.1.2.tgz#85b2f93896c5bd9e9f2d6ff0627fa5af3dc00923" + integrity sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA== + dependencies: + ansi-escapes "^3.1.0" + cross-spawn "^6.0.5" + +password-sheriff@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/password-sheriff/-/password-sheriff-1.1.0.tgz#fdb3c3d845a0a3c92de422b2ad9346ce08a71413" + integrity sha1-/bPD2EWgo8kt5CKyrZNGzginFBM= + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5" + integrity sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU= + dependencies: + no-case "^2.2.0" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.5, path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-to-regexp@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30= + dependencies: + isarray "0.0.1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +path@^0.12.7: + version "0.12.7" + resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" + integrity sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8= + dependencies: + process "^0.11.1" + util "^0.10.3" + +pathval@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + integrity sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +permessage-deflate@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/permessage-deflate/-/permessage-deflate-0.1.6.tgz#581f1cedfbd440fac47d0777be88633386b992de" + integrity sha1-WB8c7fvUQPrEfQd3vohjM4a5kt4= + +pg-connection-string@0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7" + integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc= + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@^2.0.4: + version "2.0.7" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.7.tgz#f14ecab83507941062c313df23f6adcd9fd0ce54" + integrity sha512-UiJyO5B9zZpu32GSlP0tXy8J2NsJ9EFGFfz5v6PSbdz/1hBLX1rNiiy5+mAm5iJJYwfCv4A0EBcQLGWwjbpzZw== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@^7.10.0, pg@^7.8.1, pg@^7.8.2: + version "7.12.1" + resolved "https://registry.yarnpkg.com/pg/-/pg-7.12.1.tgz#880636d46d2efbe0968e64e9fe0eeece8ef72a7e" + integrity sha512-l1UuyfEvoswYfcUe6k+JaxiN+5vkOgYcVSbSuw3FvdLqDbaoa2RJo1zfJKfPsSYPFVERd4GHvX3s2PjG1asSDA== + dependencies: + buffer-writer "2.0.0" + packet-reader "1.0.0" + pg-connection-string "0.1.3" + pg-pool "^2.0.4" + pg-types "^2.1.0" + pgpass "1.x" + semver "4.3.2" + +pgpass@1.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" + integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY= + dependencies: + split "^1.0.0" + +phone@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/phone/-/phone-1.0.3.tgz#540fc3500efdbccefd5af77a7b0e255d42e50444" + integrity sha1-VA/DUA79vM79Wvd6ew4lXULlBEQ= + +phone@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/phone/-/phone-1.0.12.tgz#6e2b95fb0b4e269415d76a2bd358dd4018550457" + integrity sha1-biuV+wtOJpQV12or01jdQBhVBFc= + +picomatch@^2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" + integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +plugin-error@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" + integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA== + dependencies: + ansi-colors "^1.0.1" + arr-diff "^4.0.0" + arr-union "^3.1.0" + extend-shallow "^3.0.2" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +pnp-webpack-plugin@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.2.1.tgz#cd9d698df2a6fcf7255093c1c9511adf65b9421b" + integrity sha512-W6GctK7K2qQiVR+gYSv/Gyt6jwwIH4vwdviFqx+Y2jAtVf5eZyYIDf5Ac2NCDMBiX5yWscBLZElPTsyA1UtVVA== + dependencies: + ts-pnp "^1.0.0" + +pomelo-protobuf@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/pomelo-protobuf/-/pomelo-protobuf-0.4.0.tgz#e45e9a0a446eb18667e0c6e13eeb53d47addbda8" + integrity sha1-5F6aCkRusYZn4MbhPutT1Hrdvag= + +portfinder@^1.0.9: + version "1.0.23" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.23.tgz#894db4bcc5daf02b6614517ce89cd21a38226b82" + integrity sha512-B729mL/uLklxtxuiJKfQ84WPxNw5a7Yhx3geQZdcA4GjNjZSTSSMMWyoennMVnTWSmAR0lMdzWYN0JLnHrg1KQ== + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-attribute-case-insensitive@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.1.tgz#b2a721a0d279c2f9103a36331c88981526428cc7" + integrity sha512-L2YKB3vF4PetdTIthQVeT+7YiSzMoNMLLYxPXXppOOP7NoazEAy45sh2LvJ8leCQjfBcfkYQs8TtCcQjeZTp8A== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0" + +postcss-calc@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" + integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== + dependencies: + css-unit-converter "^1.1.1" + postcss "^7.0.5" + postcss-selector-parser "^5.0.0-rc.4" + postcss-value-parser "^3.3.1" + +postcss-color-functional-notation@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" + integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-gray@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" + integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-color-hex-alpha@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" + integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== + dependencies: + postcss "^7.0.14" + postcss-values-parser "^2.0.1" + +postcss-color-mod-function@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" + integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-rebeccapurple@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" + integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-custom-media@^7.0.7: + version "7.0.8" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" + integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== + dependencies: + postcss "^7.0.14" + +postcss-custom-properties@^8.0.9: + version "8.0.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" + integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== + dependencies: + postcss "^7.0.17" + postcss-values-parser "^2.0.1" + +postcss-custom-selectors@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" + integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-dir-pseudo-class@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" + integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-double-position-gradients@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" + integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== + dependencies: + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-env-function@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" + integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-flexbugs-fixes@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz#e094a9df1783e2200b7b19f875dcad3b3aff8b20" + integrity sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA== + dependencies: + postcss "^7.0.0" + +postcss-focus-visible@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" + integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== + dependencies: + postcss "^7.0.2" + +postcss-focus-within@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" + integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== + dependencies: + postcss "^7.0.2" + +postcss-font-variant@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc" + integrity sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg== + dependencies: + postcss "^7.0.2" + +postcss-gap-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" + integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== + dependencies: + postcss "^7.0.2" + +postcss-image-set-function@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" + integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-initial@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.1.tgz#99d319669a13d6c06ef8e70d852f68cb1b399b61" + integrity sha512-I2Sz83ZSHybMNh02xQDK609lZ1/QOyYeuizCjzEhlMgeV/HcDJapQiH4yTqLjZss0X6/6VvKFXUeObaHpJoINw== + dependencies: + lodash.template "^4.5.0" + postcss "^7.0.2" + +postcss-lab-function@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" + integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-load-config@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" + integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-logical@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" + integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== + dependencies: + postcss "^7.0.2" + +postcss-media-minmax@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" + integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== + dependencies: + postcss "^7.0.2" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" + integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-nesting@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" + integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== + dependencies: + postcss "^7.0.2" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-overflow-shorthand@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" + integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== + dependencies: + postcss "^7.0.2" + +postcss-page-break@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" + integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== + dependencies: + postcss "^7.0.2" + +postcss-place@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" + integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-preset-env@6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.5.0.tgz#a14b8f6e748b2a3a4a02a56f36c390f30073b9e1" + integrity sha512-RdsIrYJd9p9AouQoJ8dFP5ksBJEIegA4q4WzJDih8nevz3cZyIP/q1Eaw3pTVpUAu3n7Y32YmvAW3X07mSRGkw== + dependencies: + autoprefixer "^9.4.2" + browserslist "^4.3.5" + caniuse-lite "^1.0.30000918" + css-blank-pseudo "^0.1.4" + css-has-pseudo "^0.10.0" + css-prefers-color-scheme "^3.1.1" + cssdb "^4.3.0" + postcss "^7.0.6" + postcss-attribute-case-insensitive "^4.0.0" + postcss-color-functional-notation "^2.0.1" + postcss-color-gray "^5.0.0" + postcss-color-hex-alpha "^5.0.2" + postcss-color-mod-function "^3.0.3" + postcss-color-rebeccapurple "^4.0.1" + postcss-custom-media "^7.0.7" + postcss-custom-properties "^8.0.9" + postcss-custom-selectors "^5.1.2" + postcss-dir-pseudo-class "^5.0.0" + postcss-double-position-gradients "^1.0.0" + postcss-env-function "^2.0.2" + postcss-focus-visible "^4.0.0" + postcss-focus-within "^3.0.0" + postcss-font-variant "^4.0.0" + postcss-gap-properties "^2.0.0" + postcss-image-set-function "^3.0.1" + postcss-initial "^3.0.0" + postcss-lab-function "^2.0.1" + postcss-logical "^3.0.0" + postcss-media-minmax "^4.0.0" + postcss-nesting "^7.0.0" + postcss-overflow-shorthand "^2.0.0" + postcss-page-break "^2.0.0" + postcss-place "^4.0.1" + postcss-pseudo-class-any-link "^6.0.0" + postcss-replace-overflow-wrap "^3.0.0" + postcss-selector-matches "^4.0.0" + postcss-selector-not "^4.0.0" + +postcss-pseudo-class-any-link@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" + integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-replace-overflow-wrap@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" + integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== + dependencies: + postcss "^7.0.2" + +postcss-safe-parser@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" + integrity sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ== + dependencies: + postcss "^7.0.0" + +postcss-selector-matches@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" + integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-not@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" + integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-parser@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" + integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= + dependencies: + dot-prop "^4.1.1" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" + integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== + +postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" + integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss@^6.0.1, postcss@^6.0.23: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.17" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" + integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= + +postgres-date@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.4.tgz#1c2728d62ef1bff49abdd35c1f86d4bdf118a728" + integrity sha512-bESRvKVuTrjoBluEcpv2346+6kgB7UlnqWZsnbnCccTNq/pqfj1j6oBaN5+b/NrDXepYUT/HKadqv3iS9lJuVA== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + +prettier@^1, prettier@^1.16.4: + version "1.18.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" + integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== + +pretty-bytes@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" + integrity sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk= + +pretty-error@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-format@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" + integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + +pretty-quick@^1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-1.11.1.tgz#462ffa2b93d24c05b7a0c3a001e08601a0c55ee4" + integrity sha512-kSXCkcETfak7EQXz6WOkCeCqpbC4GIzrN/vaneTGMP/fAtD8NerA9bPhCUqHAks1geo7biZNl5uEMPceeneLuA== + dependencies: + chalk "^2.3.0" + execa "^0.8.0" + find-up "^2.1.0" + ignore "^3.3.7" + mri "^1.1.0" + multimatch "^3.0.0" + +printj@~1.1.0, printj@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.1, process@^0.11.10, process@^0.11.9, process@~0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise-polyfill@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-1.1.6.tgz#cd04eff46f5c95c3a7d045591d79b5e3e01f12d7" + integrity sha1-zQTv9G9clcOn0EVZHXm14+AfEtc= + +promise-polyfill@^8.1.3: + version "8.1.3" + resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" + integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== + +promise-retry@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0= + dependencies: + err-code "^1.0.0" + retry "^0.10.0" + +promise@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.1.tgz#e45d68b00a17647b6da711bf85ed6ed47208f450" + integrity sha1-5F1osAoXZHttpxG/he1u1HII9FA= + dependencies: + asap "~2.0.3" + +promise@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.2.tgz#9dcd0672192c589477d56891271bdc27547ae9f0" + integrity sha512-EIyzM39FpVOMbqgzEHhxdrEhtOSDOtjMZQ0M6iVfCE+kWNgCkAyOdnuCWqfmflylftfadU6FkiMgHZA2kUzwRw== + dependencies: + asap "~2.0.6" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +prompts@^0.1.9: + version "0.1.14" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" + integrity sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w== + dependencies: + kleur "^2.0.1" + sisteransi "^0.1.1" + +promzard@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= + dependencies: + read "1" + +prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +property-expr@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-1.5.1.tgz#22e8706894a0c8e28d58735804f6ba3a3673314f" + integrity sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +protobufjs@>=5.0.3: + version "6.8.8" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" + integrity sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +protocols@^1.1.0, protocols@^1.4.0: + version "1.4.7" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.7.tgz#95f788a4f0e979b291ffefcf5636ad113d037d32" + integrity sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg== + +protoduck@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" + integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== + dependencies: + genfun "^5.0.0" + +proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24, psl@^1.1.28: + version "1.3.1" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.1.tgz#d5aa3873a35ec450bc7db9012ad5a7246f6fc8bd" + integrity sha512-2KLd5fKOdAfShtY2d/8XDWVRnmp3zp40Qt6ge2zBPFARLXOGUf2fHD5eg+TV/5oxBtQKVhjUaKFsAaE4HnwfSA== + +pstree.remy@^1.1.6: + version "1.1.7" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.7.tgz#c76963a28047ed61542dc361aa26ee55a7fa15f3" + integrity sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@2.x.x, punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +q@0.9.7: + version "0.9.7" + resolved "https://registry.yarnpkg.com/q/-/q-0.9.7.tgz#4de2e6cb3b29088c9e4cbc03bf9d42fb96ce2f75" + integrity sha1-TeLmyzspCIyeTLwDv51C+5bOL3U= + +q@1.x, q@^1.1.2, q@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qqjs@^0.3.10: + version "0.3.11" + resolved "https://registry.yarnpkg.com/qqjs/-/qqjs-0.3.11.tgz#795b9f7d00807d75c391b1241b5be3077143d9ea" + integrity sha512-pB2X5AduTl78J+xRSxQiEmga1jQV0j43jOPs/MTgTLApGFEOn6NgdE2dEjp7nvDtjkIOZbvFIojAiYUx6ep3zg== + dependencies: + chalk "^2.4.1" + debug "^4.1.1" + execa "^0.10.0" + fs-extra "^6.0.1" + get-stream "^5.1.0" + glob "^7.1.2" + globby "^10.0.1" + http-call "^5.1.2" + load-json-file "^6.2.0" + pkg-dir "^4.2.0" + tar-fs "^2.0.0" + tmp "^0.1.0" + write-json-file "^4.1.1" + +qs-middleware@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/qs-middleware/-/qs-middleware-1.0.3.tgz#84f3535275ba20fd00c2122efacce6ab01092c19" + integrity sha1-hPNTUnW6IP0AwhIu+szmqwEJLBk= + dependencies: + qs "~6.4.0" + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@^6.5.1, qs@^6.6.0, qs@^6.7.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.8.0.tgz#87b763f0d37ca54200334cd57bb2ef8f68a1d081" + integrity sha512-tPSkj8y92PfZVbinY1n84i1Qdx75lZjMQYx9WZhnkofyxzw2r7Ho39G3/aEvSUdebxpnnM4LZJCtvE/Aq3+s9w== + +qs@~0.6.0: + version "0.6.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107" + integrity sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc= + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + integrity sha1-E+JtKK1rD/qpExLNO/cI7TUecjM= + +qs@~6.5.1, qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystring-es3@^0.2.0, querystring-es3@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0, querystring@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= + +quill-delta@^3.6.2: + version "3.6.3" + resolved "https://registry.yarnpkg.com/quill-delta/-/quill-delta-3.6.3.tgz#b19fd2b89412301c60e1ff213d8d860eac0f1032" + integrity sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg== + dependencies: + deep-equal "^1.0.1" + extend "^3.0.2" + fast-diff "1.1.2" + +quill@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/quill/-/quill-1.3.6.tgz#99f4de1fee85925a0d7d4163b6d8328f23317a4d" + integrity sha512-K0mvhimWZN6s+9OQ249CH2IEPZ9JmkFuCQeHAOQax3EZ2nDJ3wfGh59mnlQaZV2i7u8eFarx6wAtvQKgShojug== + dependencies: + clone "^2.1.1" + deep-equal "^1.0.1" + eventemitter3 "^2.0.3" + extend "^3.0.1" + parchment "^1.1.4" + quill-delta "^3.6.2" + +raf@3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +ramda@^0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" + integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.0.3, range-parser@~1.2.0, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@^2.3.3: + version "2.4.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.0.1, rc@^1.1.6, rc@^1.1.7, rc@^1.2.7, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-app-polyfill@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-0.2.2.tgz#a903b61a8bfd9c5e5f16fc63bebe44d6922a44fb" + integrity sha512-mAYn96B/nB6kWG87Ry70F4D4rsycU43VYTj3ZCbKP+SLJXwC0x6YCbwcICh3uW8/C9s1VgP197yx+w7SCWeDdQ== + dependencies: + core-js "2.6.4" + object-assign "4.1.1" + promise "8.0.2" + raf "3.4.1" + whatwg-fetch "3.0.0" + +react-dev-utils@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-8.0.0.tgz#7c5b227a45a32ea8ff7fbc318f336cf9e2c6e34c" + integrity sha512-TK8cj7eghvxfe7bfBluLGpI/upo4EXC+G74hYmPucAG8C2XcbT+vKnlWPwLnABb75Zk+mR6D556Da+yvDjljrw== + dependencies: + "@babel/code-frame" "7.0.0" + address "1.0.3" + browserslist "4.4.1" + chalk "2.4.2" + cross-spawn "6.0.5" + detect-port-alt "1.1.6" + escape-string-regexp "1.0.5" + filesize "3.6.1" + find-up "3.0.0" + fork-ts-checker-webpack-plugin "1.0.0-alpha.6" + global-modules "2.0.0" + globby "8.0.2" + gzip-size "5.0.0" + immer "1.10.0" + inquirer "6.2.1" + is-root "2.0.0" + loader-utils "1.2.3" + opn "5.4.0" + pkg-up "2.0.0" + react-error-overlay "^5.1.4" + recursive-readdir "2.2.2" + shell-quote "1.6.1" + sockjs-client "1.3.0" + strip-ansi "5.0.0" + text-table "0.2.0" + +react-dom@^15.6.2: + version "15.6.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730" + integrity sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA= + dependencies: + fbjs "^0.8.9" + loose-envify "^1.1.0" + object-assign "^4.1.0" + prop-types "^15.5.10" + +react-dom@^16.8.4: + version "16.9.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962" + integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.15.0" + +react-error-overlay@^5.1.4: + version "5.1.6" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.6.tgz#0cd73407c5d141f9638ae1e0c63e7b2bf7e9929d" + integrity sha512-X1Y+0jR47ImDVr54Ab6V9eGk0Hnu7fVWGeHQSOXHf/C2pF9c6uy3gef8QUeuUiWlNb0i08InPSE5a/KJzNzw1Q== + +react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: + version "16.9.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" + integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-router-dom@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.0.1.tgz#ee66f4a5d18b6089c361958e443489d6bab714be" + integrity sha512-zaVHSy7NN0G91/Bz9GD4owex5+eop+KvgbxXsP/O+iW1/Ln+BrJ8QiIR5a6xNPtrdTvLkxqlDClx13QO1uB8CA== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.0.1" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.0.1.tgz#04ee77df1d1ab6cb8939f9f01ad5702dbadb8b0f" + integrity sha512-EM7suCPNKb1NxcTZ2LEOWFtQBQRQXecLxVpdsP4DW4PbbqYWeRiLyV/Tt1SdCrvT2jcyXAXmVTmzvSzrPR63Bg== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + mini-create-react-context "^0.3.0" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-scripts@2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-2.1.8.tgz#21195bb928b2c0462aa98b2d32edf7d034cff2a9" + integrity sha512-mDC8fYWCyuB9VROti8OCPdHE79UEchVVZmuS/yaIs47VkvZpgZqUvzghYBswZRchqnW0aARNY8xXrzoFRhhK7A== + dependencies: + "@babel/core" "7.2.2" + "@svgr/webpack" "4.1.0" + babel-core "7.0.0-bridge.0" + babel-eslint "9.0.0" + babel-jest "23.6.0" + babel-loader "8.0.5" + babel-plugin-named-asset-import "^0.3.1" + babel-preset-react-app "^7.0.2" + bfj "6.1.1" + case-sensitive-paths-webpack-plugin "2.2.0" + css-loader "1.0.0" + dotenv "6.0.0" + dotenv-expand "4.2.0" + eslint "5.12.0" + eslint-config-react-app "^3.0.8" + eslint-loader "2.1.1" + eslint-plugin-flowtype "2.50.1" + eslint-plugin-import "2.14.0" + eslint-plugin-jsx-a11y "6.1.2" + eslint-plugin-react "7.12.4" + file-loader "2.0.0" + fs-extra "7.0.1" + html-webpack-plugin "4.0.0-alpha.2" + identity-obj-proxy "3.0.0" + jest "23.6.0" + jest-pnp-resolver "1.0.2" + jest-resolve "23.6.0" + jest-watch-typeahead "^0.2.1" + mini-css-extract-plugin "0.5.0" + optimize-css-assets-webpack-plugin "5.0.1" + pnp-webpack-plugin "1.2.1" + postcss-flexbugs-fixes "4.1.0" + postcss-loader "3.0.0" + postcss-preset-env "6.5.0" + postcss-safe-parser "4.0.1" + react-app-polyfill "^0.2.2" + react-dev-utils "^8.0.0" + resolve "1.10.0" + sass-loader "7.1.0" + style-loader "0.23.1" + terser-webpack-plugin "1.2.2" + url-loader "1.1.2" + webpack "4.28.3" + webpack-dev-server "3.1.14" + webpack-manifest-plugin "2.0.4" + workbox-webpack-plugin "3.6.3" + optionalDependencies: + fsevents "1.2.4" + +react-transition-group@^2.2.1: + version "2.9.0" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d" + integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg== + dependencies: + dom-helpers "^3.4.0" + loose-envify "^1.4.0" + prop-types "^15.6.2" + react-lifecycles-compat "^3.0.4" + +react@^15.6.2: + version "15.6.2" + resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72" + integrity sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI= + dependencies: + create-react-class "^15.6.0" + fbjs "^0.8.9" + loose-envify "^1.1.0" + object-assign "^4.1.0" + prop-types "^15.5.10" + +react@^16.8.4: + version "16.9.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa" + integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + +read-cmd-shim@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.4.tgz#b4a53d43376211b45243f0072b6e603a8e37640d" + integrity sha512-Pqpl3qJ/QdOIjRYA0q5DND/gLvGOfpIz/fYVDGYpOXfW/lFrIttmLsBnd6IkyK10+JHU9zhsaudfvrQTBB9YFQ== + dependencies: + graceful-fs "^4.1.2" + +read-input@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/read-input/-/read-input-0.3.1.tgz#5b3169308013464ffda6ec92e58d2d3cea948df1" + integrity sha1-WzFpMIATRk/9puyS5Y0tPOqUjfE= + +"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: + version "2.1.0" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.0.tgz#e3d42e6c35ea5ae820d9a03ab0c7291217fc51d5" + integrity sha512-KLhu8M1ZZNkMcrq1+0UJbR8Dii8KZUqB0Sha4mOx/bknfKI/fyrQVrG/YIt2UOtG667sD8+ee4EXMM91W9dC+A== + dependencies: + glob "^7.1.1" + json-parse-better-errors "^1.0.1" + normalize-package-data "^2.0.0" + slash "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.2" + +read-package-tree@^5.1.6: + version "5.3.1" + resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" + integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== + dependencies: + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + util-promisify "^2.1.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== + dependencies: + find-up "^3.0.0" + read-pkg "^3.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" + integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= + dependencies: + normalize-package-data "^2.3.2" + parse-json "^4.0.0" + pify "^3.0.0" + +read@1, read@~1.0.1: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + dependencies: + mute-stream "~0.0.4" + +"readable-stream@1 || 2", readable-stream@2.3.6, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@1.1: + version "1.1.13" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" + integrity sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@2 || 3", readable-stream@^3.0.1, readable-stream@^3.0.2, readable-stream@^3.0.3, readable-stream@^3.0.6, readable-stream@^3.1.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +"readable-stream@https://github.com/jeffbski/readable-stream/archive/v1.0.2-object-transform2-ret-self.tar.gz": + version "1.0.2" + resolved "https://github.com/jeffbski/readable-stream/archive/v1.0.2-object-transform2-ret-self.tar.gz#129e553a773186632e8b58939c58e6f607542b63" + +readable-stream@~2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" + integrity sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA= + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readdir-scoped-modules@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +realpath-native@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== + dependencies: + util.promisify "^1.0.0" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + +redeyed@~2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" + integrity sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs= + dependencies: + esprima "~4.0.0" + +redux-action-buffer@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/redux-action-buffer/-/redux-action-buffer-1.2.0.tgz#2ec0a1d899cc9f6f44ccdeb431ee52ad41dd9755" + integrity sha1-LsCh2JnMn29EzN60Me5SrUHdl1U= + +redux-batched-actions@0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/redux-batched-actions/-/redux-batched-actions-0.4.1.tgz#a8de8cef50a1db4f009d5222820c836515597e22" + integrity sha512-r6tLDyBP3U9cXNLEHs0n1mX5TQfmk6xE0Y9uinYZ5HOyAWDgIJxYqRRkU/bC6XrJ4nS7tasNbxaHJHVmf9UdkA== + +"redux-offline@git+https://github.com/enahum/redux-offline.git#4bd85e7e3b279a2b11fb4d587808d583d2b5e7b5": + version "1.1.5" + resolved "git+https://github.com/enahum/redux-offline.git#4bd85e7e3b279a2b11fb4d587808d583d2b5e7b5" + dependencies: + redux-persist "^4.5.0" + +redux-persist@4.9.1: + version "4.9.1" + resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-4.9.1.tgz#271fa31d1c782ebf9082fb5174e829db24faf59e" + integrity sha512-XoOmfPyo9GEU/WLH9FgB47dNIN9l5ArjHes4o7vUWx9nxZoPxnVodhuHdyc4Ot+fMkdj3L2LTqSHhwrkr0QFUg== + dependencies: + json-stringify-safe "^5.0.1" + lodash "^4.17.4" + lodash-es "^4.17.4" + +redux-persist@^4.5.0: + version "4.10.2" + resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-4.10.2.tgz#8efdb16cfe882c521a78a6d0bfdfef2437f49f96" + integrity sha512-U+e0ieMGC69Zr72929iJW40dEld7Mflh6mu0eJtVMLGfMq/aJqjxUM1hzyUWMR1VUyAEEdPHuQmeq5ti9krIgg== + dependencies: + json-stringify-safe "^5.0.1" + lodash "^4.17.4" + lodash-es "^4.17.4" + +redux-thunk@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" + integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== + +redux@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz#436cae6cc40fbe4727689d7c8fae44808f1bfef5" + integrity sha512-R7bAtSkk7nY6O/OYMVR9RiBI+XghjF9rlbl5806HJbQph0LJVHZrU5oaO4q70eUKiqMRqm4y07KLTlMZ2BlVmg== + dependencies: + loose-envify "^1.4.0" + symbol-observable "^1.2.0" + +reflect-metadata@^0.1.10, reflect-metadata@^0.1.12, reflect-metadata@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +regenerate-unicode-properties@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" + integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.2.1, regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.12.0: + version "0.12.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" + integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== + +regenerator-runtime@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + +regenerator-transform@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" + integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== + dependencies: + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp-tree@^0.1.6: + version "0.1.13" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.13.tgz#5b19ab9377edc68bc3679256840bb29afc158d7f" + integrity sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw== + +regexp.prototype.flags@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" + integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA== + dependencies: + define-properties "^1.1.2" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^4.5.4: + version "4.5.5" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.5.tgz#aaffe61c2af58269b3e516b61a73790376326411" + integrity sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.1.0" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" + +registry-auth-token@^3.0.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" + integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-auth-token@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be" + integrity sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw== + dependencies: + rc "^1.2.8" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= + dependencies: + rc "^1.0.1" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= + +regjsgen@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" + integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= + dependencies: + jsesc "~0.5.0" + +regjsparser@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" + integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== + dependencies: + jsesc "~0.5.0" + +reify@0.17.3: + version "0.17.3" + resolved "https://registry.yarnpkg.com/reify/-/reify-0.17.3.tgz#5d7a4539dbb4c8310bbde401da39bfb07116d926" + integrity sha512-i0t837UYnWyJPCeesupZjmpThIppOPSs4I/uHmsWzQaiGQqtsYlbeJNN5i+61fe6UEA3Famc3IHnlm511poMnA== + dependencies: + acorn "^5.5.3" + semver "^5.4.1" + +reify@^0.18.1: + version "0.18.1" + resolved "https://registry.yarnpkg.com/reify/-/reify-0.18.1.tgz#7e5fab2f4a33418ad42afded905cd0e78eef110b" + integrity sha512-eNiNGxo5Cz/s/7DOeQW5+lTAxMexZPFA8XW/ef6f8WBLtQfYAhDNXxva7ROFC/Wa3q91usYzqJYwC85OXaWUzA== + dependencies: + acorn "^5.5.3" + semver "^5.4.1" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +release-zalgo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" + integrity sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA= + dependencies: + es6-error "^4.0.1" + +remap-istanbul@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/remap-istanbul/-/remap-istanbul-0.13.0.tgz#a529dfd080bb760f5274e3671c9c065f29923ed1" + integrity sha512-rS5ZpVAx3fGtKZkiBe1esXg5mKYbgW9iz8kkADFt3p6lo3NsBBUX1q6SwdhwUtYCGnr7nK6gRlbYK3i8R0jbRA== + dependencies: + istanbul "0.4.5" + minimatch "^3.0.4" + plugin-error "^1.0.1" + source-map "0.6.1" + through2 "3.0.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" + integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== + dependencies: + css-select "^1.1.0" + dom-converter "^0.2" + htmlparser2 "^3.3.0" + strip-ansi "^3.0.0" + utila "^0.4.0" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +request-promise-core@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" + integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== + dependencies: + lodash "^4.17.11" + +request-promise-native@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" + integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== + dependencies: + request-promise-core "1.1.2" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@2, "request@>= 2.52.0", request@^2.27.0, request@^2.81.0, request@^2.87.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +request@2.27.x: + version "2.27.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.27.0.tgz#dfb1a224dd3a5a9bade4337012503d710e538668" + integrity sha1-37GiJN06Wput5DNwElA9cQ5Thmg= + dependencies: + aws-sign "~0.3.0" + cookie-jar "~0.3.0" + forever-agent "~0.5.0" + form-data "~0.1.0" + hawk "~1.0.0" + http-signature "~0.10.0" + json-stringify-safe "~5.0.0" + mime "~1.2.9" + node-uuid "~1.4.0" + oauth-sign "~0.3.0" + qs "~0.6.0" + tunnel-agent "~0.3.0" + +request@2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + integrity sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA= + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +request@2.83.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + integrity sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +"require-like@>= 0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" + integrity sha1-rW8wwTvs15cBDEaK+ndcDAprR/o= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +require_optional@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" + integrity sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g== + dependencies: + resolve-from "^2.0.0" + semver "^5.1.0" + +requirejs@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.6.tgz#e5093d9601c2829251258c0b9445d4d19fa9e7c9" + integrity sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +reselect@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" + integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA== + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-global@1.0.0, resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== + dependencies: + global-dirs "^0.1.1" + +resolve-pathname@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879" + integrity sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7, resolve@1.1.x: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" + integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== + dependencies: + path-parse "^1.0.6" + +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1, resolve@^1.9.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" + integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== + dependencies: + path-parse "^1.0.6" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + +reusify@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rewire@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/rewire/-/rewire-2.5.2.tgz#6427de7b7feefa7d36401507eb64a5385bc58dc7" + integrity sha1-ZCfee3/u+n02QBUH62SlOFvFjcc= + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@2.6.3, rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@~2.2.6: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI= + +rimraf@~2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto= + dependencies: + glob "^6.0.1" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +routing-controllers@^0.7.7: + version "0.7.7" + resolved "https://registry.yarnpkg.com/routing-controllers/-/routing-controllers-0.7.7.tgz#55b3dd3e676ade2527e522aad2834ac891cce0ee" + integrity sha512-Z2173DC3dqDvnTxwFPx9mToX5DZ0MsgMae7ENwuK45dbJPK3D8vdZAzSgTcFR+CtrzfDR66Y8E5I3CYkPJWVWg== + dependencies: + class-transformer "^0.1.9" + class-validator "^0.8.1" + cookie "^0.3.1" + glob "^7.0.5" + reflect-metadata "^0.1.12" + template-url "^1.0.0" + +rsvp@^3.3.3: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + dependencies: + is-promise "^2.1.0" + +run-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" + integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== + +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rxjs@^6.1.0, rxjs@^6.3.3, rxjs@^6.4.0: + version "6.5.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" + integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-json-stringify@~1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" + integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +samsam@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" + integrity sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg== + +sane@^2.0.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" + integrity sha1-tNwYYcIbQn6SlQej51HiosuKs/o= + dependencies: + anymatch "^2.0.0" + capture-exit "^1.2.0" + exec-sh "^0.2.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.18.0" + optionalDependencies: + fsevents "^1.2.3" + +saslprep@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" + integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== + dependencies: + sparse-bitfield "^3.0.3" + +sass-loader@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.1.0.tgz#16fd5138cb8b424bf8a759528a1972d72aad069d" + integrity sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w== + dependencies: + clone-deep "^2.0.1" + loader-utils "^1.0.1" + lodash.tail "^4.1.1" + neo-async "^2.5.0" + pify "^3.0.0" + semver "^5.5.0" + +sax@0.6.x: + version "0.6.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-0.6.1.tgz#563b19c7c1de892e09bfc4f2fc30e3c27f0952b9" + integrity sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk= + +sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +scheduler@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e" + integrity sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^0.4.4: + version "0.4.7" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +scmp@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/scmp/-/scmp-0.0.3.tgz#3648df2d7294641e7f78673ffc29681d9bad9073" + integrity sha1-NkjfLXKUZB5/eGc//CloHZutkHM= + +seed-random@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/seed-random/-/seed-random-2.2.0.tgz#2a9b19e250a817099231a5b99a4daf80b7fbed54" + integrity sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ= + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.9.1: + version "1.10.4" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" + integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw== + dependencies: + node-forge "0.7.5" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + dependencies: + semver "^5.0.3" + +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" + integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c= + +semver@5.3.0, semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= + +semver@5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== + +semver@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" + integrity sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ== + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" + integrity sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A== + dependencies: + debug "2.6.9" + depd "~1.1.1" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.1" + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +sentence-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4" + integrity sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ= + dependencies: + no-case "^2.2.0" + upper-case-first "^1.1.2" + +serialize-error@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a" + integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go= + +serialize-error@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-3.0.0.tgz#80100282b09be33c611536f50033481cb9cc87cf" + integrity sha512-+y3nkkG/go1Vdw+2f/+XUXM1DXX1XcxTl99FfiD/OEPUNw4uo0i6FKABfTAN5ZcgGtjTRZcEbxcE/jtXbEY19A== + +serialize-javascript@^1.4.0, serialize-javascript@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.0.tgz#5b77019d7c3b85fe91b33ae424c53dcbfb6618bd" + integrity sha512-UkGlcYMtw4d9w7YfCtJFgdRTps8N4L0A48R+SmcGL57ki1+yHwJXnalk5bjgrw+ljv6SfzjzPjhohod2qllg/Q== + +serve-index@^1.7.2: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-immediate-shim@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4, setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sha256@0.2.0, sha256@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/sha256/-/sha256-0.2.0.tgz#73a0b418daab7035bff86e8491e363412fc2ab05" + integrity sha1-c6C0GNqrcDW/+G6EkeNjQS/CqwU= + dependencies: + convert-hex "~0.1.0" + convert-string "~0.1.0" + +shallow-clone@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" + integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= + dependencies: + is-extendable "^0.1.1" + kind-of "^2.0.1" + lazy-cache "^0.2.3" + mixin-object "^2.0.1" + +shallow-clone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" + integrity sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA== + dependencies: + is-extendable "^0.1.1" + kind-of "^5.0.0" + mixin-object "^2.0.1" + +shallow-equals@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shallow-equals/-/shallow-equals-1.0.0.tgz#24b74bf1c634c11ed4c7182a6df6fb300dce4390" + integrity sha1-JLdL8cY0wR7Uxxgqbfb7MA3OQ5A= + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shell-quote@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + +shelljs@0.3.x: + version "0.3.0" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1" + integrity sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E= + +shelljs@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.2.tgz#345b7df7763f4c2340d584abb532c5f752ca9e35" + integrity sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shelljs@^0.8.2: + version "0.8.3" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097" + integrity sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +showdown@^1.8.6: + version "1.9.0" + resolved "https://registry.yarnpkg.com/showdown/-/showdown-1.9.0.tgz#d49d2a0b6db21b7c2e96ef855f7b3b2a28ef46f4" + integrity sha512-x7xDCRIaOlicbC57nMhGfKamu+ghwsdVkHMttyn+DelwzuHOx4OHCVL/UW/2QOLH7BxfCcCCVVUix3boKXJKXQ== + dependencies: + yargs "^10.0.3" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +simpl-schema@^1.5.5: + version "1.5.5" + resolved "https://registry.yarnpkg.com/simpl-schema/-/simpl-schema-1.5.5.tgz#0bcba6f2445547e6edb79e066b50c6d83b9b490b" + integrity sha512-LEAKeqXS9VDpH7sVXmsIJsED7fdMj/WAP0roZw0u0IzOgQV7n3x7jcf722cl7WM6U5ANwI4wwv0dujLuwv266A== + dependencies: + clone "^2.1.1" + extend "^3.0.1" + lodash.every "^4.6.0" + lodash.find "^4.6.0" + lodash.findwhere "^3.1.0" + lodash.includes "^4.3.0" + lodash.isempty "^4.4.0" + lodash.isobject "^3.0.2" + lodash.omit "^4.5.0" + lodash.pick "^4.4.0" + lodash.union "^4.6.0" + lodash.uniq "^4.5.0" + message-box "^0.2.0" + mongo-object "^0.1.3" + +simple-git@^1.85.0: + version "1.126.0" + resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.126.0.tgz#0c345372275139c8433b8277f4b3e155092aa434" + integrity sha512-47mqHxgZnN8XRa9HbpWprzUv3Ooqz9RY/LSZgvA7jCkW8jcwLahMz7LKugY91KZehfG0sCVPtgXiU72hd6b1Bw== + dependencies: + debug "^4.0.1" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sinon-chai@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.3.0.tgz#8084ff99451064910fbe2c2cb8ab540c00b740ea" + integrity sha512-r2JhDY7gbbmh5z3Q62pNbrjxZdOAjpsqW/8yxAZRSqLZqowmfGZPGUZPFf3UX36NLis0cv8VEM5IJh9HgkSOAA== + +sinon@^5: + version "5.1.1" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-5.1.1.tgz#19c59810ffb733ea6e76a28b94a71fc4c2f523b8" + integrity sha512-h/3uHscbt5pQNxkf7Y/Lb9/OM44YNCicHakcq73ncbrIS8lXg+ZGOZbtuU+/km4YnyiCYfQQEwANaReJz7KDfw== + dependencies: + "@sinonjs/formatio" "^2.0.0" + diff "^3.5.0" + lodash.get "^4.4.2" + lolex "^2.4.2" + nise "^1.3.3" + supports-color "^5.4.0" + type-detect "^4.0.8" + +sinon@^7.2.6: + version "7.4.2" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.4.2.tgz#ecd54158fef2fcfbdb231a3fa55140e8cb02ad6c" + integrity sha512-pY5RY99DKelU3pjNxcWo6XqeB1S118GBcVIIdDi6V+h6hevn1izcg2xv1hTHW/sViRXU7sUOxt4wTUJ3gsW2CQ== + dependencies: + "@sinonjs/commons" "^1.4.0" + "@sinonjs/formatio" "^3.2.1" + "@sinonjs/samsam" "^3.3.3" + diff "^3.5.0" + lolex "^4.2.0" + nise "^1.5.2" + supports-color "^5.5.0" + +sisteransi@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" + integrity sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g== + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slide@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + +smart-buffer@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.2.tgz#5207858c3815cc69110703c6b94e46c15634395d" + integrity sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw== + +snake-case@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" + integrity sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8= + dependencies: + no-case "^2.2.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sntp@0.2.x: + version "0.2.4" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" + integrity sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA= + dependencies: + hoek "0.9.x" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + integrity sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg= + dependencies: + hoek "2.x.x" + +sntp@2.x.x: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" + integrity sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg== + dependencies: + hoek "4.x.x" + +socket.io-adapter@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz#fb9f82ab1aa65290bf72c3657955b930a991a24f" + integrity sha1-+5+CqxqmUpC/csNleVW5MKmRok8= + dependencies: + debug "2.2.0" + socket.io-parser "2.2.2" + +socket.io-client@1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.4.8.tgz#481b241e73df140ea1a4fb03486a85ad097f5558" + integrity sha1-SBskHnPfFA6hpPsDSGqFrQl/VVg= + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.0" + debug "2.2.0" + engine.io-client "1.6.11" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.4" + socket.io-parser "2.2.6" + to-array "0.1.4" + +socket.io-parser@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.2.tgz#3d7af6b64497e956b7d9fe775f999716027f9417" + integrity sha1-PXr2tkSX6Va32f53X5mXFgJ/lBc= + dependencies: + benchmark "1.0.0" + component-emitter "1.1.2" + debug "0.7.4" + isarray "0.0.1" + json3 "3.2.6" + +socket.io-parser@2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.6.tgz#38dfd61df50dcf8ab1d9e2091322bf902ba28b99" + integrity sha1-ON/WHfUNz4qx2eIJEyK/kCuii5k= + dependencies: + benchmark "1.0.0" + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + +socket.io@1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.4.8.tgz#e576f330cd0bed64e55b3fd26df991141884867b" + integrity sha1-5XbzMM0L7WTlWz/SbfmRFBiEhns= + dependencies: + debug "2.2.0" + engine.io "1.6.11" + has-binary "0.1.7" + socket.io-adapter "0.4.0" + socket.io-client "1.4.8" + socket.io-parser "2.2.6" + +sockjs-client@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177" + integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + +socks-proxy-agent@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" + integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== + dependencies: + agent-base "~4.2.1" + socks "~2.3.2" + +socks@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.2.tgz#ade388e9e6d87fdb11649c15746c578922a5883e" + integrity sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ== + dependencies: + ip "^1.1.5" + smart-buffer "4.0.2" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + dependencies: + is-plain-obj "^1.0.0" + +sort-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-3.0.0.tgz#fa751737e3da363ef80632d4fd78e324d661fe9a" + integrity sha512-77XUKMiZN5LvQXZ9sgWfJza19AvYIDwaDGwGiULM+B5XYru8Z90Oh06JvqDlJczvjjYvssrV0aK1GI6+YXvn5A== + dependencies: + is-plain-obj "^2.0.0" + +sorted-array-functions@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/sorted-array-functions/-/sorted-array-functions-1.2.0.tgz#43265b21d6e985b7df31621b1c11cc68d8efc7c3" + integrity sha512-sWpjPhIZJtqO77GN+LD8dDsDKcWZ9GCOJNqKzi1tvtjGIzwfoyuRH8S0psunmc6Z5P+qfDqztSbwYR5X/e1UTg== + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" + integrity sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.10, source-map-support@^0.5.6, source-map-support@~0.5.10, source-map-support@~0.5.12: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + integrity sha1-2rc/vPwrqBm03gO9b26qSBZLP50= + dependencies: + amdefine ">=0.0.4" + +sparse-bitfield@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" + integrity sha1-/0rm5oZWBWuks+eSqzM004JzyhE= + dependencies: + memory-pager "^1.0.2" + +spawn-wrap@^1.4.2: + version "1.4.3" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.3.tgz#81b7670e170cca247d80bf5faf0cfb713bdcf848" + integrity sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw== + dependencies: + foreground-child "^1.5.6" + mkdirp "^0.5.0" + os-homedir "^1.0.1" + rimraf "^2.6.2" + signal-exit "^3.0.2" + which "^1.3.0" + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" + integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +split2@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== + dependencies: + through2 "^2.0.2" + +split@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + +sprintf-js@^1.0.3, sprintf-js@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sqlite3@^4.0.6: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-4.1.0.tgz#e051fb9c133be15726322a69e2e37ec560368380" + integrity sha512-RvqoKxq+8pDHsJo7aXxsFR18i+dU2Wp5o12qAJOV5LNcDt+fgJsc2QKKg3sIRfXrN9ZjzY1T7SNe/DFVqAXjaw== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.11.0" + request "^2.87.0" + +sqlstring@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.1.tgz#475393ff9e91479aea62dcaf0ca3d14983a7fb40" + integrity sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A= + +ssf@~0.10.2: + version "0.10.2" + resolved "https://registry.yarnpkg.com/ssf/-/ssf-0.10.2.tgz#65b2b4fcdfd967bc8e8383a41349009893115976" + integrity sha512-rDhAPm9WyIsY8eZEKyE8Qsotb3j/wBdvMWBUsOhJdfhKGLfQidRjiBUV0y/MkyCLiXQ38FG6LWW/VYUtqlIDZQ== + dependencies: + frac "~1.1.2" + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.0, ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-chain@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/stack-chain/-/stack-chain-2.0.0.tgz#d73d1172af89565f07438b5bcc086831b6689b2d" + integrity sha512-GGrHXePi305aW7XQweYZZwiRwR7Js3MWoK/EHzzB9ROdc75nCnjSJVi21rdAGxFl+yCx2L2qdfl5y7NO4lTyqg== + +stack-generator@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.3.tgz#bb74385c67ffc4ccf3c4dee5831832d4e509c8a0" + integrity sha512-kdzGoqrnqsMxOEuXsXyQTmvWXZmG0f3Ql2GDx5NtmZs59sT2Bt9Vdyq0XdtxUi58q/+nxtbF9KOQ9HkV1QznGg== + dependencies: + stackframe "^1.0.4" + +stack-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" + integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== + +stackframe@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b" + integrity sha512-to7oADIniaYwS3MhtCa/sQhrxidCCQiF/qp4/m5iN3ipf0Y7Xlri0f6eG29r08aL7JYl8n32AF3Q5GYBZ7K8vw== + +stacktrace-gps@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/stacktrace-gps/-/stacktrace-gps-3.0.2.tgz#33f8baa4467323ab2bd1816efa279942ba431ccc" + integrity sha512-9o+nWhiz5wFnrB3hBHs2PTyYrS60M1vvpSzHxwxnIbtY2q9Nt51hZvhrG1+2AxD374ecwyS+IUwfkHRE/2zuGg== + dependencies: + source-map "0.5.6" + stackframe "^1.0.4" + +stacktrace-js@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/stacktrace-js/-/stacktrace-js-2.0.0.tgz#776ca646a95bc6c6b2b90776536a7fc72c6ddb58" + integrity sha1-d2ymRqlbxsayuQd2U2p/xyxt21g= + dependencies: + error-stack-parser "^2.0.1" + stack-generator "^2.0.1" + stacktrace-gps "^3.0.1" + +staged-git-files@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b" + integrity sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= + +stdout-stderr@^0.1.9: + version "0.1.9" + resolved "https://registry.yarnpkg.com/stdout-stderr/-/stdout-stderr-0.1.9.tgz#9b48ee04eff955ee07776e27125d5524d9d02f57" + integrity sha1-m0juBO/5Ve4Hd24nEl1VJNnQL1c= + dependencies: + debug "^3.1.0" + strip-ansi "^4.0.0" + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +steedos-server@^1.0.9, steedos-server@^1.2.5: + version "1.4.1" + resolved "https://registry.yarnpkg.com/steedos-server/-/steedos-server-1.4.1.tgz#fc25943978317b0bfd2866083ea56e40ca8ead9d" + integrity sha512-QhlE5vQoBrwjLXgREjEFNlM7JMb7l1JEclze7+zwN6zXcM7yo6/rg43jyJCT8DoIBAXjyJSbjVH98Wsuxm6qrQ== + dependencies: + "@babel/runtime" "^7.2.0" + "@steedos/auth" "^1.1.5" + "@steedos/core" "^1.3.16" + "@steedos/filters" "^1.0.0" + "@steedos/meteor-bundle-dependencies" "0.0.3" + "@steedos/meteor-bundle-runner" "^1.1.7" + "@steedos/objectql" "^1.0.6" + "@steedos/standard-objects" "^1.0.6" + aliyun-sdk "^1.11.12" + basic-auth "^2.0.1" + bcrypt "^3.0.4" + body-parser "^1.18.3" + buffer-stream-reader "^0.1.1" + busboy "^0.2.13" + chalk "^1.1.3" + clone "2.1.1" + combined-stream "0.0.4" + connect "^3.6.6" + connect-route "^0.1.5" + cookies "^0.6.2" + core-js "^2.5.3" + ejs "^2.5.5" + ejs-lint "^0.2.0" + eval "0.1.2" + express "^4.16.4" + express-graphql "^0.7.1" + fibers "^3.1.1" + formBuilder "^3.2.4" + gm "^1.17.0" + graphql "^14.1.1" + gridfs-stream "^1.1.1" + js-yaml "3.12.0" + jszip "^3.1.5" + knockout "^3.4.2" + length-stream "^0.1.1" + md5 "^2.2.1" + meteor-node-stubs "^0.4.1" + mime "^2.0.2" + mkdirp "^0.3.5" + mongodb "^3.1.13" + mssql "^5.1.0" + mysql "^2.17.1" + negotiator "^0.6.1" + node-rsa "1.0.0" + node-schedule "^1.3.1" + node-xlsx "^0.12.0" + oauth2-server "2.4.1" + odata-v4-mongodb "^0.1.12" + odata-v4-parser "^0.1.29" + odata-v4-service-document "0.0.3" + odata-v4-service-metadata "^0.1.6" + oracledb "^3.1.2" + parsejson "0.0.3" + pg "^7.10.0" + phone "^1.0.12" + qs "^6.6.0" + querystring "^0.2.0" + request "2.81.0" + sha256 "^0.2.0" + socket.io "1.4.8" + socket.io-client "1.4.8" + sprintf-js "^1.0.3" + sqlite3 "^4.0.6" + stream-buffers "^0.2.5" + strip-json-comments "2.0.1" + superagent "^3.5.2" + temp "^0.7.0" + twilio "^1.10.0" + uglify-js "^3.4.9" + unpipe "1.0.0" + xml2js "^0.4.19" + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-buffers@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-0.2.5.tgz#f930539d3cf08d748a340ad6139f95b2ceb48f05" + integrity sha1-+TBTnTzwjXSKNArWE5+Vss60jwU= + +stream-buffers@^0.2.5: + version "0.2.6" + resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-0.2.6.tgz#181c08d5bb3690045f69401b9ae6a7a0cf3313fc" + integrity sha1-GBwI1bs2kARfaUAbmuanoM8zE/w= + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2, stream-http@^2.8.0: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-length@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-length/-/stream-length-1.0.2.tgz#8277f3cbee49a4daabcfdb4e2f4a9b5e9f2c9f00" + integrity sha1-gnfzy+5JpNqrz9tOL0qbXp8snwA= + dependencies: + bluebird "^2.6.2" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + +stream-to-string@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stream-to-string/-/stream-to-string-1.1.0.tgz#39210b01317e6abb35e854538e013037b6a35940" + integrity sha1-OSELATF+ars16FRTjgEwN7ajWUA= + dependencies: + promise-polyfill "^1.1.6" + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +string-argv@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.1.1.tgz#66bd5ae3823708eaa1916fa5412703150d4ddfaf" + integrity sha512-El1Va5ehZ0XTj3Ekw4WFidXvTmt9SrC0+eigdojgtJMVtPkF0qbBe9fyNSl9eQf+kUHnTSQxdQYzuHfZy8V+DQ== + +string-argv@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" + integrity sha1-2sMECGkMIfPDYwo/86BYd73L1zY= + +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string.prototype.trimleft@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz#68b6aa8e162c6a80e76e3a8a0c2e747186e271ff" + integrity sha1-aLaqjhYsaoDnbjqKDC50cYbicf8= + dependencies: + define-properties "^1.1.2" + function-bind "^1.0.2" + +string.prototype.trimright@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz#ab4a56d802a01fbe7293e11e84f24dc8164661dd" + integrity sha1-q0pW2AKgH75yk+EehPJNyBZGYd0= + dependencies: + define-properties "^1.1.2" + function-bind "^1.0.2" + +string_decoder@^1.0.0, string_decoder@^1.1.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.2.2: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +stringstream@~0.0.4, stringstream@~0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" + integrity sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA== + +strip-ansi@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f" + integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow== + dependencies: + ansi-regex "^4.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-bom@3.0.0, strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-comments@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" + integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw== + dependencies: + babel-extract-comments "^1.0.0" + babel-plugin-transform-object-rest-spread "^6.26.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + +strip-json-comments@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + integrity sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E= + +strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +strong-log-transformer@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" + integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== + dependencies: + duplexer "^0.1.1" + minimist "^1.2.0" + through "^2.3.4" + +style-loader@0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" + integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +superagent@^3.5.2, superagent@^3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128" + integrity sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA== + dependencies: + component-emitter "^1.2.0" + cookiejar "^2.1.0" + debug "^3.1.0" + extend "^3.0.0" + form-data "^2.3.1" + formidable "^1.2.0" + methods "^1.1.1" + mime "^1.4.1" + qs "^6.5.1" + readable-stream "^2.3.5" + +supports-color@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== + dependencies: + has-flag "^3.0.0" + +supports-color@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" + integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== + dependencies: + has-flag "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.1.0, supports-color@^3.1.2: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^5.0.0, supports-color@^5.1.0, supports-color@^5.2.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-hyperlinks@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7" + integrity sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw== + dependencies: + has-flag "^2.0.0" + supports-color "^5.0.0" + +svg-parser@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.2.tgz#d134cc396fa2681dc64f518330784e98bd801ec8" + integrity sha512-1gtApepKFweigFZj3sGO8KT8LvVZK8io146EzXrpVuWCDAbISz/yMucco3hWTkpZNoPabM+dnMOpy6Swue68Zg== + +svgo@^1.0.0, svgo@^1.2.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313" + integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.33" + csso "^3.5.1" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +swap-case@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" + integrity sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM= + dependencies: + lower-case "^1.1.1" + upper-case "^1.1.1" + +symbol-observable@^1.1.0, symbol-observable@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +synchronous-promise@^2.0.6: + version "2.0.9" + resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.9.tgz#b83db98e9e7ae826bf9c8261fd8ac859126c780a" + integrity sha512-LO95GIW16x69LuND1nuuwM4pjgFGupg7pZ/4lU86AmchPKrhk0o2tpMU2unXRrqo81iAFe1YJ0nAGEVwsrZAgg== + +syntax-error@^1.1.6: + version "1.4.0" + resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" + integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== + dependencies: + acorn-node "^1.2.0" + +table@^5.0.2, table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar-fs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad" + integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA== + dependencies: + chownr "^1.1.1" + mkdirp "^0.5.1" + pump "^3.0.0" + tar-stream "^2.0.0" + +tar-pack@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" + integrity sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg== + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar-stream@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.0.tgz#d1aaa3661f05b38b5acc9b7020efdca5179a2cc3" + integrity sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw== + dependencies: + bl "^3.0.0" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^2.0.0, tar@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" + integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== + dependencies: + block-stream "*" + fstream "^1.0.12" + inherits "2" + +tar@^4, tar@^4.4.10, tar@^4.4.8: + version "4.4.10" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" + integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.3.5" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +tedious@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/tedious/-/tedious-2.7.1.tgz#5308edebdd33767ca67b36fc71b2ab9c54675278" + integrity sha512-u3ciATGm5byim91b3+c3MVTvY1zKjDmhUhnBQZXKymT2Vb9w322dziPQY6MhBNyBEcNONPsAMR+7/Uub7NYABQ== + dependencies: + babel-runtime "^6.26.0" + big-number "0.3.1" + bl "^1.2.2" + depd "^1.1.2" + iconv-lite "^0.4.23" + native-duplexpair "^1.0.0" + punycode "^2.1.0" + readable-stream "^2.3.6" + sprintf-js "^1.1.1" + +tedious@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/tedious/-/tedious-4.2.0.tgz#ced27d46c3e3c2f643888bb62f2ea4f463650793" + integrity sha512-Py59XmvMcYWdjc1qyXDsbBwQE3yM8CJzuDnagjRpwjgndaBQXBULDI3D6OxKClbTNxA3qaLBFd9DjfV+is3AYA== + dependencies: + adal-node "^0.1.22" + big-number "1.0.0" + bl "^2.0.1" + depd "^1.1.2" + iconv-lite "^0.4.23" + native-duplexpair "^1.0.0" + punycode "^2.1.0" + readable-stream "^3.0.3" + sprintf-js "^1.1.1" + +teeny-request@^3.11.3: + version "3.11.3" + resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-3.11.3.tgz#335c629f7645e5d6599362df2f3230c4cbc23a55" + integrity sha512-CKncqSF7sH6p4rzCgkb/z/Pcos5efl0DmolzvlqRQUNcpRIruOhY9+T1FsIlyEbfWd7MsFpodROOwHYh2BaXzw== + dependencies: + https-proxy-agent "^2.2.1" + node-fetch "^2.2.0" + uuid "^3.3.2" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + +temp-write@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-3.4.0.tgz#8cff630fb7e9da05f047c74ce4ce4d685457d492" + integrity sha1-jP9jD7fp2gXwR8dM5M5NaFRX1JI= + dependencies: + graceful-fs "^4.1.2" + is-stream "^1.1.0" + make-dir "^1.0.0" + pify "^3.0.0" + temp-dir "^1.0.0" + uuid "^3.0.1" + +temp@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.7.0.tgz#d34bdc8e7f955da2a6a473fea07ad601d68ba78f" + integrity sha1-00vcjn+VXaKmpHP+oHrWAdaLp48= + dependencies: + rimraf "~2.2.6" + +template-url@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/template-url/-/template-url-1.0.0.tgz#d9456bee70cac6617b462a7b08db29fb813a0b09" + integrity sha1-2UVr7nDKxmF7Rip7CNsp+4E6Cwk= + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + dependencies: + execa "^0.7.0" + +terser-webpack-plugin@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz#9bff3a891ad614855a7dde0d707f7db5a927e3d9" + integrity sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg== + dependencies: + cacache "^11.0.2" + find-cache-dir "^2.0.0" + schema-utils "^1.0.0" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + terser "^3.16.1" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + +terser-webpack-plugin@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" + integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^1.7.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^3.16.1: + version "3.17.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" + integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== + dependencies: + commander "^2.19.0" + source-map "~0.6.1" + source-map-support "~0.5.10" + +terser@^4.1.2: + version "4.2.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.2.1.tgz#1052cfe17576c66e7bc70fcc7119f22b155bdac1" + integrity sha512-cGbc5utAcX4a9+2GGVX4DsenG6v0x3glnDi5hx8816X1McEAwPlPgRtXPJzSBsbpILxZ8MQMT0KvArLuE0HP5A== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +test-exclude@^4.2.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" + integrity sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA== + dependencies: + arrify "^1.0.1" + micromatch "^2.3.11" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +test-exclude@^5.1.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== + dependencies: + glob "^7.1.3" + minimatch "^3.0.4" + read-pkg-up "^4.0.0" + require-main-filename "^2.0.0" + +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + +text-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.0.0.tgz#43eabd1b495482fae4a2bf65e5f56c29f69220f6" + integrity sha512-F91ZqLgvi1E0PdvmxMgp+gcf6q8fMH7mhdwWfzXnl1k+GbpQDmi8l7DzLC5JTASKbwpY3TfxajAUzAXcv2NmsQ== + +text-table@0.2.0, text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.0" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" + integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= + dependencies: + any-promise "^1.0.0" + +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= + +through2@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.0.tgz#468b461df9cd9fcc170f22ebf6852e467e578ff2" + integrity sha512-8B+sevlqP4OiCjonI1Zw03Sf8PuV1eRsYQgLad5eonILOdyeRsY27A/2Ze8IlvlMvq31OH+3fz/styI7Ya62yQ== + dependencies: + readable-stream "2 || 3" + xtend "~4.0.1" + +through2@^2.0.0, through2@^2.0.2: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through2@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" + integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + dependencies: + readable-stream "2 || 3" + +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" + integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timers-browserify@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= + dependencies: + process "~0.11.0" + +timers-browserify@^2.0.4: + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-invariant@^1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73" + integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA== + +tiny-warning@^1.0.0, tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +title-case@^2.1.0, title-case@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa" + integrity sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o= + dependencies: + no-case "^2.2.0" + upper-case "^1.0.3" + +tmp@0.0.x, tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" + integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== + dependencies: + rimraf "^2.6.3" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +topo@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" + integrity sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI= + dependencies: + hoek "4.x.x" + +toposort@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" + integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + +tough-cookie@^2.3.3, tough-cookie@^2.3.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.3.0, tough-cookie@~2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" + integrity sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA== + dependencies: + punycode "^1.4.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +treeify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" + integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= + +trim-off-newlines@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +tryer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-node@^7: + version "7.0.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" + integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== + dependencies: + arrify "^1.0.0" + buffer-from "^1.1.0" + diff "^3.1.0" + make-error "^1.1.1" + minimist "^1.2.0" + mkdirp "^0.5.1" + source-map-support "^0.5.6" + yn "^2.0.0" + +ts-node@^8.0.3: + version "8.3.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.3.0.tgz#e4059618411371924a1fb5f3b125915f324efb57" + integrity sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.6" + yn "^3.0.0" + +ts-pnp@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.4.tgz#ae27126960ebaefb874c6d7fa4729729ab200d90" + integrity sha512-1J/vefLC+BWSo+qe8OnJQfWTYRS6ingxjwqmHMqaMxXMj7kFtKLgAaYW3JeX3mktjgUL+etlU8/B4VUAUI9QGw== + +tslib@^1.10.0, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tslint-config-prettier@^1.18.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37" + integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg== + +tslint-microsoft-contrib@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.2.1.tgz#a6286839f800e2591d041ea2800c77487844ad81" + integrity sha512-PDYjvpo0gN9IfMULwKk0KpVOPMhU6cNoT9VwCOLeDl/QS8v8W2yspRpFFuUS7/c5EIH/n8ApMi8TxJAz1tfFUA== + dependencies: + tsutils "^2.27.2 <2.29.0" + +tslint@^5, tslint@^5.13.1, tslint@^5.18.0: + version "5.19.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.19.0.tgz#a2cbd4a7699386da823f6b499b8394d6c47bb968" + integrity sha512-1LwwtBxfRJZnUvoS9c0uj8XQtAnyhWr9KlNvDIdB+oXyT+VpsOAaEhEgKi1HrZ8rq0ki/AAnbGSv4KM6/AfVZw== + dependencies: + "@babel/code-frame" "^7.0.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^3.2.0" + glob "^7.1.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + mkdirp "^0.5.1" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.8.0" + tsutils "^2.29.0" + +"tsutils@^2.27.2 <2.29.0": + version "2.28.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.28.0.tgz#6bd71e160828f9d019b6f4e844742228f85169a1" + integrity sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA== + dependencies: + tslib "^1.8.1" + +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tunnel-agent@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.3.0.tgz#ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee" + integrity sha1-rWgbaPUyGtKCfEz7G31d8s/pQu4= + +turndown@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/turndown/-/turndown-5.0.3.tgz#a1350b66155d7891f10e451432170b0f7cd7449a" + integrity sha512-popfGXEiedpq6F5saRIAThKxq/bbEPVFnsDnUdjaDGIre9f3/OL9Yi/yPbPcZ7RYUDpekghr666bBfZPrwNnhQ== + dependencies: + jsdom "^11.9.0" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +twilio@^1.10.0: + version "1.11.1" + resolved "https://registry.yarnpkg.com/twilio/-/twilio-1.11.1.tgz#70e603d1a61d345bd61c8ee39a277f9605188c56" + integrity sha1-cOYD0aYdNFvWHI7jmid/lgUYjFY= + dependencies: + jwt-simple "0.1.x" + q "0.9.7" + request "2.27.x" + scmp "0.0.3" + underscore "1.x" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/type/-/type-1.0.3.tgz#16f5d39f27a2d28d86e48f8981859e9d3296c179" + integrity sha512-51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typedoc-default-themes@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.5.0.tgz#6dc2433e78ed8bea8e887a3acde2f31785bd6227" + integrity sha1-bcJDPnjti+qOiHo6zeLzF4W9Yic= + +typedoc-plugin-external-module-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/typedoc-plugin-external-module-name/-/typedoc-plugin-external-module-name-1.1.3.tgz#ea1c8c7650dae7a105f0d9d55a6aa5cab7816db2" + integrity sha512-/VMawTW4NnUUsgq0o8O37y9MmXFaOCDrH1dvDg7SZUS5ZSpUPSILVWwGJP+7g4I8vKZ5bBKZKHfPIEA4xUC+PQ== + +typedoc@0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.13.0.tgz#9efdf352bd54873955cd161bd4b75f24a8c59dde" + integrity sha512-jQWtvPcV+0fiLZAXFEe70v5gqjDO6pJYJz4mlTtmGJeW2KRoIU/BEfktma6Uj8Xii7UakuZjbxFewl3UYOkU/w== + dependencies: + "@types/fs-extra" "^5.0.3" + "@types/handlebars" "^4.0.38" + "@types/highlight.js" "^9.12.3" + "@types/lodash" "^4.14.110" + "@types/marked" "^0.4.0" + "@types/minimatch" "3.0.3" + "@types/shelljs" "^0.8.0" + fs-extra "^7.0.0" + handlebars "^4.0.6" + highlight.js "^9.0.0" + lodash "^4.17.10" + marked "^0.4.0" + minimatch "^3.0.0" + progress "^2.0.0" + shelljs "^0.8.2" + typedoc-default-themes "^0.5.0" + typescript "3.1.x" + +typeorm@^0.2.13, typeorm@^0.2.16: + version "0.2.18" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.18.tgz#8ae1d21104117724af41ddc11035c40a705e1de8" + integrity sha512-S553GwtG5ab268+VmaLCN7gKDqFPIzUw0eGMTobJ9yr0Np62Ojfx8j1Oa9bIeh5p7Pz1/kmGabAHoP1MYK05pA== + dependencies: + app-root-path "^2.0.1" + buffer "^5.1.0" + chalk "^2.4.2" + cli-highlight "^2.0.0" + debug "^4.1.1" + dotenv "^6.2.0" + glob "^7.1.2" + js-yaml "^3.13.1" + mkdirp "^0.5.1" + reflect-metadata "^0.1.13" + tslib "^1.9.0" + xml2js "^0.4.17" + yargonaut "^1.1.2" + yargs "^13.2.1" + +typescript@3.1.x, typescript@~3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68" + integrity sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA== + +typescript@^3.3.3333, typescript@^3.3.4000: + version "3.6.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.2.tgz#105b0f1934119dde543ac8eb71af3a91009efe54" + integrity sha512-lmQ4L+J6mnu3xweP8+rOrUwzmN+MRAj7TgtJtDaXE5PMyX2kCrklhg3rvOsOIfNeAWMQWO2F1GPc1kMD2vLAfw== + +ua-parser-js@^0.7.18: + version "0.7.20" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098" + integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw== + +uglify-js@2.7.5: + version "2.7.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" + integrity sha1-RhLAx7qu4rp8SH3kkErhIgefLKg= + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-js@3.4.9: + version "3.4.9" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" + integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q== + dependencies: + commander "~2.17.1" + source-map "~0.6.1" + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +uglify-js@^3.1.4, uglify-js@^3.4.9, uglify-js@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" + integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== + dependencies: + commander "~2.20.0" + source-map "~0.6.1" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= + +uid-number@0.0.6, uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= + +uid2@0.0.x: + version "0.0.3" + resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" + integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I= + +ultron@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po= + +umask@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" + integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= + +undefsafe@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76" + integrity sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY= + dependencies: + debug "^2.2.0" + +underscore@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.5.2.tgz#1335c5e4f5e6d33bbb4b006ba8c86a00f556de08" + integrity sha1-EzXF5PXm0zu7SwBrqMhqAPVW3gg= + +underscore@1.x, "underscore@>= 1.3.1", underscore@^1.9.1, underscore@~1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" + integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== + +unfetch@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.1.0.tgz#6ec2dd0de887e58a4dee83a050ded80ffc4137db" + integrity sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg== + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" + integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" + integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + +universal-user-agent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.0.tgz#27da2ec87e32769619f68a14996465ea1cb9df16" + integrity sha512-eM8knLpev67iBDizr/YtqkJsF3GK8gzDc6st/WKzrTuPtcsOKW/0IdL4cnMBsU69pOx0otavLWBDGTwg+dB0aA== + dependencies: + os-name "^3.1.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-notifier@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +upper-case-first@^1.1.0, upper-case-first@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" + integrity sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU= + dependencies: + upper-case "^1.1.1" + +upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-join@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-1.1.0.tgz#741c6c2f4596c4830d6718460920d0c92202dc78" + integrity sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg= + +url-join@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" + integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== + +url-loader@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" + integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== + dependencies: + loader-utils "^1.1.0" + mime "^2.0.3" + schema-utils "^1.0.0" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +urlgrey@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" + integrity sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8= + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +useragent@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" + integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== + dependencies: + lru-cache "4.1.x" + tmp "0.0.x" + +utf8@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.0.tgz#0cfec5c8052d44a23e3aaa908104e8075f95dfd5" + integrity sha1-DP7FyAUtRKI+OqqQgQToB1+V39U= + +util-arity@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/util-arity/-/util-arity-1.1.0.tgz#59d01af1fdb3fede0ac4e632b0ab5f6ce97c9330" + integrity sha1-WdAa8f2z/t4KxOYysKtfbOl8kzA= + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util-promisify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" + integrity sha1-PCI2R2xNMsX/PEcAKt18E7moKlM= + dependencies: + object.getownpropertydescriptors "^2.0.3" + +util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.10.3: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@^0.4.0, utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1, utils-merge@1.x.x: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + +validator@9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-9.2.0.tgz#ad216eed5f37cac31a6fe00ceab1f6b88bded03e" + integrity sha512-6Ij4Eo0KM4LkR0d0IegOwluG5453uqT5QyF5SV5Ezvm8/zmkKI/L4eoraafZGlZPC9guLkwKzgypcw8VGWWnGA== + +value-equal@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7" + integrity sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" + integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== + +verror@1.10.0, verror@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= + dependencies: + indexof "0.0.1" + +vm-browserify@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== + +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= + dependencies: + browser-process-hrtime "^0.1.2" + +walkdir@~0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.12.tgz#2f24f1ade64aab1e458591d4442c8868356e9281" + integrity sha512-HFhaD4mMWPzFSqhpyDG48KDdrjfn409YQuVW7ckZYhW4sE87mYtWifdB/+73RA7+p4s4K18n5Jfx1kHthE1gBw== + +walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +watch@~0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + integrity sha1-KAlUdsbffJDJYxOJkMClQj60uYY= + dependencies: + exec-sh "^0.2.0" + minimist "^1.2.0" + +watchpack@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.0, wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-dev-middleware@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz#1132fecc9026fd90f0ecedac5cbff75d1fb45890" + integrity sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA== + dependencies: + memory-fs "~0.4.1" + mime "^2.3.1" + range-parser "^1.0.3" + webpack-log "^2.0.0" + +webpack-dev-server@3.1.14: + version "3.1.14" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz#60fb229b997fc5a0a1fc6237421030180959d469" + integrity sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.0.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + debug "^3.1.0" + del "^3.0.0" + express "^4.16.2" + html-entities "^1.2.0" + http-proxy-middleware "~0.18.0" + import-local "^2.0.0" + internal-ip "^3.0.1" + ip "^1.1.5" + killable "^1.0.0" + loglevel "^1.4.1" + opn "^5.1.0" + portfinder "^1.0.9" + schema-utils "^1.0.0" + selfsigned "^1.9.1" + semver "^5.6.0" + serve-index "^1.7.2" + sockjs "0.3.19" + sockjs-client "1.3.0" + spdy "^4.0.0" + strip-ansi "^3.0.0" + supports-color "^5.1.0" + url "^0.11.0" + webpack-dev-middleware "3.4.0" + webpack-log "^2.0.0" + yargs "12.0.2" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-manifest-plugin@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.0.4.tgz#e4ca2999b09557716b8ba4475fb79fab5986f0cd" + integrity sha512-nejhOHexXDBKQOj/5v5IZSfCeTO3x1Dt1RZEcGfBSul891X/eLIcIVH31gwxPDdsi2Z8LKKFGpM4w9+oTBOSCg== + dependencies: + fs-extra "^7.0.0" + lodash ">=3.5 <5" + tapable "^1.0.0" + +webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@4.28.3: + version "4.28.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.28.3.tgz#8acef6e77fad8a01bfd0c2b25aa3636d46511874" + integrity sha512-vLZN9k5I7Nr/XB1IDG9GbZB4yQd1sPuvufMFgJkx0b31fi2LD97KQIjwjxE7xytdruAYfu5S0FLBLjdxmwGJCg== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/helper-module-context" "1.7.11" + "@webassemblyjs/wasm-edit" "1.7.11" + "@webassemblyjs/wasm-parser" "1.7.11" + acorn "^5.6.2" + acorn-dynamic-import "^3.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + chrome-trace-event "^1.0.0" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.0" + json-parse-better-errors "^1.0.2" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + micromatch "^3.1.8" + mkdirp "~0.5.0" + neo-async "^2.5.0" + node-libs-browser "^2.0.0" + schema-utils "^0.4.4" + tapable "^1.1.0" + terser-webpack-plugin "^1.1.0" + watchpack "^1.5.0" + webpack-sources "^1.3.0" + +websocket-driver@>=0.5.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" + integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== + +whatwg-fetch@3.0.0, whatwg-fetch@>=0.10.0, whatwg-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" + integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" + integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@1, which@1.3.1, which@^1.1.1, which@^1.2.10, which@^1.2.12, which@^1.2.9, which@^1.3.0, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wide-align@1.1.3, wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^2.0.0, widest-line@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" + +winchan@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/winchan/-/winchan-0.2.2.tgz#6766917b88e5e1cb75f455ffc7cc13f51e5c834e" + integrity sha512-pvN+IFAbRP74n/6mc6phNyCH8oVkzXsto4KCHPJ2AScniAnA1AmeLI03I2BzjePpaClGSI4GUMowzsD3qz5PRQ== + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= + +window-size@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= + +windows-release@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" + integrity sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA== + dependencies: + execa "^1.0.0" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= + +wordwrap@^1.0.0, wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + +workbox-background-sync@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-3.6.3.tgz#6609a0fac9eda336a7c52e6aa227ba2ae532ad94" + integrity sha512-ypLo0B6dces4gSpaslmDg5wuoUWrHHVJfFWwl1udvSylLdXvnrfhFfriCS42SNEe5lsZtcNZF27W/SMzBlva7Q== + dependencies: + workbox-core "^3.6.3" + +workbox-broadcast-cache-update@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-broadcast-cache-update/-/workbox-broadcast-cache-update-3.6.3.tgz#3f5dff22ada8c93e397fb38c1dc100606a7b92da" + integrity sha512-pJl4lbClQcvp0SyTiEw0zLSsVYE1RDlCPtpKnpMjxFtu8lCFTAEuVyzxp9w7GF4/b3P4h5nyQ+q7V9mIR7YzGg== + dependencies: + workbox-core "^3.6.3" + +workbox-build@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-3.6.3.tgz#77110f9f52dc5d82fa6c1c384c6f5e2225adcbd8" + integrity sha512-w0clZ/pVjL8VXy6GfthefxpEXs0T8uiRuopZSFVQ8ovfbH6c6kUpEh6DcYwm/Y6dyWPiCucdyAZotgjz+nRz8g== + dependencies: + babel-runtime "^6.26.0" + common-tags "^1.4.0" + fs-extra "^4.0.2" + glob "^7.1.2" + joi "^11.1.1" + lodash.template "^4.4.0" + pretty-bytes "^4.0.2" + stringify-object "^3.2.2" + strip-comments "^1.0.2" + workbox-background-sync "^3.6.3" + workbox-broadcast-cache-update "^3.6.3" + workbox-cache-expiration "^3.6.3" + workbox-cacheable-response "^3.6.3" + workbox-core "^3.6.3" + workbox-google-analytics "^3.6.3" + workbox-navigation-preload "^3.6.3" + workbox-precaching "^3.6.3" + workbox-range-requests "^3.6.3" + workbox-routing "^3.6.3" + workbox-strategies "^3.6.3" + workbox-streams "^3.6.3" + workbox-sw "^3.6.3" + +workbox-cache-expiration@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-cache-expiration/-/workbox-cache-expiration-3.6.3.tgz#4819697254a72098a13f94b594325a28a1e90372" + integrity sha512-+ECNph/6doYx89oopO/UolYdDmQtGUgo8KCgluwBF/RieyA1ZOFKfrSiNjztxOrGJoyBB7raTIOlEEwZ1LaHoA== + dependencies: + workbox-core "^3.6.3" + +workbox-cacheable-response@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-3.6.3.tgz#869f1a68fce9063f6869ddbf7fa0a2e0a868b3aa" + integrity sha512-QpmbGA9SLcA7fklBLm06C4zFg577Dt8u3QgLM0eMnnbaVv3rhm4vbmDpBkyTqvgK/Ly8MBDQzlXDtUCswQwqqg== + dependencies: + workbox-core "^3.6.3" + +workbox-core@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-3.6.3.tgz#69abba70a4f3f2a5c059295a6f3b7c62bd00e15c" + integrity sha512-cx9cx0nscPkIWs8Pt98HGrS9/aORuUcSkWjG25GqNWdvD/pSe7/5Oh3BKs0fC+rUshCiyLbxW54q0hA+GqZeSQ== + +workbox-google-analytics@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-3.6.3.tgz#99df2a3d70d6e91961e18a6752bac12e91fbf727" + integrity sha512-RQBUo/6SXtIaQTRFj4RQZ9e1gAl7D8oS5S+Hi173Kk70/BgJjzPwXpC5A249Jv5YfkCOLMQCeF9A27BiD0b0ig== + dependencies: + workbox-background-sync "^3.6.3" + workbox-core "^3.6.3" + workbox-routing "^3.6.3" + workbox-strategies "^3.6.3" + +workbox-navigation-preload@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-3.6.3.tgz#a2c34eb7c17e7485b795125091215f757b3c4964" + integrity sha512-dd26xTX16DUu0i+MhqZK/jQXgfIitu0yATM4jhRXEmpMqQ4MxEeNvl2CgjDMOHBnCVMax+CFZQWwxMx/X/PqCw== + dependencies: + workbox-core "^3.6.3" + +workbox-precaching@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-3.6.3.tgz#5341515e9d5872c58ede026a31e19bafafa4e1c1" + integrity sha512-aBqT66BuMFviPTW6IpccZZHzpA8xzvZU2OM1AdhmSlYDXOJyb1+Z6blVD7z2Q8VNtV1UVwQIdImIX+hH3C3PIw== + dependencies: + workbox-core "^3.6.3" + +workbox-range-requests@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-3.6.3.tgz#3cc21cba31f2dd8c43c52a196bcc8f6cdbcde803" + integrity sha512-R+yLWQy7D9aRF9yJ3QzwYnGFnGDhMUij4jVBUVtkl67oaVoP1ymZ81AfCmfZro2kpPRI+vmNMfxxW531cqdx8A== + dependencies: + workbox-core "^3.6.3" + +workbox-routing@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-3.6.3.tgz#659cd8f9274986cfa98fda0d050de6422075acf7" + integrity sha512-bX20i95OKXXQovXhFOViOK63HYmXvsIwZXKWbSpVeKToxMrp0G/6LZXnhg82ijj/S5yhKNRf9LeGDzaqxzAwMQ== + dependencies: + workbox-core "^3.6.3" + +workbox-strategies@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-3.6.3.tgz#11a0dc249a7bc23d3465ec1322d28fa6643d64a0" + integrity sha512-Pg5eulqeKet2y8j73Yw6xTgLdElktcWExGkzDVCGqfV9JCvnGuEpz5eVsCIK70+k4oJcBCin9qEg3g3CwEIH3g== + dependencies: + workbox-core "^3.6.3" + +workbox-streams@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-3.6.3.tgz#beaea5d5b230239836cc327b07d471aa6101955a" + integrity sha512-rqDuS4duj+3aZUYI1LsrD2t9hHOjwPqnUIfrXSOxSVjVn83W2MisDF2Bj+dFUZv4GalL9xqErcFW++9gH+Z27w== + dependencies: + workbox-core "^3.6.3" + +workbox-sw@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-3.6.3.tgz#278ea4c1831b92bbe2d420da8399176c4b2789ff" + integrity sha512-IQOUi+RLhvYCiv80RP23KBW/NTtIvzvjex28B8NW1jOm+iV4VIu3VXKXTA6er5/wjjuhmtB28qEAUqADLAyOSg== + +workbox-webpack-plugin@3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-3.6.3.tgz#a807bb891b4e4e3c808df07e58f17de2d5ba6182" + integrity sha512-RwmKjc7HFHUFHoOlKoZUq9349u0QN3F8W5tZZU0vc1qsBZDINWXRiIBCAKvo/Njgay5sWz7z4I2adnyTo97qIQ== + dependencies: + babel-runtime "^6.26.0" + json-stable-stringify "^1.0.1" + workbox-build "^3.6.3" + +worker-farm@^1.5.2, worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + +wrap-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-4.0.0.tgz#b3570d7c70156159a2d42be5cc942e957f7b1131" + integrity sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg== + dependencies: + ansi-styles "^3.2.0" + string-width "^2.1.1" + strip-ansi "^4.0.0" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^2.0.0, write-file-atomic@^2.1.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-file-atomic@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.0.tgz#1b64dbbf77cb58fd09056963d63e62667ab4fb21" + integrity sha512-EIgkf60l2oWsffja2Sf2AL384dx328c0B+cIYPTQq5q2rOYuDV00/iPFBOUiDKKwKMOhkymH8AidPaRvzfxY+Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write-json-file@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" + integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + pify "^3.0.0" + sort-keys "^2.0.0" + write-file-atomic "^2.0.0" + +write-json-file@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" + integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.15" + make-dir "^2.1.0" + pify "^4.0.1" + sort-keys "^2.0.0" + write-file-atomic "^2.4.2" + +write-json-file@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-4.2.0.tgz#85a853ef1c28feb206bd56c2903fe19a6803c7ac" + integrity sha512-PUmPZDcQZRO+w69pGGepxt5r8USK3KTDy5758dOAEzDaL5a6gbe5EPkyOfo28DRT/cruPRiMaAy9XZnDHHoBjQ== + dependencies: + detect-indent "^6.0.0" + graceful-fs "^4.1.15" + is-plain-obj "^2.0.0" + make-dir "^3.0.0" + sort-keys "^3.0.0" + write-file-atomic "^3.0.0" + +write-pkg@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21" + integrity sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw== + dependencies: + sort-keys "^2.0.0" + write-json-file "^2.2.0" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= + dependencies: + mkdirp "^0.5.1" + +ws@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.0.1.tgz#7d0b2a2e58cddd819039c29c9de65045e1b310e9" + integrity sha1-fQsqLljN3YGQOcKcneZQReGzEOk= + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +ws@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.0.tgz#c1d6fd1515d3ceff1f0ae2759bf5fd77030aad1d" + integrity sha1-wdb9FRXTzv8fCuJ1m/X9dwMKrR0= + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + dependencies: + async-limiter "~1.0.0" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= + +xlsx@^0.12.4: + version "0.12.13" + resolved "https://registry.yarnpkg.com/xlsx/-/xlsx-0.12.13.tgz#f6bec7cf8d916cf625685116170cc3b224228658" + integrity sha512-9/2H4PLphmG8sDvI3mfWb6JIFqbvK8IRGhgS55Pw5F+fmKPuzdv4OW9RFjrH5PiTKeqB/883Z8o+jW3JrDahmw== + dependencies: + adler-32 "~1.2.0" + cfb "~1.0.7" + codepage "~1.13.0" + commander "~2.15.1" + crc-32 "~1.2.0" + exit-on-epipe "~1.0.1" + ssf "~0.10.2" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xml2js@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.4.tgz#3111010003008ae19240eba17497b57c729c555d" + integrity sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0= + dependencies: + sax "0.6.x" + xmlbuilder ">=1.0.0" + +xml2js@^0.4.17, xml2js@^0.4.19: + version "0.4.22" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.22.tgz#4fa2d846ec803237de86f30aa9b5f70b6600de02" + integrity sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw== + dependencies: + sax ">=0.6.0" + util.promisify "~1.0.0" + xmlbuilder "~11.0.0" + +xmlbuilder@>=1.0.0, xmlbuilder@^13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7" + integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ== + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +"xmldom@>= 0.1.x": + version "0.1.27" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" + integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= + +xmlhttprequest-ssl@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz#3b7741fea4a86675976e908d296d4445961faa67" + integrity sha1-O3dB/qSoZnWXbpCNKW1ERZYfqmc= + +xpath.js@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xpath.js/-/xpath.js-1.1.0.tgz#3816a44ed4bb352091083d002a383dd5104a5ff1" + integrity sha512-jg+qkfS4K8E7965sqaUl8mRngXiKb3WZGfONgE18pr03FUQiuSV6G+Ej4tS55B+rIQSFEIw3phdVAQ4pPqNWfQ== + +xregexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" + integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg== + +xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +xunit-file@^1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/xunit-file/-/xunit-file-1.0.0.tgz#6cb35a024ee94b49b2507ee3878968c6baaec398" + integrity sha1-bLNaAk7pS0myUH7jh4loxrquw5g= + dependencies: + dateformat "^1.0.12" + mkdirp "^0.5.1" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + +yargonaut@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/yargonaut/-/yargonaut-1.1.4.tgz#c64f56432c7465271221f53f5cc517890c3d6e0c" + integrity sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA== + dependencies: + chalk "^1.1.1" + figlet "^1.1.1" + parent-require "^1.0.0" + +yargs-parser@13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.0.0.tgz#3fc44f3e76a8bdb1cc3602e860108602e5ccde8b" + integrity sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^10.0.0, yargs-parser@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^13.0.0, yargs-parser@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" + integrity sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ= + dependencies: + camelcase "^3.0.0" + lodash.assign "^4.0.6" + +yargs-parser@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" + integrity sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ== + dependencies: + camelcase "^4.1.0" + +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= + dependencies: + camelcase "^4.1.0" + +yargs-unparser@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.5.0.tgz#f2bb2a7e83cbc87bb95c8e572828a06c9add6e0d" + integrity sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw== + dependencies: + flat "^4.1.0" + lodash "^4.17.11" + yargs "^12.0.5" + +yargs@12.0.2: + version "12.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" + integrity sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ== + dependencies: + cliui "^4.0.0" + decamelize "^2.0.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^10.1.0" + +yargs@13.2.2: + version "13.2.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.2.tgz#0c101f580ae95cea7f39d927e7770e3fdc97f993" + integrity sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA== + dependencies: + cliui "^4.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + os-locale "^3.1.0" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.0.0" + +yargs@^10.0.3: + version "10.1.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" + integrity sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig== + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^8.1.0" + +yargs@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A== + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^9.0.2" + +yargs@^12.0.1, yargs@^12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@^13.0.0, yargs@^13.2.1: + version "13.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.1" + +yargs@^4.6.0: + version "4.8.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" + integrity sha1-wMQpJMpKqmsObaFznfshZDn53cA= + dependencies: + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + lodash.assign "^4.0.3" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.1" + which-module "^1.0.0" + window-size "^0.2.0" + y18n "^3.2.1" + yargs-parser "^2.4.1" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= + +yn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" + integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= + +yn@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yup@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/yup/-/yup-0.27.0.tgz#f8cb198c8e7dd2124beddc2457571329096b06e7" + integrity sha512-v1yFnE4+u9za42gG/b/081E7uNW9mUj3qtkmelLbW5YPROZzSH/KUUyJu9Wt8vxFJcT9otL/eZopS0YK1L5yPQ== + dependencies: + "@babel/runtime" "^7.0.0" + fn-name "~2.0.1" + lodash "^4.17.11" + property-expr "^1.5.0" + synchronous-promise "^2.0.6" + toposort "^2.0.2" From 8523fe4085edaa6cc47025f46e55c4ed9411f3fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 17:31:37 +0800 Subject: [PATCH 129/154] fix tsc --- packages/auth/src/endpoints/jwt.ts | 23 +++++++++++------------ packages/auth/src/endpoints/login.ts | 2 +- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/auth/src/endpoints/jwt.ts b/packages/auth/src/endpoints/jwt.ts index f7e6622420..0d92d3c870 100644 --- a/packages/auth/src/endpoints/jwt.ts +++ b/packages/auth/src/endpoints/jwt.ts @@ -1,18 +1,17 @@ import { hashStampedToken, insertHashedLoginToken, hashLoginToken } from '../utils'; import { getSteedosSchema } from '@steedos/objectql' -let jwt = require('express-jwt'); -function secretCallback(req, payload, done) { - let issuer = payload.iss - let collection = getSteedosSchema().getObject('OAuth2Clients') - collection.find({ filters: `clientId eq '${issuer}'` }).then(function (resolve) { - let clientInfo = resolve[0] - let clientSecret = clientInfo ? clientInfo.clientSecret : '' - done(null, clientSecret) - }).catch(function (reject) { - done(reject, '') - }) -} +// function secretCallback(req, payload, done) { +// let issuer = payload.iss +// let collection = getSteedosSchema().getObject('OAuth2Clients') +// collection.find({ filters: `clientId eq '${issuer}'` }).then(function (resolve) { +// let clientInfo = resolve[0] +// let clientSecret = clientInfo ? clientInfo.clientSecret : '' +// done(null, clientSecret) +// }).catch(function (reject) { +// done(reject, '') +// }) +// } async function getTokenInfo(req) { let payload = req.user diff --git a/packages/auth/src/endpoints/login.ts b/packages/auth/src/endpoints/login.ts index 5e284f35a7..2285c04f57 100644 --- a/packages/auth/src/endpoints/login.ts +++ b/packages/auth/src/endpoints/login.ts @@ -2,7 +2,7 @@ import * as express from 'express'; const SHA256 = require("sha256"); const bcrypt = require('bcrypt'); -import { getSession, auth } from '../session'; +import { getSession } from '../session'; import { setAuthCookies, generateStampedLoginToken, hashStampedToken, insertHashedLoginToken } from '../utils'; declare var Meteor; From 1cc7801b98345e87a98a068cd94e8b48d7218605 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 17:41:56 +0800 Subject: [PATCH 130/154] fix tsc compile error --- packages/core/tsconfig.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index ff157902eb..c5c5842792 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -7,7 +7,16 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true, - "resolveJsonModule": true + "resolveJsonModule": true, + "lib": [ + "es5", + "es6", + "dom", + "es2015", + "es2016", + "es2017", + "esnext" + ], }, "include": [ "./src/**/*" From 4ae3208af2361648eda8fa7c8b4c08f31f1698d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 17:42:01 +0800 Subject: [PATCH 131/154] Update MeteorODataRouter.ts --- packages/core/src/odata/MeteorODataRouter.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/core/src/odata/MeteorODataRouter.ts b/packages/core/src/odata/MeteorODataRouter.ts index a1235db90a..dc23f76d60 100644 --- a/packages/core/src/odata/MeteorODataRouter.ts +++ b/packages/core/src/odata/MeteorODataRouter.ts @@ -431,10 +431,11 @@ router.put('/:spaceId/:objectName/:_id', async function (req: Request, res: Resp res.status(404).send(setErrorMessage(404, collection, key)); } let permissions = await collection.getUserObjectPermission(userSession); + let record_owner = "" if (key == "users") { - var record_owner = recordId; + record_owner = recordId; } else { - var record_owner = (await collection.findOne(recordId, { fields: ['owner'] })).owner + record_owner = (await collection.findOne(recordId, { fields: ['owner'] })).owner } let companyId = (await collection.findOne(recordId, { fields: ['company_id'] })).company_id From c208525c79521e2303a160285d1417da23ef86b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 17:43:58 +0800 Subject: [PATCH 132/154] fix tsc compile error --- packages/objectql/tsconfig.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/objectql/tsconfig.json b/packages/objectql/tsconfig.json index 0a678b9d95..790ef37f19 100644 --- a/packages/objectql/tsconfig.json +++ b/packages/objectql/tsconfig.json @@ -6,7 +6,16 @@ "noUnusedLocals": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, - "sourceMap": true + "sourceMap": true, + "lib": [ + "es5", + "es6", + "dom", + "es2015", + "es2016", + "es2017", + "esnext" + ], }, "include": [ "./src/**/*" From f8cd1174d7dfedb0e0615e37b000d343d6e4d11f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 18:02:19 +0800 Subject: [PATCH 133/154] fix compile error --- package.json | 6 ++++-- packages/objectql/package.json | 2 +- yarn.lock | 5 +++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 8ecd5619f5..2f3a517256 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,10 @@ "apps/*" ], "scripts": { - "bootstrap": "npx lerna bootstrap", - "publish": "npx lerna publish --registry https://registry.npmjs.org", + "bootstrap": "lerna bootstrap; yarn run link", + "link": "lerna exec -- yarn link", + "unlink": "lerna exec -- yarn unlink", + "publish": "lerna publish --registry https://registry.npmjs.org", "compile": "lerna run compile", "prepare": "lerna run prepare", "clear": "rd /s /q packages\\auth\\node_modules\\@steedos packages\\report\\node_modules\\@steedos packages\\objectql\\node_modules\\@steedos packages\\core\\node_modules\\@steedos packages\\react-components\\node_modules\\@steedos packages\\tools\\node_modules\\@steedos" diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 38ffcc3272..7bf821882f 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -64,7 +64,7 @@ "sinon-chai": "^3.3.0", "sqlite3": "^4.0.6", "ts-node": "^8.0.3", - "typescript": "^3.3.4000" + "typescript": "3.5.3" }, "types": "lib/index.d.ts", "publishConfig": { diff --git a/yarn.lock b/yarn.lock index 364deb08ce..2a69eb2642 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18759,6 +18759,11 @@ typescript@3.1.x, typescript@~3.1.6: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68" integrity sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA== +typescript@3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" + integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== + typescript@^3.3.3333, typescript@^3.3.4000: version "3.6.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.2.tgz#105b0f1934119dde543ac8eb71af3a91009efe54" From 10bb5896d605a27e1d8cd51fec0cab2734946a8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 18:15:42 +0800 Subject: [PATCH 134/154] =?UTF-8?q?=E7=BB=9F=E4=B8=80=20typescript=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 ++- packages/auth/package.json | 2 +- packages/core/package.json | 2 +- yarn.lock | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 2f3a517256..abc91e5f42 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "clear": "rd /s /q packages\\auth\\node_modules\\@steedos packages\\report\\node_modules\\@steedos packages\\objectql\\node_modules\\@steedos packages\\core\\node_modules\\@steedos packages\\react-components\\node_modules\\@steedos packages\\tools\\node_modules\\@steedos" }, "devDependencies": { - "lerna": "^3.14.0" + "lerna": "^3.14.0", + "typescript": "3.5.3" } } diff --git a/packages/auth/package.json b/packages/auth/package.json index 4d5cd471bc..9957faca66 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -32,6 +32,6 @@ "jslint": "^0.12.1", "sinon-chai": "^3.3.0", "ts-node": "^8.0.3", - "typescript": "^3.3.4000" + "typescript": "3.5.3" } } \ No newline at end of file diff --git a/packages/core/package.json b/packages/core/package.json index 2803bd6045..d90f88b55c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -61,7 +61,7 @@ "nodemon": "^1.18.10", "sinon-chai": "^3.3.0", "ts-node": "^8.0.3", - "typescript": "^3.3.4000" + "typescript": "3.5.3" }, "types": "lib/index.d.ts", "publishConfig": { diff --git a/yarn.lock b/yarn.lock index 2a69eb2642..f22a94bedf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18764,7 +18764,7 @@ typescript@3.5.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== -typescript@^3.3.3333, typescript@^3.3.4000: +typescript@^3.3.3333: version "3.6.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.2.tgz#105b0f1934119dde543ac8eb71af3a91009efe54" integrity sha512-lmQ4L+J6mnu3xweP8+rOrUwzmN+MRAj7TgtJtDaXE5PMyX2kCrklhg3rvOsOIfNeAWMQWO2F1GPc1kMD2vLAfw== From 4c3ef755d377da2ad6396991b04c4af570320565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 18:21:27 +0800 Subject: [PATCH 135/154] set private packages --- apps/contracts/package.json | 1 + apps/crm/package.json | 1 + apps/meeting/package.json | 1 + packages/auth0/package.json | 1 + packages/client/package.json | 1 + packages/steedos-oauth2-messenger/package.json | 2 +- packages/stimulsoft-report/package.json | 1 + packages/tools/package.json | 1 + 8 files changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/contracts/package.json b/apps/contracts/package.json index b857789d44..f9ef76b1f2 100644 --- a/apps/contracts/package.json +++ b/apps/contracts/package.json @@ -1,4 +1,5 @@ { + "private": true, "name": "@steedos-app/steedos-contracts-app", "version": "1.0.0", "description": "contract-management-system", diff --git a/apps/crm/package.json b/apps/crm/package.json index 9c7db2629b..c0dd22052c 100644 --- a/apps/crm/package.json +++ b/apps/crm/package.json @@ -1,4 +1,5 @@ { + "private": true, "name": "@steedos/app-contracts", "version": "1.0.0", "description": "contract-management-system", diff --git a/apps/meeting/package.json b/apps/meeting/package.json index 5661a64402..0630203305 100644 --- a/apps/meeting/package.json +++ b/apps/meeting/package.json @@ -1,4 +1,5 @@ { + "private": true, "name": "@steedos/app-meeting", "version": "1.0.0", "description": "Meeting room booking", diff --git a/packages/auth0/package.json b/packages/auth0/package.json index 40a21b15bf..a624ce1e7e 100644 --- a/packages/auth0/package.json +++ b/packages/auth0/package.json @@ -1,4 +1,5 @@ { + "private": true, "name": "@steedos/auth0", "version": "0.0.1", "main": "index.js", diff --git a/packages/client/package.json b/packages/client/package.json index 076c7d6afc..6a77007f20 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,4 +1,5 @@ { + "private": true, "name": "@steedos/client", "version": "0.0.1", "description": "client lib for steedos", diff --git a/packages/steedos-oauth2-messenger/package.json b/packages/steedos-oauth2-messenger/package.json index 8023a57d9d..22ff3b1735 100644 --- a/packages/steedos-oauth2-messenger/package.json +++ b/packages/steedos-oauth2-messenger/package.json @@ -1,6 +1,6 @@ { "name": "@steedos/oauth2-messenger", - "private": false, + "private": true, "version": "1.0.0", "description": "", "main": "lib/index.js", diff --git a/packages/stimulsoft-report/package.json b/packages/stimulsoft-report/package.json index b7fec59f8a..1b146892ca 100644 --- a/packages/stimulsoft-report/package.json +++ b/packages/stimulsoft-report/package.json @@ -1,4 +1,5 @@ { + "private": true, "name": "@steedos/stimulsoft-report", "version": "0.0.1", "description": "Stimulsoft report and dashboard lib for steedos", diff --git a/packages/tools/package.json b/packages/tools/package.json index fad88769bd..0bb7e2c28e 100644 --- a/packages/tools/package.json +++ b/packages/tools/package.json @@ -1,4 +1,5 @@ { + "private": true, "name": "steedos-tools", "version": "1.0.0", "description": "", From c1e253e1f4c3547da7bab11d324d5eea885690f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 18:22:03 +0800 Subject: [PATCH 136/154] v1.5.1 --- apps/contracts/package.json | 5 +- apps/crm/package.json | 7 +- apps/meeting/package.json | 4 +- lerna.json | 2 +- packages/auth/package.json | 6 +- packages/auth0/package.json | 5 +- packages/cli/package.json | 4 +- packages/client/package.json | 4 +- packages/core/package.json | 12 +-- packages/filters/package.json | 2 +- .../meteor-bundle-dependencies/package.json | 73 +++++++++---------- packages/meteor-bundle-runner/package.json | 2 +- packages/objectql/package.json | 10 +-- packages/project-template-empty/package.json | 2 +- packages/react-components/package.json | 2 +- packages/report/package.json | 7 +- packages/schemas/package.json | 24 +++--- packages/standard-objects/package.json | 2 +- .../steedos-oauth2-messenger/package.json | 2 +- packages/stimulsoft-report/package.json | 5 +- packages/tools/package.json | 2 +- 21 files changed, 87 insertions(+), 95 deletions(-) diff --git a/apps/contracts/package.json b/apps/contracts/package.json index f9ef76b1f2..c7d989f494 100644 --- a/apps/contracts/package.json +++ b/apps/contracts/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@steedos-app/steedos-contracts-app", - "version": "1.0.0", + "version": "1.5.1", "description": "contract-management-system", "main": "steedos-app/index.js", "scripts": { @@ -15,11 +15,10 @@ "author": "Jack Zhuang", "license": "ISC", "dependencies": { - "@steedos/meteor-bundle-runner": "^1.1.6", + "@steedos/meteor-bundle-runner": "^1.5.1", "@steedos/objectql": "^0.0.11", "steedos-server": "^1.2.5" }, - "devDependencies": {}, "bugs": { "url": "https://github.com/steedos/steedos-contracts-app/issues" }, diff --git a/apps/crm/package.json b/apps/crm/package.json index c0dd22052c..fd62065ec8 100644 --- a/apps/crm/package.json +++ b/apps/crm/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@steedos/app-contracts", - "version": "1.0.0", + "version": "1.5.1", "description": "contract-management-system", "main": "index.js", "scripts": { @@ -16,13 +16,12 @@ "author": "Jack Zhuang", "license": "ISC", "dependencies": { + "@steedos/cli": "^1.1.5", "@steedos/core": "^0.0.6", - "@steedos/meteor-bundle-runner": "^1.1.4", + "@steedos/meteor-bundle-runner": "^1.5.1", "@steedos/standard-objects": "^0.0.1", - "@steedos/cli": "^1.1.5", "steedos-server": "^1.0.9" }, - "devDependencies": {}, "bugs": { "url": "https://github.com/steedos/steedos-contracts-app/issues" }, diff --git a/apps/meeting/package.json b/apps/meeting/package.json index 0630203305..c486ed5d48 100644 --- a/apps/meeting/package.json +++ b/apps/meeting/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@steedos/app-meeting", - "version": "1.0.0", + "version": "1.5.1", "description": "Meeting room booking", "main": "main.js", "scripts": { @@ -19,7 +19,7 @@ }, "homepage": "https://github.com/steedos/app-meeting#readme", "dependencies": { - "@steedos/meteor-bundle-runner": "^1.1.6", + "@steedos/meteor-bundle-runner": "^1.5.1", "@steedos/objectql": "^0.0.11", "steedos-server": "^1.2.5" }, diff --git a/lerna.json b/lerna.json index bc63909441..4d806d5cf2 100644 --- a/lerna.json +++ b/lerna.json @@ -5,5 +5,5 @@ ], "useWorkspaces": true, "npmClient": "yarn", - "version": "0.0.0" + "version": "1.5.1" } diff --git a/packages/auth/package.json b/packages/auth/package.json index 9957faca66..7cdf1148a0 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.1.6", + "version": "1.5.1", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", @@ -14,7 +14,7 @@ "access": "public" }, "dependencies": { - "@steedos/objectql": "^1.0.2", + "@steedos/objectql": "^1.5.1", "bcrypt": "^3.0.6", "cookies": "^0.7.3", "express": "^4.16.4", @@ -34,4 +34,4 @@ "ts-node": "^8.0.3", "typescript": "3.5.3" } -} \ No newline at end of file +} diff --git a/packages/auth0/package.json b/packages/auth0/package.json index a624ce1e7e..39bbc604fa 100644 --- a/packages/auth0/package.json +++ b/packages/auth0/package.json @@ -1,11 +1,10 @@ { - "private": true, + "private": false, "name": "@steedos/auth0", - "version": "0.0.1", + "version": "1.5.1", "main": "index.js", "author": "Jack Zhuang", "license": "MIT", - "private": false, "dependencies": { "auth0-js": "^9.10.1", "auth0-lock": "^11.14.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index d7c7c7cbeb..7740b84cdb 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "steedos-cli", - "version": "1.2.1", + "version": "1.5.1", "description": "Develop and run your enterprise apps in miniutes", "main": "dist/index.js", "scripts": { @@ -35,7 +35,7 @@ "@oclif/command": "^1.5.10", "@oclif/config": "^1.12.8", "@oclif/plugin-help": "^2.1.6", - "@steedos/meteor-bundle-runner": "^1.1.5", + "@steedos/meteor-bundle-runner": "^1.5.1", "@steedos/project-template-empty": "^0.0.3", "@steedos/steedos-model-generator": "^0.5.34", "change-case": "^3.1.0", diff --git a/packages/client/package.json b/packages/client/package.json index 6a77007f20..94ce43a253 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,13 +1,11 @@ { "private": true, "name": "@steedos/client", - "version": "0.0.1", + "version": "1.5.1", "description": "client lib for steedos", "main": "index.js", "license": "MIT", "dependencies": { "devextreme": "^18.2.6" - }, - "devDependencies": { } } diff --git a/packages/core/package.json b/packages/core/package.json index d90f88b55c..fe5cb96f80 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.3.23", + "version": "1.5.1", "description": "", "main": "lib/index.js", "scripts": { @@ -18,9 +18,9 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/auth": "^1.1.5", - "@steedos/objectql": "^1.0.13", - "@steedos/standard-objects": "^1.0.10", + "@steedos/auth": "^1.5.1", + "@steedos/objectql": "^1.5.1", + "@steedos/standard-objects": "^1.5.1", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", @@ -50,8 +50,8 @@ }, "devDependencies": { "@salesforce/dev-scripts": "0.3.12", - "@steedos/meteor-bundle-runner": "^1.1.4", - "@steedos/stimulsoft-report": "^0.0.1", + "@steedos/meteor-bundle-runner": "^1.5.1", + "@steedos/stimulsoft-report": "^1.5.1", "@types/chai": "^4.1.7", "@types/chai-as-promised": "7.1.0", "@types/mocha": "^5.2.6", diff --git a/packages/filters/package.json b/packages/filters/package.json index 2abe89ece1..3d98a2f67d 100644 --- a/packages/filters/package.json +++ b/packages/filters/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/filters", "private": false, - "version": "1.0.0", + "version": "1.5.1", "description": "filters lib for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/meteor-bundle-dependencies/package.json b/packages/meteor-bundle-dependencies/package.json index e951bf610b..155c880724 100644 --- a/packages/meteor-bundle-dependencies/package.json +++ b/packages/meteor-bundle-dependencies/package.json @@ -1,6 +1,6 @@ { "name": "@steedos/meteor-bundle-dependencies", - "version": "1.0.7", + "version": "1.5.1", "description": "", "main": "index.js", "scripts": { @@ -9,51 +9,50 @@ "author": "Jack Zhuang", "license": "ISC", "dependencies": { - "meteor-babel": "7.2.0", - "meteor-babel-helpers": "0.0.3", - "json5": "2.1.0", - "combined-stream2": "1.1.2", - "permessage-deflate": "0.1.6", - "sockjs": "0.3.19", - "lolex": "2.3.1", - "core-js": "2.5.7", - "node4mailer": "4.0.3", - "stream-buffers": "0.2.5", - "es5-shim": "4.5.10", - "node-fetch": "2.1.2", - "whatwg-fetch": "2.0.4", - "request": "2.83.0", - "uuid": "3.3.2", + "apn": "1.6.2", "arson": "0.2.6", + "basic-auth-connect": "1.0.0", + "bcryptjs": "2.3.0", "cli-color": "0.2.3", - "meteor-deque": "2.1.0", - "reify": "0.17.3", - "install": "0.12.2", - "mongodb-uri": "0.9.7", + "combined-stream2": "1.1.2", + "compression": "1.7.1", + "connect": "3.6.5", + "cookie-parser": "1.4.3", + "cookies": "0.6.1", + "core-js": "2.5.7", "decimal.js": "^10.0.2", - "bcryptjs": "2.3.0", - "mongodb": "3.1.6", - "meteor-promise": "0.8.7", - "promise": "8.0.2", + "errorhandler": "1.5.0", + "es5-shim": "4.5.10", "faye-websocket": "0.11.1", + "install": "0.12.2", + "json5": "2.1.0", + "lolex": "2.3.1", + "meteor-babel": "7.2.0", + "meteor-babel-helpers": "0.0.3", + "meteor-deque": "2.1.0", + "meteor-promise": "0.8.7", + "mongodb": "3.1.6", + "mongodb-uri": "0.9.7", + "node-fetch": "2.1.2", + "node-gcm": "0.14.4", + "node4mailer": "4.0.3", + "parseurl": "1.3.2", "permessage-deflate": "0.1.6", + "phone": "1.0.3", + "promise": "8.0.2", + "qs-middleware": "1.0.3", + "reify": "0.17.3", + "request": "2.83.0", "semver": "5.4.1", - "basic-auth-connect": "1.0.0", - "cookie-parser": "1.4.3", - "connect": "3.6.5", - "compression": "1.7.1", - "errorhandler": "1.5.0", - "parseurl": "1.3.2", "send": "0.16.1", + "sha256": "0.2.0", + "sockjs": "0.3.19", + "stream-buffers": "0.2.5", "stream-to-string": "1.1.0", - "qs-middleware": "1.0.3", + "uglify-js": "3.4.9", "useragent": "2.3.0", - "cookies": "0.6.1", - "phone": "1.0.3", - "sha256": "0.2.0", - "apn" : "1.6.2", - "node-gcm" : "0.14.4", - "uglify-js": "3.4.9" + "uuid": "3.3.2", + "whatwg-fetch": "2.0.4" }, "publishConfig": { "access": "public" diff --git a/packages/meteor-bundle-runner/package.json b/packages/meteor-bundle-runner/package.json index 4d7efc44c6..64dd68ecd2 100644 --- a/packages/meteor-bundle-runner/package.json +++ b/packages/meteor-bundle-runner/package.json @@ -1,6 +1,6 @@ { "name": "@steedos/meteor-bundle-runner", - "version": "1.1.7", + "version": "1.5.1", "description": "Run meteor bundles and inject your own nodejs code.", "main": "index.js", "scripts": { diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 7bf821882f..cd20a290c1 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.0.13", + "version": "1.5.1", "description": "", "main": "lib/index.js", "scripts": { @@ -18,10 +18,10 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/filters": "^1.0.0", + "@steedos/filters": "^1.5.1", "@steedos/odata-v4-typeorm": "^0.0.24", - "@steedos/schemas": "^1.0.5", - "@steedos/standard-objects": "^1.0.11", + "@steedos/schemas": "^1.5.1", + "@steedos/standard-objects": "^1.5.1", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", @@ -49,7 +49,7 @@ }, "devDependencies": { "@salesforce/dev-scripts": "0.3.12", - "@steedos/meteor-bundle-runner": "^1.1.7", + "@steedos/meteor-bundle-runner": "^1.5.1", "@types/chai": "^4.1.7", "@types/chai-as-promised": "7.1.0", "@types/mocha": "^5.2.6", diff --git a/packages/project-template-empty/package.json b/packages/project-template-empty/package.json index 330dcd310f..e21b0dde18 100644 --- a/packages/project-template-empty/package.json +++ b/packages/project-template-empty/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/project-template-empty", "private": false, - "version": "0.1.5", + "version": "1.5.1", "description": "", "main": "server.js", "repository": { diff --git a/packages/react-components/package.json b/packages/react-components/package.json index ea501f1c47..f4f74d65c6 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@steedos/react-components", - "version": "0.0.1", + "version": "1.5.1", "private": true, "dependencies": { "@steedos/core": "file:../core", diff --git a/packages/report/package.json b/packages/report/package.json index 2dc326a3c2..24b0209bf9 100644 --- a/packages/report/package.json +++ b/packages/report/package.json @@ -1,6 +1,6 @@ { "name": "@steedos/report", - "version": "0.0.2", + "version": "1.5.1", "description": "report server for steedos", "main": "index.js", "scripts": { @@ -11,10 +11,9 @@ "license": "MIT", "dependencies": { "@steedos/objectql": "^0.0.4", - "@steedos/stimulsoft-report": "^0.0.1", + "@steedos/stimulsoft-report": "^1.5.1", "express": "^4.15.4", "graphql-request": "^1.8.2", "path": "^0.12.7" - }, - "devDependencies": {} + } } diff --git a/packages/schemas/package.json b/packages/schemas/package.json index 720ae6a199..998610d14d 100644 --- a/packages/schemas/package.json +++ b/packages/schemas/package.json @@ -1,12 +1,12 @@ -{ - "name": "@steedos/schemas", - "version": "1.0.5", - "main": "index.js", - "repository": "https://github.com/steedos/schemas.git", - "author": "sunhaolin ", - "license": "MIT", - "private": false, - "publishConfig": { - "access": "public" - } -} \ No newline at end of file +{ + "name": "@steedos/schemas", + "version": "1.5.1", + "main": "index.js", + "repository": "https://github.com/steedos/schemas.git", + "author": "sunhaolin ", + "license": "MIT", + "private": false, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 1ea03f8545..697597237d 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.0.12", + "version": "1.5.1", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/steedos-oauth2-messenger/package.json b/packages/steedos-oauth2-messenger/package.json index 22ff3b1735..a05c853eff 100644 --- a/packages/steedos-oauth2-messenger/package.json +++ b/packages/steedos-oauth2-messenger/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/oauth2-messenger", "private": true, - "version": "1.0.0", + "version": "1.5.1", "description": "", "main": "lib/index.js", "scripts": { diff --git a/packages/stimulsoft-report/package.json b/packages/stimulsoft-report/package.json index 1b146892ca..a8d22ba7e3 100644 --- a/packages/stimulsoft-report/package.json +++ b/packages/stimulsoft-report/package.json @@ -1,11 +1,10 @@ { - "private": true, + "private": false, "name": "@steedos/stimulsoft-report", - "version": "0.0.1", + "version": "1.5.1", "description": "Stimulsoft report and dashboard lib for steedos", "main": "index.js", "license": "MIT", - "private": false, "publishConfig": { "access": "public" } diff --git a/packages/tools/package.json b/packages/tools/package.json index 0bb7e2c28e..3ffad01e7f 100644 --- a/packages/tools/package.json +++ b/packages/tools/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "steedos-tools", - "version": "1.0.0", + "version": "1.5.1", "description": "", "main": "lib/sqlserver.js", "scripts": { From d55fecbc8490e79103ac70658f47581fc379e798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 18:30:21 +0800 Subject: [PATCH 137/154] release 1.5.1 --- packages/auth/package.json | 3 ++- packages/auth0/package.json | 3 ++- packages/cli/package.json | 3 ++- packages/core/package.json | 3 ++- packages/filters/package.json | 3 ++- packages/meteor-bundle-dependencies/package.json | 3 ++- packages/meteor-bundle-runner/package.json | 3 ++- packages/objectql/package.json | 3 ++- packages/project-template-empty/package.json | 3 ++- packages/report/package.json | 3 ++- packages/schemas/package.json | 3 ++- packages/standard-objects/package.json | 3 ++- packages/stimulsoft-report/package.json | 3 ++- 13 files changed, 26 insertions(+), 13 deletions(-) diff --git a/packages/auth/package.json b/packages/auth/package.json index 7cdf1148a0..2e0380d32f 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -33,5 +33,6 @@ "sinon-chai": "^3.3.0", "ts-node": "^8.0.3", "typescript": "3.5.3" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } diff --git a/packages/auth0/package.json b/packages/auth0/package.json index 39bbc604fa..e14c660e87 100644 --- a/packages/auth0/package.json +++ b/packages/auth0/package.json @@ -9,5 +9,6 @@ "auth0-js": "^9.10.1", "auth0-lock": "^11.14.1", "express": "^4.16.4" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } diff --git a/packages/cli/package.json b/packages/cli/package.json index 7740b84cdb..a8acd93ba5 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -92,5 +92,6 @@ }, "publishConfig": { "access": "public" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } diff --git a/packages/core/package.json b/packages/core/package.json index fe5cb96f80..210d120785 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -66,5 +66,6 @@ "types": "lib/index.d.ts", "publishConfig": { "access": "public" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } diff --git a/packages/filters/package.json b/packages/filters/package.json index 3d98a2f67d..81e101c0a0 100644 --- a/packages/filters/package.json +++ b/packages/filters/package.json @@ -22,5 +22,6 @@ }, "publishConfig": { "access": "public" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } diff --git a/packages/meteor-bundle-dependencies/package.json b/packages/meteor-bundle-dependencies/package.json index 155c880724..a8b189cf64 100644 --- a/packages/meteor-bundle-dependencies/package.json +++ b/packages/meteor-bundle-dependencies/package.json @@ -56,5 +56,6 @@ }, "publishConfig": { "access": "public" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } diff --git a/packages/meteor-bundle-runner/package.json b/packages/meteor-bundle-runner/package.json index 64dd68ecd2..46df3b1144 100644 --- a/packages/meteor-bundle-runner/package.json +++ b/packages/meteor-bundle-runner/package.json @@ -23,5 +23,6 @@ }, "publishConfig": { "access": "public" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } diff --git a/packages/objectql/package.json b/packages/objectql/package.json index cd20a290c1..cd700c29ea 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -69,5 +69,6 @@ "types": "lib/index.d.ts", "publishConfig": { "access": "public" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } diff --git a/packages/project-template-empty/package.json b/packages/project-template-empty/package.json index e21b0dde18..2eae301163 100644 --- a/packages/project-template-empty/package.json +++ b/packages/project-template-empty/package.json @@ -16,5 +16,6 @@ "homepage": "https://github.com/steedos/object-server#readme", "publishConfig": { "access": "public" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } diff --git a/packages/report/package.json b/packages/report/package.json index 24b0209bf9..e23c5f8a3c 100644 --- a/packages/report/package.json +++ b/packages/report/package.json @@ -15,5 +15,6 @@ "express": "^4.15.4", "graphql-request": "^1.8.2", "path": "^0.12.7" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } diff --git a/packages/schemas/package.json b/packages/schemas/package.json index 998610d14d..f6b24d9c50 100644 --- a/packages/schemas/package.json +++ b/packages/schemas/package.json @@ -8,5 +8,6 @@ "private": false, "publishConfig": { "access": "public" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 697597237d..498fba86a3 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -7,5 +7,6 @@ "license": "Apache", "publishConfig": { "access": "public" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } diff --git a/packages/stimulsoft-report/package.json b/packages/stimulsoft-report/package.json index a8d22ba7e3..3db2fe5fed 100644 --- a/packages/stimulsoft-report/package.json +++ b/packages/stimulsoft-report/package.json @@ -7,5 +7,6 @@ "license": "MIT", "publishConfig": { "access": "public" - } + }, + "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" } From e6136d6d8b70c42f21134469fe4993e006c1ee4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 18:36:10 +0800 Subject: [PATCH 138/154] set private --- packages/auth0/package.json | 2 +- packages/stimulsoft-report/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/auth0/package.json b/packages/auth0/package.json index e14c660e87..61199373b3 100644 --- a/packages/auth0/package.json +++ b/packages/auth0/package.json @@ -1,5 +1,5 @@ { - "private": false, + "private": true, "name": "@steedos/auth0", "version": "1.5.1", "main": "index.js", diff --git a/packages/stimulsoft-report/package.json b/packages/stimulsoft-report/package.json index 3db2fe5fed..90c42a5afa 100644 --- a/packages/stimulsoft-report/package.json +++ b/packages/stimulsoft-report/package.json @@ -1,5 +1,5 @@ { - "private": false, + "private": true, "name": "@steedos/stimulsoft-report", "version": "1.5.1", "description": "Stimulsoft report and dashboard lib for steedos", From 43f6e81dd054353cc11ff860fcc2466199cae94f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 18:46:13 +0800 Subject: [PATCH 139/154] =?UTF-8?q?=E5=86=85=E6=A0=B8=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/contracts/package.json | 10 +-- apps/crm/package.json | 6 +- apps/meeting/package.json | 8 +- packages/cli/package.json | 2 +- packages/report/package.json | 2 +- yarn.lock | 159 ++--------------------------------- 6 files changed, 17 insertions(+), 170 deletions(-) diff --git a/apps/contracts/package.json b/apps/contracts/package.json index c7d989f494..b2b43e8dbc 100644 --- a/apps/contracts/package.json +++ b/apps/contracts/package.json @@ -16,17 +16,11 @@ "license": "ISC", "dependencies": { "@steedos/meteor-bundle-runner": "^1.5.1", - "@steedos/objectql": "^0.0.11", + "@steedos/objectql": "^1.5.1", "steedos-server": "^1.2.5" }, "bugs": { "url": "https://github.com/steedos/steedos-contracts-app/issues" }, - "homepage": "https://github.com/steedos/steedos-contracts-app#readme", - "resolutions": { - "graphql": "^14.1.1", - "@steedos/objectql": "^0.0.11", - "@steedos/core": "^1.1.17", - "@steedos/auth": "^1.0.4" - } + "homepage": "https://github.com/steedos/steedos-contracts-app#readme" } diff --git a/apps/crm/package.json b/apps/crm/package.json index fd62065ec8..e69265bd98 100644 --- a/apps/crm/package.json +++ b/apps/crm/package.json @@ -16,10 +16,10 @@ "author": "Jack Zhuang", "license": "ISC", "dependencies": { - "@steedos/cli": "^1.1.5", - "@steedos/core": "^0.0.6", + "steedos-cli": "^1.5.1", + "@steedos/core": "^1.5.1", "@steedos/meteor-bundle-runner": "^1.5.1", - "@steedos/standard-objects": "^0.0.1", + "@steedos/standard-objects": "^1.5.1", "steedos-server": "^1.0.9" }, "bugs": { diff --git a/apps/meeting/package.json b/apps/meeting/package.json index c486ed5d48..a77459fda4 100644 --- a/apps/meeting/package.json +++ b/apps/meeting/package.json @@ -20,13 +20,7 @@ "homepage": "https://github.com/steedos/app-meeting#readme", "dependencies": { "@steedos/meteor-bundle-runner": "^1.5.1", - "@steedos/objectql": "^0.0.11", + "@steedos/objectql": "^1.5.1", "steedos-server": "^1.2.5" - }, - "resolutions": { - "graphql": "^14.1.1", - "@steedos/objectql": "^0.0.11", - "@steedos/core": "^1.1.15", - "@steedos/auth": "^1.0.4" } } diff --git a/packages/cli/package.json b/packages/cli/package.json index a8acd93ba5..0be886bdb6 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -36,7 +36,7 @@ "@oclif/config": "^1.12.8", "@oclif/plugin-help": "^2.1.6", "@steedos/meteor-bundle-runner": "^1.5.1", - "@steedos/project-template-empty": "^0.0.3", + "@steedos/project-template-empty": "^1.5.1", "@steedos/steedos-model-generator": "^0.5.34", "change-case": "^3.1.0", "colors": "^1.3.3", diff --git a/packages/report/package.json b/packages/report/package.json index e23c5f8a3c..27ff47d5b3 100644 --- a/packages/report/package.json +++ b/packages/report/package.json @@ -10,7 +10,7 @@ "author": "", "license": "MIT", "dependencies": { - "@steedos/objectql": "^0.0.4", + "@steedos/objectql": "^1.5.1", "@steedos/stimulsoft-report": "^1.5.1", "express": "^4.15.4", "graphql-request": "^1.8.2", diff --git a/yarn.lock b/yarn.lock index f22a94bedf..fdbf378462 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2196,52 +2196,15 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== -"@steedos/cli@^1.1.5": - version "1.1.15" - resolved "https://registry.yarnpkg.com/@steedos/cli/-/cli-1.1.15.tgz#eeede083aee63fb2f3b0cb1ea860a5bbe0ba2788" - integrity sha512-g1Z15iciDuDuBbbjpyk6bTA4XgmufSkBBOHDj3uO5prapJjzypVUM4OoIPNmMWDaa+wI1Wd5keeAP7tubiUx5g== - dependencies: - "@geek/spinner" "^1.0.0" - "@oclif/command" "^1.5.10" - "@oclif/config" "^1.12.8" - "@oclif/plugin-help" "^2.1.6" - "@steedos/meteor-bundle-runner" "^1.1.5" - "@steedos/project-template-empty" "^0.0.3" - "@steedos/steedos-model-generator" "^0.5.34" - change-case "^3.1.0" - colors "^1.3.3" - fs-extra "^7.0.1" - inquirer "^6.2.2" - js-yaml "^3.12.2" - latest-version "^5.1.0" - reflect-metadata "^0.1.13" - typescript "^3.3.3333" - yargs "^13.2.1" - yn "^2.0.0" - -"@steedos/core@^0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@steedos/core/-/core-0.0.6.tgz#54a8d38971ab0fd2b933d8727f28411d6828f4ff" - integrity sha512-8NgfXq1c0Y+NNtgI9DuDuj2tK3WLePTSqX6NAxCe8MEuYJI++UOGu9t6lZGbAUZGyg2o4b1YQ/SYwNUPm5JfFw== - dependencies: - "@salesforce/dev-config" "^1.4.4" - "@salesforce/ts-types" "^1.1.1" - "@types/node" "^11.10.4" - fibers "^3.1.1" - js-yaml "3.12.2" - jsen "^0.6.6" - simpl-schema "^1.5.5" - underscore "1.5.2" - "@steedos/core@file:packages/core": - version "1.3.23" + version "1.5.1" dependencies: "@salesforce/dev-config" "^1.4.4" "@salesforce/kit" "^1.0.4" "@salesforce/ts-types" "^1.1.1" - "@steedos/auth" "^1.1.5" - "@steedos/objectql" "^1.0.13" - "@steedos/standard-objects" "^1.0.10" + "@steedos/auth" "^1.5.1" + "@steedos/objectql" "^1.5.1" + "@steedos/standard-objects" "^1.5.1" "@types/express" "^4.16.1" "@types/mongodb" "^3.1.22" "@types/node" "^11.10.4" @@ -2269,13 +2232,6 @@ uglify-js "^3.6.0" underscore "1.5.2" -"@steedos/filters@0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@steedos/filters/-/filters-0.0.3.tgz#e336e0861d8e586456746947442b1fd6e7f47c54" - integrity sha512-Q3oGoGRqxyZkpsC77xJowY4s72YO3TTMAazIvpc8fr/vwLOuGGCWA9ybv3e7lWlxqU0InnL8uJkqyM0cxSAu1Q== - dependencies: - devextreme "^18.2.6" - "@steedos/meteor-bundle-dependencies@0.0.3": version "0.0.3" resolved "https://registry.yarnpkg.com/@steedos/meteor-bundle-dependencies/-/meteor-bundle-dependencies-0.0.3.tgz#e72d2f4e139a47990c5c7d727f283af02e07d407" @@ -2325,87 +2281,16 @@ uuid "3.3.2" whatwg-fetch "2.0.4" -"@steedos/objectql@^0.0.11": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@steedos/objectql/-/objectql-0.0.11.tgz#ae9cf1645bf474a7a841e4653a35d67739560760" - integrity sha512-8A216WhYR9ikkbE2UJA0cz9RtgkiIq7xaCz1V6rJAl5sdSxGq/PtFHthFkfVGQJ9kfr6h7yOu+gnlKfN1GIhmg== - dependencies: - "@salesforce/dev-config" "^1.4.4" - "@salesforce/kit" "^1.0.4" - "@salesforce/ts-types" "^1.1.1" - "@steedos/filters" "0.0.3" - "@steedos/odata-v4-typeorm" "^0.0.24" - "@steedos/standard-objects" "0.0.1" - "@types/express" "^4.16.1" - "@types/mongodb" "^3.1.22" - "@types/node" "^11.10.4" - "@types/underscore" "^1.8.13" - app-root-path "^2.2.1" - body-parser "^1.18.1" - bunyan-sfdx-no-dtrace "^1.8.2" - chai "^4.2.0" - clone "^2.1.2" - cookies "^0.6.1" - express "^4.15.4" - express-graphql "^0.7.1" - fibers "^3.1.1" - globby "^9.1.0" - graphql "^14.1.1" - graphql-type-json "^0.2.2" - jsen "^0.6.6" - mongodb "^3.0.8" - odata-v4-mongodb "^0.1.12" - odata-v4-sql "^0.1.2" - reflect-metadata "^0.1.10" - routing-controllers "^0.7.7" - typeorm "^0.2.16" - underscore "1.5.2" - -"@steedos/objectql@^0.0.4": - version "0.0.4" - resolved "https://registry.yarnpkg.com/@steedos/objectql/-/objectql-0.0.4.tgz#388d80564c14aceb22870b739840748ede229ebf" - integrity sha512-2u5rguD9M8WUVr5y7DifMGqfPaq3bbSMwnQMCOHhCGyQqIzeBh3AOjz/HcTZI5E9wCW0+DE4TRcsUGocK65sbg== - dependencies: - "@salesforce/dev-config" "^1.4.4" - "@salesforce/kit" "^1.0.4" - "@salesforce/ts-types" "^1.1.1" - "@steedos/filters" "0.0.3" - "@steedos/odata-v4-typeorm" "^0.0.23" - "@steedos/standard-objects" "0.0.1" - "@types/express" "^4.16.1" - "@types/mongodb" "^3.1.22" - "@types/node" "^11.10.4" - "@types/underscore" "^1.8.13" - body-parser "^1.18.1" - bunyan-sfdx-no-dtrace "^1.8.2" - chai "^4.2.0" - clone "^2.1.2" - cookies "^0.6.1" - express "^4.15.4" - express-graphql "^0.7.1" - fibers "^3.1.1" - globby "^9.1.0" - graphql "^14.1.1" - graphql-type-json "^0.2.2" - jsen "^0.6.6" - mongodb "^3.0.8" - odata-v4-mongodb "^0.1.12" - odata-v4-sql "^0.1.2" - reflect-metadata "^0.1.10" - routing-controllers "^0.7.7" - typeorm "^0.2.16" - underscore "1.5.2" - "@steedos/objectql@file:packages/objectql": - version "1.0.13" + version "1.5.1" dependencies: "@salesforce/dev-config" "^1.4.4" "@salesforce/kit" "^1.0.4" "@salesforce/ts-types" "^1.1.1" - "@steedos/filters" "^1.0.0" + "@steedos/filters" "^1.5.1" "@steedos/odata-v4-typeorm" "^0.0.24" - "@steedos/schemas" "^1.0.5" - "@steedos/standard-objects" "^1.0.11" + "@steedos/schemas" "^1.5.1" + "@steedos/standard-objects" "^1.5.1" "@types/express" "^4.16.1" "@types/mongodb" "^3.1.22" "@types/node" "^11.10.4" @@ -2431,14 +2316,6 @@ typeorm "^0.2.16" underscore "1.5.2" -"@steedos/odata-v4-typeorm@^0.0.23": - version "0.0.23" - resolved "https://registry.yarnpkg.com/@steedos/odata-v4-typeorm/-/odata-v4-typeorm-0.0.23.tgz#a6eac3163c3f39f65de44f1ae2ab291a129bc312" - integrity sha512-SyXReHk91U37oixD7N+IpOYOnAQQPuJ+AmhS/g/buKSW5blhtO6l1wj3r/qIjkivUGy3u+mp3oiFhyboa3zBQg== - dependencies: - odata-v4-parser "0.1.13" - odata-v4-sql "^0.1.2" - "@steedos/odata-v4-typeorm@^0.0.24": version "0.0.24" resolved "https://registry.yarnpkg.com/@steedos/odata-v4-typeorm/-/odata-v4-typeorm-0.0.24.tgz#da14a880e5ec2b52b91f2912939b812449988e8b" @@ -2447,16 +2324,6 @@ odata-v4-parser "0.1.13" odata-v4-sql "^0.1.2" -"@steedos/project-template-empty@^0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@steedos/project-template-empty/-/project-template-empty-0.0.3.tgz#7c97c5e318341da270134291f15201bedaecde11" - integrity sha512-twyRrvSsJ0XfgHOVggB1lkXb+YzKthEDhkYNnhsciabhCuj80UgX5RndLzaND6JChFvbmEAs3G3OM/ySuYtvWA== - -"@steedos/standard-objects@0.0.1", "@steedos/standard-objects@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@steedos/standard-objects/-/standard-objects-0.0.1.tgz#9ae2ad078d0b06df9648f6d2dbfc75a6f9c37962" - integrity sha512-DsF50A3sfGF01Fcf5jNEIvlCoI66pXah2Y3oc3ODqJfa6f343KjrSmsVSMaaNdoQeqrtgjJKqr3w+C8RGUDbNA== - "@steedos/steedos-model-generator@^0.5.34": version "0.5.34" resolved "https://registry.yarnpkg.com/@steedos/steedos-model-generator/-/steedos-model-generator-0.5.34.tgz#5ef4dc0fcdfad5d12b4b1befaad055f345d9b25f" @@ -11025,15 +10892,7 @@ js-yaml@3.12.0: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@3.12.2: - version "3.12.2" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.2.tgz#ef1d067c5a9d9cb65bd72f285b5d8105c77f14fc" - integrity sha512-QHn/Lh/7HhZ/Twc7vJYQTkjuCa0kaCcDcjK5Zlk2rvnUpy7DxMJ23+Jc2dcyvltwQVg1nygAVlB2oRDFHoRS5Q== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@3.13.1, js-yaml@3.x, js-yaml@>=3.13.1, js-yaml@^3.12.0, js-yaml@^3.12.2, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.7.0: +js-yaml@3.13.1, js-yaml@3.x, js-yaml@>=3.13.1, js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.7.0: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== From c2af080c498f7c58f0169c358518aeb1ae22bf4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 19:33:08 +0800 Subject: [PATCH 140/154] Update logout.ts --- packages/auth/src/endpoints/logout.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/auth/src/endpoints/logout.ts b/packages/auth/src/endpoints/logout.ts index 6da97c5542..ea2475eb30 100644 --- a/packages/auth/src/endpoints/logout.ts +++ b/packages/auth/src/endpoints/logout.ts @@ -4,4 +4,5 @@ import { clearAuthCookies } from '../utils'; export const logout = async (req: express.Request, res: express.Response) => { clearAuthCookies(req, res); + return res.end(); } \ No newline at end of file From 7dd84b7fc68c00786db5ec4c5572dae41da62bbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 19:34:35 +0800 Subject: [PATCH 141/154] v1.5.1-patch.1 --- packages/auth/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/auth/package.json b/packages/auth/package.json index 2e0380d32f..8c7749c4c4 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.5.1", + "version": "1.5.1-patch.1", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", From 50f115bf3a5ac44415da2e8b5d8a3c44296fc109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 20:01:07 +0800 Subject: [PATCH 142/154] bug fix --- lerna.json | 2 +- packages/auth/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 4d806d5cf2..05d8d43dfc 100644 --- a/lerna.json +++ b/lerna.json @@ -5,5 +5,5 @@ ], "useWorkspaces": true, "npmClient": "yarn", - "version": "1.5.1" + "version": "1.5.2" } diff --git a/packages/auth/package.json b/packages/auth/package.json index 8c7749c4c4..3873ceb44b 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.5.1-patch.1", + "version": "1.5.2", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", From c90033c8372e80063acf99d1c18a7324a222deca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Wed, 4 Sep 2019 20:05:05 +0800 Subject: [PATCH 143/154] v1.5.3 --- apps/crm/package.json | 6 +++--- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/core/package.json | 4 ++-- packages/react-components/package.json | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/crm/package.json b/apps/crm/package.json index e69265bd98..a4d8520d8e 100644 --- a/apps/crm/package.json +++ b/apps/crm/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@steedos/app-contracts", - "version": "1.5.1", + "version": "1.5.3", "description": "contract-management-system", "main": "index.js", "scripts": { @@ -16,10 +16,10 @@ "author": "Jack Zhuang", "license": "ISC", "dependencies": { - "steedos-cli": "^1.5.1", - "@steedos/core": "^1.5.1", + "@steedos/core": "^1.5.3", "@steedos/meteor-bundle-runner": "^1.5.1", "@steedos/standard-objects": "^1.5.1", + "steedos-cli": "^1.5.1", "steedos-server": "^1.0.9" }, "bugs": { diff --git a/lerna.json b/lerna.json index 05d8d43dfc..afe930867c 100644 --- a/lerna.json +++ b/lerna.json @@ -5,5 +5,5 @@ ], "useWorkspaces": true, "npmClient": "yarn", - "version": "1.5.2" + "version": "1.5.3" } diff --git a/packages/auth/package.json b/packages/auth/package.json index 3873ceb44b..965646a137 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.5.2", + "version": "1.5.3", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", diff --git a/packages/core/package.json b/packages/core/package.json index 210d120785..2e23d3ed3c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.5.1", + "version": "1.5.3", "description": "", "main": "lib/index.js", "scripts": { @@ -18,7 +18,7 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/auth": "^1.5.1", + "@steedos/auth": "^1.5.3", "@steedos/objectql": "^1.5.1", "@steedos/standard-objects": "^1.5.1", "@types/express": "^4.16.1", diff --git a/packages/react-components/package.json b/packages/react-components/package.json index f4f74d65c6..775d43a443 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@steedos/react-components", - "version": "1.5.1", + "version": "1.5.3", "private": true, "dependencies": { "@steedos/core": "file:../core", From 668cc9e7ec4599b2ee0cc545433f37d51e5d5d50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Thu, 5 Sep 2019 17:32:54 +0800 Subject: [PATCH 144/154] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8C=BA=20->=20?= =?UTF-8?q?=E7=A7=9F=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/standard-objects/admin.app.yml | 2 +- packages/standard-objects/spaces.object.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/standard-objects/admin.app.yml b/packages/standard-objects/admin.app.yml index 1eb79933b2..5d5fae442d 100644 --- a/packages/standard-objects/admin.app.yml +++ b/packages/standard-objects/admin.app.yml @@ -53,7 +53,7 @@ admin_menus: object_name: permission_set parent: menu_users - _id: spaces - name: 公司信息 + name: 租户信息 permission_sets: - admin object_name: spaces diff --git a/packages/standard-objects/spaces.object.yml b/packages/standard-objects/spaces.object.yml index f59700d006..5ee2e121e7 100644 --- a/packages/standard-objects/spaces.object.yml +++ b/packages/standard-objects/spaces.object.yml @@ -1,5 +1,5 @@ name: spaces -label: 工作区 +label: 租户 icon: groups fields: name: From fc2f8b0243bb16d26a14dfbbabc700c1d4b45edc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 6 Sep 2019 14:23:08 +0800 Subject: [PATCH 145/154] yarn upgrade --- package.json | 2 +- packages/react-components/package.json | 2 +- packages/tools/package.json | 2 +- yarn.lock | 216 +++++++------------------ 4 files changed, 57 insertions(+), 165 deletions(-) diff --git a/package.json b/package.json index abc91e5f42..75a0435abe 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "publish": "lerna publish --registry https://registry.npmjs.org", "compile": "lerna run compile", "prepare": "lerna run prepare", - "clear": "rd /s /q packages\\auth\\node_modules\\@steedos packages\\report\\node_modules\\@steedos packages\\objectql\\node_modules\\@steedos packages\\core\\node_modules\\@steedos packages\\react-components\\node_modules\\@steedos packages\\tools\\node_modules\\@steedos" + "clean": "lerna clean" }, "devDependencies": { "lerna": "^3.14.0", diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 775d43a443..76da43a35a 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -3,7 +3,7 @@ "version": "1.5.3", "private": true, "dependencies": { - "@steedos/core": "file:../core", + "@steedos/core": "^1.5.1", "eslint": "5.12.0", "http-proxy-middleware": "^0.19.1", "react": "^16.8.4", diff --git a/packages/tools/package.json b/packages/tools/package.json index 3ffad01e7f..681660f30c 100644 --- a/packages/tools/package.json +++ b/packages/tools/package.json @@ -11,6 +11,6 @@ "author": "", "license": "ISC", "dependencies": { - "@steedos/objectql": "file:../objectql" + "@steedos/objectql": "^1.5.1" } } diff --git a/yarn.lock b/yarn.lock index fdbf378462..7066e19c28 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1902,9 +1902,9 @@ fastq "^1.6.0" "@oclif/command@^1.5.1", "@oclif/command@^1.5.10", "@oclif/command@^1.5.13": - version "1.5.18" - resolved "https://registry.yarnpkg.com/@oclif/command/-/command-1.5.18.tgz#57125b501fafa155ad280bf8dc9f36a911c44f11" - integrity sha512-sfLb5UUCwyQ0w9LyQ1/3DUuD/RWnPZk6uvcK5P7pqD65WgRJaOPCqzuNZyb56kPsj6FftRp1UudApNKd7U0KBQ== + version "1.5.19" + resolved "https://registry.yarnpkg.com/@oclif/command/-/command-1.5.19.tgz#13f472450eb83bd6c6871a164c03eadb5e1a07ed" + integrity sha512-6+iaCMh/JXJaB2QWikqvGE9//wLEVYYwZd5sud8aLoLKog1Q75naZh2vlGVtg5Mq/NqpqGQvdIjJb3Bm+64AUQ== dependencies: "@oclif/config" "^1" "@oclif/errors" "^1.2.2" @@ -2196,126 +2196,6 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== -"@steedos/core@file:packages/core": - version "1.5.1" - dependencies: - "@salesforce/dev-config" "^1.4.4" - "@salesforce/kit" "^1.0.4" - "@salesforce/ts-types" "^1.1.1" - "@steedos/auth" "^1.5.1" - "@steedos/objectql" "^1.5.1" - "@steedos/standard-objects" "^1.5.1" - "@types/express" "^4.16.1" - "@types/mongodb" "^3.1.22" - "@types/node" "^11.10.4" - "@types/underscore" "^1.8.13" - body-parser "^1.18.1" - bunyan-sfdx-no-dtrace "^1.8.2" - chai "^4.2.0" - clone "^2.1.2" - cookies "^0.6.1" - devextreme "^18.2.6" - express "^4.15.4" - express-graphql "^0.7.1" - fibers "^3.1.1" - globby "^9.1.0" - graphql "^14.1.1" - graphql-type-json "^0.2.2" - js-yaml ">=3.13.1" - jsen "^0.6.6" - mongodb "^3.0.8" - odata-v4-mongodb "^0.1.12" - pg "^7.8.2" - reflect-metadata "^0.1.10" - routing-controllers "^0.7.7" - simpl-schema "^1.5.5" - uglify-js "^3.6.0" - underscore "1.5.2" - -"@steedos/meteor-bundle-dependencies@0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@steedos/meteor-bundle-dependencies/-/meteor-bundle-dependencies-0.0.3.tgz#e72d2f4e139a47990c5c7d727f283af02e07d407" - integrity sha512-e1k2w94D3SHV0Q0CGtFOqPtXbImNhzU7BefnuxbzOjWq3c00JcSUt4cq7oKtd3KLGAE9nUgrjJk5UtqJqTPjiw== - dependencies: - apn "1.6.2" - arson "0.2.6" - basic-auth-connect "1.0.0" - bcryptjs "2.3.0" - cli-color "0.2.3" - combined-stream2 "1.1.2" - compression "1.7.1" - connect "3.6.5" - cookie-parser "1.4.3" - cookies "0.6.1" - core-js "2.5.7" - decimal.js "^10.0.2" - errorhandler "1.5.0" - es5-shim "4.5.10" - faye-websocket "0.11.1" - install "0.12.2" - json5 "2.1.0" - lolex "2.3.1" - meteor-babel "7.2.0" - meteor-babel-helpers "0.0.3" - meteor-deque "2.1.0" - meteor-promise "0.8.7" - mongodb "3.1.6" - mongodb-uri "0.9.7" - node-fetch "2.1.2" - node-gcm "0.14.4" - node4mailer "4.0.3" - parseurl "1.3.2" - permessage-deflate "0.1.6" - phone "1.0.3" - promise "8.0.2" - qs-middleware "1.0.3" - reify "0.17.3" - request "2.83.0" - semver "5.4.1" - send "0.16.1" - sha256 "0.2.0" - sockjs "0.3.19" - stream-buffers "0.2.5" - stream-to-string "1.1.0" - useragent "2.3.0" - uuid "3.3.2" - whatwg-fetch "2.0.4" - -"@steedos/objectql@file:packages/objectql": - version "1.5.1" - dependencies: - "@salesforce/dev-config" "^1.4.4" - "@salesforce/kit" "^1.0.4" - "@salesforce/ts-types" "^1.1.1" - "@steedos/filters" "^1.5.1" - "@steedos/odata-v4-typeorm" "^0.0.24" - "@steedos/schemas" "^1.5.1" - "@steedos/standard-objects" "^1.5.1" - "@types/express" "^4.16.1" - "@types/mongodb" "^3.1.22" - "@types/node" "^11.10.4" - "@types/underscore" "^1.8.13" - app-root-path "^2.2.1" - body-parser "^1.18.1" - bunyan-sfdx-no-dtrace "^1.8.2" - chai "^4.2.0" - clone "^2.1.2" - cookies "^0.6.1" - express "^4.15.4" - express-graphql "^0.7.1" - fibers "^3.1.1" - globby "^9.1.0" - graphql "^14.1.1" - graphql-type-json "^0.2.2" - jsen "^0.6.6" - mongodb "^3.0.8" - odata-v4-mongodb "^0.1.12" - odata-v4-sql "^0.1.2" - reflect-metadata "^0.1.10" - routing-controllers "^0.7.7" - typeorm "^0.2.16" - underscore "1.5.2" - "@steedos/odata-v4-typeorm@^0.0.24": version "0.0.24" resolved "https://registry.yarnpkg.com/@steedos/odata-v4-typeorm/-/odata-v4-typeorm-0.0.24.tgz#da14a880e5ec2b52b91f2912939b812449988e8b" @@ -2344,6 +2224,17 @@ yargs "^13.2.1" yn "^2.0.0" +"@steedos/steedos-plugin-workflow@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@steedos/steedos-plugin-workflow/-/steedos-plugin-workflow-1.0.1.tgz#ff1b24c9fb25af05f1d05d63a579a1de723ac412" + integrity sha512-uTUBmGuqll15IICBtuAu4Ee4/JA9rJoaepBzw0ofVMs44o6RiFNr5A+fzEqOXzp8zsZjH1xG/cWSqmlXSwpGcg== + dependencies: + "@steedos/auth" "^1.1.5" + "@steedos/objectql" "^1.0.7" + body-parser "^1.19.0" + express "^4.17.1" + underscore "^1.9.1" + "@svgr/babel-plugin-add-jsx-attribute@^4.2.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1" @@ -4378,7 +4269,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -body-parser@1.19.0, body-parser@^1.18.1, body-parser@^1.18.3: +body-parser@1.19.0, body-parser@^1.18.1, body-parser@^1.18.3, body-parser@^1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== @@ -6347,12 +6238,12 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -d@1: +d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== @@ -7193,7 +7084,7 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14, es5-ext@~0.10.46: +es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.51, es5-ext@~0.10.46: version "0.10.51" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.51.tgz#ed2d7d9d48a12df86e0299287e93a09ff478842f" integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ== @@ -7239,12 +7130,12 @@ es6-promisify@^5.0.0: es6-promise "^4.0.3" es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= + version "3.1.2" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.2.tgz#859fdd34f32e905ff06d752e7171ddd4444a7ed1" + integrity sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ== dependencies: - d "1" - es5-ext "~0.10.14" + d "^1.0.1" + es5-ext "^0.10.51" escape-html@~1.0.3: version "1.0.3" @@ -7793,7 +7684,7 @@ express-unless@^0.3.0: resolved "https://registry.yarnpkg.com/express-unless/-/express-unless-0.3.1.tgz#2557c146e75beb903e2d247f9b5ba01452696e20" integrity sha1-JVfBRudb65A+LSR/m1ugFFJpbiA= -express@^4.15.4, express@^4.16.2, express@^4.16.4: +express@^4.15.4, express@^4.16.2, express@^4.16.4, express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== @@ -11841,9 +11732,9 @@ log-update@^2.3.0: wrap-ansi "^3.0.1" loglevel@^1.4.1: - version "1.6.3" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" - integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== + version "1.6.4" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56" + integrity sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g== lolex@2.3.1: version "2.3.1" @@ -13816,11 +13707,11 @@ pako@~1.0.2, pako@~1.0.5: integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== dependencies: - cyclist "~0.2.2" + cyclist "^1.0.1" inherits "^2.0.3" readable-stream "^2.1.5" @@ -14324,9 +14215,9 @@ pomelo-protobuf@^0.4.0: integrity sha1-5F6aCkRusYZn4MbhPutT1Hrdvag= portfinder@^1.0.9: - version "1.0.23" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.23.tgz#894db4bcc5daf02b6614517ce89cd21a38226b82" - integrity sha512-B729mL/uLklxtxuiJKfQ84WPxNw5a7Yhx3geQZdcA4GjNjZSTSSMMWyoennMVnTWSmAR0lMdzWYN0JLnHrg1KQ== + version "1.0.24" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.24.tgz#11efbc6865f12f37624b6531ead1d809ed965cfa" + integrity sha512-ekRl7zD2qxYndYflwiryJwMioBI7LI7rVXg3EnLK3sjkouT5eOuhS3gS255XxBksa30VG8UPZYZCdgfGOfkSUg== dependencies: async "^1.5.2" debug "^2.2.0" @@ -14962,9 +14853,9 @@ postcss@^6.0.1, postcss@^6.0.23: supports-color "^5.4.0" postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.17" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" - integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== + version "7.0.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.18.tgz#4b9cda95ae6c069c67a4d933029eddd4838ac233" + integrity sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -16716,9 +16607,9 @@ serialize-error@^3.0.0: integrity sha512-+y3nkkG/go1Vdw+2f/+XUXM1DXX1XcxTl99FfiD/OEPUNw4uo0i6FKABfTAN5ZcgGtjTRZcEbxcE/jtXbEY19A== serialize-javascript@^1.4.0, serialize-javascript@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.0.tgz#5b77019d7c3b85fe91b33ae424c53dcbfb6618bd" - integrity sha512-UkGlcYMtw4d9w7YfCtJFgdRTps8N4L0A48R+SmcGL57ki1+yHwJXnalk5bjgrw+ljv6SfzjzPjhohod2qllg/Q== + version "1.9.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" + integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== serve-index@^1.7.2: version "1.9.1" @@ -17450,18 +17341,19 @@ stealthy-require@^1.1.1: integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= steedos-server@^1.0.9, steedos-server@^1.2.5: - version "1.4.1" - resolved "https://registry.yarnpkg.com/steedos-server/-/steedos-server-1.4.1.tgz#fc25943978317b0bfd2866083ea56e40ca8ead9d" - integrity sha512-QhlE5vQoBrwjLXgREjEFNlM7JMb7l1JEclze7+zwN6zXcM7yo6/rg43jyJCT8DoIBAXjyJSbjVH98Wsuxm6qrQ== + version "1.5.2" + resolved "https://registry.yarnpkg.com/steedos-server/-/steedos-server-1.5.2.tgz#0261c1a4b0ba4491c290a6e052a93371f299711c" + integrity sha512-VMjDjhLvn5uK5C4hNp/tP2DZ3h1pATTFpsz7jO/kM7lQh98JQkEBmLbGZMKs0mJhBBrIBb4gFCjAf9WJTF/0wQ== dependencies: "@babel/runtime" "^7.2.0" - "@steedos/auth" "^1.1.5" - "@steedos/core" "^1.3.16" - "@steedos/filters" "^1.0.0" - "@steedos/meteor-bundle-dependencies" "0.0.3" - "@steedos/meteor-bundle-runner" "^1.1.7" - "@steedos/objectql" "^1.0.6" - "@steedos/standard-objects" "^1.0.6" + "@steedos/auth" "^1.5.2" + "@steedos/core" "^1.5.1" + "@steedos/filters" "^1.5.1" + "@steedos/meteor-bundle-dependencies" "1.5.1" + "@steedos/meteor-bundle-runner" "^1.5.1" + "@steedos/objectql" "^1.5.1" + "@steedos/standard-objects" "^1.5.1" + "@steedos/steedos-plugin-workflow" "^1.0.1" aliyun-sdk "^1.11.12" basic-auth "^2.0.1" bcrypt "^3.0.4" From f2afe4fc8a9c69041cf768f6370bb6b4405b2897 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 6 Sep 2019 14:49:22 +0800 Subject: [PATCH 146/154] add lerna scripts --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 75a0435abe..65fed367a8 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,11 @@ "bootstrap": "lerna bootstrap; yarn run link", "link": "lerna exec -- yarn link", "unlink": "lerna exec -- yarn unlink", - "publish": "lerna publish --registry https://registry.npmjs.org", + "pub": "lerna publish --registry https://registry.npmjs.org", "compile": "lerna run compile", "prepare": "lerna run prepare", - "clean": "lerna clean" + "clean": "lerna clean", + "changed": "lerna changed" }, "devDependencies": { "lerna": "^3.14.0", From 853a6165c2afba1dc115212c524a6b6dc31dbd70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 6 Sep 2019 14:50:39 +0800 Subject: [PATCH 147/154] v1.5.4 --- apps/contracts/package.json | 4 ++-- apps/crm/package.json | 6 +++--- apps/meeting/package.json | 4 ++-- lerna.json | 2 +- packages/auth/package.json | 4 ++-- packages/core/package.json | 8 ++++---- packages/objectql/package.json | 4 ++-- packages/react-components/package.json | 4 ++-- packages/report/package.json | 4 ++-- packages/standard-objects/package.json | 2 +- packages/tools/package.json | 4 ++-- 11 files changed, 23 insertions(+), 23 deletions(-) diff --git a/apps/contracts/package.json b/apps/contracts/package.json index b2b43e8dbc..6c8b830b3e 100644 --- a/apps/contracts/package.json +++ b/apps/contracts/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@steedos-app/steedos-contracts-app", - "version": "1.5.1", + "version": "1.5.4", "description": "contract-management-system", "main": "steedos-app/index.js", "scripts": { @@ -16,7 +16,7 @@ "license": "ISC", "dependencies": { "@steedos/meteor-bundle-runner": "^1.5.1", - "@steedos/objectql": "^1.5.1", + "@steedos/objectql": "^1.5.4", "steedos-server": "^1.2.5" }, "bugs": { diff --git a/apps/crm/package.json b/apps/crm/package.json index a4d8520d8e..804938fb07 100644 --- a/apps/crm/package.json +++ b/apps/crm/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@steedos/app-contracts", - "version": "1.5.3", + "version": "1.5.4", "description": "contract-management-system", "main": "index.js", "scripts": { @@ -16,9 +16,9 @@ "author": "Jack Zhuang", "license": "ISC", "dependencies": { - "@steedos/core": "^1.5.3", + "@steedos/core": "^1.5.4", "@steedos/meteor-bundle-runner": "^1.5.1", - "@steedos/standard-objects": "^1.5.1", + "@steedos/standard-objects": "^1.5.4", "steedos-cli": "^1.5.1", "steedos-server": "^1.0.9" }, diff --git a/apps/meeting/package.json b/apps/meeting/package.json index a77459fda4..ba3a3f79ff 100644 --- a/apps/meeting/package.json +++ b/apps/meeting/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@steedos/app-meeting", - "version": "1.5.1", + "version": "1.5.4", "description": "Meeting room booking", "main": "main.js", "scripts": { @@ -20,7 +20,7 @@ "homepage": "https://github.com/steedos/app-meeting#readme", "dependencies": { "@steedos/meteor-bundle-runner": "^1.5.1", - "@steedos/objectql": "^1.5.1", + "@steedos/objectql": "^1.5.4", "steedos-server": "^1.2.5" } } diff --git a/lerna.json b/lerna.json index afe930867c..5c676ab7a1 100644 --- a/lerna.json +++ b/lerna.json @@ -5,5 +5,5 @@ ], "useWorkspaces": true, "npmClient": "yarn", - "version": "1.5.3" + "version": "1.5.4" } diff --git a/packages/auth/package.json b/packages/auth/package.json index 965646a137..e93720ae68 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.5.3", + "version": "1.5.4", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", @@ -14,7 +14,7 @@ "access": "public" }, "dependencies": { - "@steedos/objectql": "^1.5.1", + "@steedos/objectql": "^1.5.4", "bcrypt": "^3.0.6", "cookies": "^0.7.3", "express": "^4.16.4", diff --git a/packages/core/package.json b/packages/core/package.json index 2e23d3ed3c..bdc059c640 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.5.3", + "version": "1.5.4", "description": "", "main": "lib/index.js", "scripts": { @@ -18,9 +18,9 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/auth": "^1.5.3", - "@steedos/objectql": "^1.5.1", - "@steedos/standard-objects": "^1.5.1", + "@steedos/auth": "^1.5.4", + "@steedos/objectql": "^1.5.4", + "@steedos/standard-objects": "^1.5.4", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", diff --git a/packages/objectql/package.json b/packages/objectql/package.json index cd700c29ea..0dffc76ddf 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.5.1", + "version": "1.5.4", "description": "", "main": "lib/index.js", "scripts": { @@ -21,7 +21,7 @@ "@steedos/filters": "^1.5.1", "@steedos/odata-v4-typeorm": "^0.0.24", "@steedos/schemas": "^1.5.1", - "@steedos/standard-objects": "^1.5.1", + "@steedos/standard-objects": "^1.5.4", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 76da43a35a..9591870991 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,9 +1,9 @@ { "name": "@steedos/react-components", - "version": "1.5.3", + "version": "1.5.4", "private": true, "dependencies": { - "@steedos/core": "^1.5.1", + "@steedos/core": "^1.5.4", "eslint": "5.12.0", "http-proxy-middleware": "^0.19.1", "react": "^16.8.4", diff --git a/packages/report/package.json b/packages/report/package.json index 27ff47d5b3..41709fd66e 100644 --- a/packages/report/package.json +++ b/packages/report/package.json @@ -1,6 +1,6 @@ { "name": "@steedos/report", - "version": "1.5.1", + "version": "1.5.4", "description": "report server for steedos", "main": "index.js", "scripts": { @@ -10,7 +10,7 @@ "author": "", "license": "MIT", "dependencies": { - "@steedos/objectql": "^1.5.1", + "@steedos/objectql": "^1.5.4", "@steedos/stimulsoft-report": "^1.5.1", "express": "^4.15.4", "graphql-request": "^1.8.2", diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 498fba86a3..09aceef764 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.5.1", + "version": "1.5.4", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/tools/package.json b/packages/tools/package.json index 681660f30c..bf7b3ddd82 100644 --- a/packages/tools/package.json +++ b/packages/tools/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "steedos-tools", - "version": "1.5.1", + "version": "1.5.4", "description": "", "main": "lib/sqlserver.js", "scripts": { @@ -11,6 +11,6 @@ "author": "", "license": "ISC", "dependencies": { - "@steedos/objectql": "^1.5.1" + "@steedos/objectql": "^1.5.4" } } From a6ed491ccf41e431e3c88e5fe359964d9ef9b540 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 6 Sep 2019 14:57:00 +0800 Subject: [PATCH 148/154] update to 1.5.4 --- packages/auth/package.json | 2 +- packages/core/package.json | 2 +- packages/objectql/package.json | 2 +- packages/report/index.js | 5 - packages/report/mrt.js | 104 ------- .../report/objects/contract_types.object.yml | 48 --- packages/report/objects/contracts.object.yml | 266 ----------------- .../report/objects/organizations.object.yml | 186 ------------ .../report/objects/project_issues.object.yml | 175 ----------- packages/report/objects/reports.object.yml | 279 ------------------ packages/report/objects/users.object.yml | 258 ---------------- packages/report/package.json | 20 -- packages/report/reporter.js | 76 ----- packages/report/reports/contracts.mrt | 1 - packages/report/reports/contracts.report.yml | 22 -- packages/report/reports/issues.mrt | 1 - packages/report/reports/issues.report.yml | 25 -- packages/report/router.js | 44 --- packages/report/server.js | 42 --- packages/report/utils.js | 147 --------- packages/standard-objects/package.json | 2 +- 21 files changed, 4 insertions(+), 1703 deletions(-) delete mode 100644 packages/report/index.js delete mode 100644 packages/report/mrt.js delete mode 100644 packages/report/objects/contract_types.object.yml delete mode 100644 packages/report/objects/contracts.object.yml delete mode 100644 packages/report/objects/organizations.object.yml delete mode 100644 packages/report/objects/project_issues.object.yml delete mode 100644 packages/report/objects/reports.object.yml delete mode 100644 packages/report/objects/users.object.yml delete mode 100644 packages/report/package.json delete mode 100644 packages/report/reporter.js delete mode 100644 packages/report/reports/contracts.mrt delete mode 100644 packages/report/reports/contracts.report.yml delete mode 100644 packages/report/reports/issues.mrt delete mode 100644 packages/report/reports/issues.report.yml delete mode 100644 packages/report/router.js delete mode 100644 packages/report/server.js delete mode 100644 packages/report/utils.js diff --git a/packages/auth/package.json b/packages/auth/package.json index e93720ae68..d8ae98ad47 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -34,5 +34,5 @@ "ts-node": "^8.0.3", "typescript": "3.5.3" }, - "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" + "gitHead": "853a6165c2afba1dc115212c524a6b6dc31dbd70" } diff --git a/packages/core/package.json b/packages/core/package.json index bdc059c640..ce5172b8dc 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -67,5 +67,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" + "gitHead": "853a6165c2afba1dc115212c524a6b6dc31dbd70" } diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 0dffc76ddf..0b1f825978 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -70,5 +70,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" + "gitHead": "853a6165c2afba1dc115212c524a6b6dc31dbd70" } diff --git a/packages/report/index.js b/packages/report/index.js deleted file mode 100644 index b665a9a714..0000000000 --- a/packages/report/index.js +++ /dev/null @@ -1,5 +0,0 @@ -const reporter = require('./reporter'); -const mrt = require('./mrt'); - -module.exports.getBlankMrt = reporter.getBlankMrt; -module.exports.initMrts = mrt.initMrts; diff --git a/packages/report/mrt.js b/packages/report/mrt.js deleted file mode 100644 index 63aaa224d0..0000000000 --- a/packages/report/mrt.js +++ /dev/null @@ -1,104 +0,0 @@ -const utils = require('./utils'); -const fs = require("fs"); -const path = require("path"); -const _ = require('underscore'); - -const saveReportToMrtFile = (filePath, content) => { - fs.writeFileSync(filePath, JSON.stringify(content)); -} - -const getMrtDictionary = (report) => { - if (!report){ - return { - } - } - let databases = utils.getDatabases(report); - let dataSources = utils.getDataSources(report); - return { - "DataSources": dataSources, - "Databases": databases - } -} - -const getBlankMrtContent = (report) => { - let dictionary = getMrtDictionary(report); - return { - "ReportVersion": "2019.2.1", - "ReportGuid": "2cad802c0dafb11543b53058f6f97645", - "ReportName": "Report", - "ReportAlias": "Report", - "ReportFile": "Blank.mrt", - "ReportCreated": "/Date(1559022984000+0800)/", - "ReportChanged": "/Date(1559022984000+0800)/", - "EngineVersion": "EngineV2", - "CalculationMode": "Interpretation", - "ReportUnit": "Centimeters", - "PreviewSettings": 268435455, - "Dictionary": dictionary, - "Pages": { - "0": { - "Ident": "StiPage", - "Name": "Page1", - "Guid": "47bcaf029c0e3c47e55d68b8741289c1", - "Interaction": { - "Ident": "StiInteraction" - }, - "Border": ";;2;;;;;solid:Black", - "Brush": "solid:Transparent", - "PageWidth": 21.01, - "PageHeight": 29.69, - "Watermark": { - "TextBrush": "solid:50,0,0,0" - }, - "Margins": { - "Left": 1, - "Right": 1, - "Top": 1, - "Bottom": 1 - } - } - } - } -} - -const initMrts = (reports, reportsDir) => { - _.forEach(reports, (report) => { - let filePath = path.join(reportsDir, `${report._id}.mrt`); - report.mrt_file = filePath; - let mrtContent = getMrtContent(report); - if (mrtContent){ - mrtContent.Dictionary = getMrtDictionary(report); - } - else{ - mrtContent = getBlankMrtContent(report); - } - saveReportToMrtFile(filePath, mrtContent); - }); -} - -const getMrtContent = (report) => { - if (report && report.mrt_file){ - let filePath = report.mrt_file; - let json = {}; - try { - let extname = path.extname(filePath); - if (extname.toLocaleLowerCase() === '.mrt'){ - if (fs.existsSync(filePath)){ - json = JSON.parse(fs.readFileSync(filePath, 'utf8').normalize('NFC')); - } - else{ - return null; - } - } - } catch (error) { - console.error('loadFile error', filePath, error); - } - return json; - } -} - -exports.saveReportToMrtFile = saveReportToMrtFile; -exports.initMrts = initMrts; -exports.getMrtDictionary = getMrtDictionary; -exports.getBlankMrtContent = getBlankMrtContent; -exports.getMrtContent = getMrtContent; diff --git a/packages/report/objects/contract_types.object.yml b/packages/report/objects/contract_types.object.yml deleted file mode 100644 index fb55de30f4..0000000000 --- a/packages/report/objects/contract_types.object.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: contract_types -icon: record -label: 合同分类 -fields: - name: - type: text - label: 名称 - name: name - searchable: true - remarks: - type: text - label: 备注 - name: remarks - yinhuashuilv: - type: number - label: 印花税率 - scale: 4 - name: yinhuashuilv - owner: - label: 所属用户 - type: lookup - reference_to: users - name: owner -permission_set: - user: - allowCreate: false - allowDelete: false - allowEdit: false - allowRead: false - modifyAllRecords: false - viewAllRecords: true - name: user - admin: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: true - viewAllRecords: true - name: admin -list_views: - all: - label: 全部 - filter_scope: space - columns: - - name - - remarks - - yinhuashuilv diff --git a/packages/report/objects/contracts.object.yml b/packages/report/objects/contracts.object.yml deleted file mode 100644 index 55d013f77b..0000000000 --- a/packages/report/objects/contracts.object.yml +++ /dev/null @@ -1,266 +0,0 @@ -name: contracts -label: 合同 -icon: contract -enable_files: true -enable_search: true -fields: - no: - type: text - label: 合同编号 - required: true - sortable: true - filterable: true - name: 'no' - name: - label: 名称 - type: text - required: true - searchable: true - index: true - name: name - amount: - label: 金额 - type: number - scale: 2 - required: true - sortable: true - name: amount - signed_date: - label: 签订日期 - type: date - sortable: true - filterable: true - name: signed_date - # account: - # label: 对方单位 - # type: master_detail - # reference_to: accounts - # name: account - # filterable: true - # customer_contact: - # label: 联系人 - # type: master_detail - # reference_to: contacts - # filterable: false - # name: customer_contact - start_date: - label: 开始日期 - type: date - sortable: true - filterable: true - name: start_date - end_date: - label: 结束日期 - type: date - sortable: true - filterable: true - name: end_date - description: - label: 备注 - type: textarea - is_wide: true - name: description - subject: - type: textarea - label: 合同内容 - is_wide: true - name: subject - project: - type: text - label: 计划编号 - filterable: true - name: project - othercompany: - type: text - label: 对方单位名称 - name: othercompany - registered_capital: - type: number - label: 注册资金 - scale: 2 - hidden: true - name: registered_capital - otherperson: - type: text - label: 对方联系人 - name: otherperson - is_important: - type: boolean - label: 是否重大合同 - defaultValue: false - name: is_important - is_bidding: - type: boolean - label: 是否招投标 - defaultValue: false - name: is_bidding - is_connected_transaction: - type: boolean - label: 是否关联交易 - defaultValue: false - name: is_connected_transaction - is_solid_investment: - type: boolean - label: 是否固投项目 - defaultValue: false - name: is_solid_investment - contract_type: - type: lookup - label: 合同分类 - reference_to: contract_types - required: true - name: contract_type - filterable: true - pretax_amount: - type: number - label: 合同税前金额 - scale: 2 - name: pretax_amount - tax: - type: number - label: 合同税 - scale: 2 - name: tax - advance_amount: - type: number - label: 预付款金额 - scale: 2 - name: advance_amount - outstanding_amount: - type: number - label: 未结金额 - scale: 2 - name: outstanding_amount - quality_bond: - type: number - label: 质量保证金 - scale: 2 - name: quality_bond - quality_proportion: - type: text - label: 质保比例 - name: quality_proportion - shelf_life: - type: text - label: 质保期 - name: shelf_life - yinhuashuilv: - type: number - label: 印花税率 - scale: 4 - name: yinhuashuilv - stamp_duty: - type: number - label: 印花税额 - scale: 2 - name: stamp_duty - contract_state: - type: select - label: 合同履行状态 - options: - - label: 未签订 - value: 未签订 - - label: 进行中 - value: 进行中 - - label: 解除 - value: 解除 - - label: 异常 - value: 异常 - - label: 已验收 - value: 已验收 - - label: 完毕 - value: 完毕 - - label: 违约但继续履行 - value: 违约但继续履行 - allowedValues: - - 未签订 - - 进行中 - - 解除 - - 异常 - - 已验收 - - 完毕 - - 违约但继续履行 - defaultValue: 未签订 - required: true - name: contract_state - filterable: true - fileid: - type: text - label: 申请单id - hidden: true - name: fileid - chengbankeshi: - type: text - label: 承办科室 - name: chengbankeshi - chengbanren: - type: text - label: 承办人 - name: chengbanren - b_signed: - type: text - label: 对方签署人 - name: b_signed - a_signed: - type: text - label: 己方签署人 - name: a_signed - bop: - type: select - label: 收支类别 - defaultValue: 收入 - options: - - label: 收入 - value: 收入 - - label: 支出 - value: 支出 - allowedValues: - - 收入 - - 支出 - required: true - name: bop - filterable: true - owner: - label: 所属用户 - type: lookup - reference_to: users - name: owner -list_views: - recent: - label: 最近查看 - filter_scope: space - all: - label: 所有合同 - columns: - - 'no' - - name - - account - - company_id - - amount - - signed_date - - contract_state - filter_scope: space - filter_fields: - - company_id - - contract_type - - signed_date - - account - - contract_state - mine: - label: 我的合同 - filter_scope: mine -permission_set: - user: - allowCreate: false - allowDelete: false - allowEdit: false - allowRead: true - modifyAllRecords: false - viewAllRecords: true - admin: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: true - viewAllRecords: true diff --git a/packages/report/objects/organizations.object.yml b/packages/report/objects/organizations.object.yml deleted file mode 100644 index 51eea1e4f9..0000000000 --- a/packages/report/objects/organizations.object.yml +++ /dev/null @@ -1,186 +0,0 @@ -name: organizations -label: 部门 -icon: team_member -enable_search: true -enable_tree: true -fields: - name: - label: 名称 - type: text - required: true - searchable: true - index: true - sortable: true - name: name - fullname: - label: 部门全称 - type: text - omit: true - hidden: true - is_name: true - name: fullname - searchable: true - parent: - label: 上级部门 - type: lookup - reference_to: organizations - sortable: true - index: true - blackbox: true - name: parent - filterable: true - parents: - label: 上级部门 - type: lookup - reference_to: organizations - multiple: true - omit: true - group: 系统 - blackbox: true - name: parents - filterable: true - children: - label: 下级部门 - type: lookup - reference_to: organizations - multiple: true - omit: true - group: 系统 - name: children - filterable: true - sort_no: - label: 排序号 - type: number - defaultValue: 100 - sortable: true - name: sort_no - # admins: - # label: 部门管理员 - # type: lookup - # reference_to: users - # multiple: true - # name: admins - # filterable: true - # users: - # label: 成员 - # type: lookup - # reference_to: users - # multiple: true - # is_wide: true - # name: users - # filterable: true - company_id: - label: 所属单位 - group: 系统 - type: lookup - reference_to: organizations - sortable: true - index: true - is_company_only: true - defaultValue: | - function(){ - if (Meteor.isClient) { - return Session.get('user_company_id') - } - } - omit: true - hidden: true - is_company: - label: 公司级 - type: boolean - index: true - name: is_company - is_group: - label: 群组级 - type: boolean - index: true - name: is_group - hidden: - label: 隐藏 - type: boolean - name: hidden -list_views: - all: - columns: - - name - - sort_no - - is_company - - is_group - - admins - - hidden - label: 所有 - filter_scope: space - sort: - - field_name: sort_no - order: desc - - field_name: name - order: asc -actions: - standard_query: - label: 查找 - visible: false - 'on': list - todo: standard_query - addSubOrganization: - label: 添加子部门 - visible: | - function () { - var permissions; - permissions = Creator.getPermissions(); - - if (permissions) { - return permissions["allowCreate"]; - } - } - 'on': record - todo: | - function (object_name, record_id) { - var record; - - if (record_id) { - if (Steedos.isMobile()) { - record = Creator.getObjectRecord(object_name, record_id); - Session.set('cmDoc', { - parent: record._id - }); - Session.set('reload_dxlist', false); - return Meteor.defer(function () { - return $(".btn.creator-add").click(); - }); - } else { - if (this.record) { - Session.set('cmDoc', { - parent: this.record._id - }); - return Meteor.defer(function () { - return $(".btn.creator-add").click(); - }); - } - } - } - } -permission_set: - user: - allowCreate: false - allowDelete: false - allowEdit: false - allowRead: true - modifyAllRecords: false - viewAllRecords: true - name: user - admin: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: true - viewAllRecords: true - name: admin - organization_admin: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyCompanyRecords: true - viewAllRecords: true - name: organization_admin diff --git a/packages/report/objects/project_issues.object.yml b/packages/report/objects/project_issues.object.yml deleted file mode 100644 index cc51493741..0000000000 --- a/packages/report/objects/project_issues.object.yml +++ /dev/null @@ -1,175 +0,0 @@ -name: project_issues -label: 问题 -icon: location -enable_files: true -enable_search: true -fields: - name: - label: 问题标题 - type: text - is_wide: true - required: true - searchable: true - name: name - description: - label: 问题描述 - type: textarea - is_wide: true - rows: 4 - name: description - # category: - # label: 问题类型 - # type: master_detail - # reference_to: projects - # filterable: true - # name: category - priority: - label: 处理优先级 - type: select - options: - - label: 高 - value: high - - label: 中 - value: medium - - label: 低 - value: low - defaultValue: medium - filterable: true - name: priority - organization: - label: 提报部门 - type: lookup - reference_to: organizations - filterable: true - name: organization - owner_organization: - label: 受理部门 - type: lookup - reference_to: organizations - name: owner_organization - filterable: true - deadline: - label: 截止时间 - type: date - name: deadline - end_organization: - label: 办结部门 - type: lookup - reference_to: organizations - name: end_organization - filterable: true - enddate: - label: 办结时间 - type: date - name: enddate - solution: - label: 解决方案 - type: textarea - is_wide: true - rows: 4 - name: solution - unresolved: - label: 未解决说明 - type: textarea - is_wide: true - rows: 4 - name: unresolved - result: - label: 问题状态 - type: select - options: - - label: 已提交,未确认 - value: submit - - label: 已确认,未处理 - value: Confirmed - - label: 已处理,未完成 - value: Processed - - label: 已完成,已办结 - value: solved - - label: 已办结,未解决 - value: Unsolved - defaultValue: submit - filterable: true - name: result - status: - label: 状态 - type: select - options: - - label: 进行中 - value: open - - label: 已关闭 - value: closed - defaultValue: open - filterable: true - name: status -list_views: - open: - label: 进行中 - columns: - - name - - category - - level - - tags - - created - filter_scope: space - filters: - - - status - - = - - open - filter_fields: - - category - - level - - tags - - company_id - - owner - closed: - label: 已关闭 - columns: - - name - - category - - level - - tags - - created - filter_scope: space - filters: - - - status - - = - - closed - filter_fields: - - category - - level - - tags - - company_id - - owner - all: - label: 所有 - columns: - - name - - category - - level - - status - - tags - - created - filter_scope: space - filter_fields: - - category - - level - - status - - tags - - company_id - - owner -permission_set: - user: - allowCreate: false - allowDelete: false - allowEdit: false - allowRead: true - modifyAllRecords: false - viewAllRecords: true - admin: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: true - viewAllRecords: true diff --git a/packages/report/objects/reports.object.yml b/packages/report/objects/reports.object.yml deleted file mode 100644 index 73a06ee145..0000000000 --- a/packages/report/objects/reports.object.yml +++ /dev/null @@ -1,279 +0,0 @@ -name: reports -label: 报表 -icon: report -fields: - name: - label: 名称 - type: text - required: true - searchable: true - index: true - name: name - report_type: - label: 报表类型 - type: select - defaultValue: tabular - options: - - label: 列表 - value: tabular - - label: 摘要 - value: summary - - label: 矩阵 - value: matrix - name: report_type - filterable: true - object_name: - label: 对象名 - type: lookup - optionsFunction: ! |- - function () { - var _options; - - _options = []; - - _.forEach(Creator.Objects, function (o, k) { - return _options.push({ - label: o.label, - value: k, - icon: o.icon - }); - }); - - return _options; - } - required: true - _optionsFunction: |- - function () { - var _options; - - _options = []; - - _.forEach(Creator.Objects, function (o, k) { - return _options.push({ - label: o.label, - value: k, - icon: o.icon - }); - }); - - return _options; - } - name: object_name - filterable: true - filter_scope: - label: 过虑范围 - type: select - defaultValue: space - hidden: true - options: - - label: 所有 - value: space - - label: 与我相关 - value: mine - name: filter_scope - filterable: true - filters: - label: 过滤条件 - type: '[Object]' - omit: true - name: filters - filters.$: - label: 过滤器 - blackbox: true - omit: true - hidden: true - name: filters.$ - filters.$.field: - label: 字段名 - type: text - name: filters.$.field - filters.$.operation: - label: 操作符 - type: select - defaultValue: = - options: ! |- - function () { - return Creator.getFieldOperation(); - } - _options: |- - function () { - return Creator.getFieldOperation(); - } - name: filters.$.operation - filterable: true - filters.$.value: - label: 字段值 - blackbox: true - name: filters.$.value - filter_logic: - label: 过滤逻辑 - type: text - omit: true - name: filter_logic - fields: - label: 字段 - type: lookup - multiple: true - depend_on: - - object_name - defaultIcon: service_contract - optionsFunction: ! |- - function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - _optionsFunction: |- - function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - name: fields - filterable: true - rows: - label: 行 - type: lookup - multiple: true - depend_on: - - object_name - defaultIcon: service_contract - optionsFunction: ! |- - function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - _optionsFunction: |- - function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - name: rows - filterable: true - columns: - label: 列 - type: lookup - multiple: true - depend_on: - - object_name - defaultIcon: service_contract - optionsFunction: ! |- - function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - _optionsFunction: |- - function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - name: columns - filterable: true - values: - label: 统计 - type: lookup - multiple: true - depend_on: - - object_name - defaultIcon: service_contract - optionsFunction: ! |- - function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - _optionsFunction: |- - function (values) { - return Creator.getObjectLookupFieldOptions(values != null ? values.object_name : void 0, true, true); - } - name: values - filterable: true - filter_fields: - label: 过滤字段 - type: lookup - multiple: true - depend_on: - - object_name - optionsFunction: ! |- - function (values) { - return Creator.getObjectFilterFieldOptions(values != null ? values.object_name : void 0); - } - _optionsFunction: |- - function (values) { - return Creator.getObjectFilterFieldOptions(values != null ? values.object_name : void 0); - } - name: filter_fields - filterable: true - options: - label: 操作 - omit: true - blackbox: true - name: options - description: - label: 描述 - type: textarea - is_wide: true - name: description - charting: - label: 显示图表 - type: boolean - defaultValue: true - name: charting - grouping: - label: 显示小计 - type: boolean - defaultValue: true - name: grouping - totaling: - label: 显示总计 - type: boolean - defaultValue: true - name: totaling - counting: - label: 显示记录计数 - type: boolean - defaultValue: true - name: counting -list_views: - default: - columns: - - name - - report_type - - object_name - all: - label: 所有报表 - filter_scope: space - filter_fields: - - report_type - - created - application: - label: 应用报表 - filter_scope: space - filters: ! |- - function () { - var object_names; - object_names = Creator.getAppObjectNames(); - return [["object_name", "=", object_names]]; - } - filter_fields: - - report_type - - created - _filters: |- - function () { - var object_names; - object_names = Creator.getAppObjectNames(); - return [["object_name", "=", object_names]]; - } - mine: - label: 我的报表 - filter_scope: mine - filter_fields: - - report_type - - created -permission_set: - user: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: false - viewAllRecords: true - disabled_list_views: - - all - admin: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: true - viewAllRecords: true diff --git a/packages/report/objects/users.object.yml b/packages/report/objects/users.object.yml deleted file mode 100644 index 096e5097aa..0000000000 --- a/packages/report/objects/users.object.yml +++ /dev/null @@ -1,258 +0,0 @@ -name: users -label: 用户 -icon: user -enable_api: true -fields: - avatar: - label: 头像 - type: avatar - group: '-' - name: avatar - avatarUrl: - label: 头像URL - type: text - omit: true - name: avatarUrl - name: - label: 姓名 - type: text - required: true - searchable: true - index: true - name: name - company: - type: text - label: 公司 - required: true - name: company - position: - type: text - label: 职务 - required: true - name: position - mobile: - type: text - label: 手机 - group: '-' - required: true - readonly: true - name: mobile - mobile2: - type: text - label: 手机 - required: true - hidden: true - group: '-' - name: mobile2 - wechat: - type: text - label: 微信号 - name: wechat - work_phone: - type: text - label: 座机 - name: work_phone - email: - type: text - label: 邮件 - name: email - email2: - type: text - label: 邮件 - required: true - name: email2 - location: - label: 地址 - type: location - system: gcj02 - required: true - name: location - voice: - label: 语音介绍 - type: audio - group: '-' - name: voice - self_introduction: - type: textarea - is_wide: true - label: 个人简介 - group: '-' - name: self_introduction - photos: - label: 照片 - type: image - multiple: true - max: 9 - group: '-' - name: photos - card_published: - label: 名片已发布 - type: boolean - omit: true - name: card_published - profile: - type: '[Object]' - label: 用户信息 - omit: true - name: profile - profile.sex: - type: select - label: 性别 - options: - - label: 男 - value: 男 - - label: 女 - value: 女 - group: '-' - name: profile.sex - filterable: true - profile.birthdate: - type: date - label: 生日 - name: profile.birthdate - profile.avatar: - type: text - label: 头像 - group: '-' - name: profile.avatar - qrcode: - type: image - label: 二维码 - name: qrcode - sex: - type: select - label: 性别 - options: - - label: 男 - value: 男 - - label: 女 - value: 女 - group: '-' - name: sex - filterable: true - birthday: - type: date - label: 生日 - name: birthday - live: - type: selectCity - label: 现居地 - name: live - hometown: - type: selectCity - label: 家乡 - name: hometown - age: - type: number - label: 年龄 - hidden: true - name: age - zodiac: - type: text - label: 生肖 - hidden: true - name: zodiac - constellation: - type: text - label: 星座 - hidden: true - name: constellation - friends_count: - label: 好友个数 - type: number - omit: true - name: friends_count - heart_count: - label: 点赞数 - type: number - omit: true - name: heart_count - tags: - label: 好友标签 - type: text - multiple: true - omit: true - name: tags - username: - type: text - unique: true - omit: true - name: username - steedos_id: - type: text - unique: true - readonly: true - omit: true - name: steedos_id - locale: - label: 语言 - type: select - allowedValues: - - en-us - - zh-cn - options: - - label: 简体中文 - value: zh-cn - - label: English - value: en-us - name: locale - filterable: true - email_notification: - label: 接收邮件通知 - type: boolean - name: email_notification - primary_email_verified: - type: boolean - omit: true - hidden: true - name: primary_email_verified - last_logon: - type: date - omit: true - hidden: true - name: last_logon - is_cloudadmin: - type: boolean - omit: true - hidden: true - name: is_cloudadmin - is_deleted: - type: boolean - omit: true - hidden: true -list_views: - all: - label: 所有 - columns: - - name - - username - filter_scope: all - filters: - - - _id - - = - - '{userId}' -permission_set: - guest: - allowCreate: false - allowDelete: false - allowEdit: true - allowRead: true - modifyAllRecords: false - viewAllRecords: true - name: guest - user: - allowCreate: false - allowDelete: false - allowEdit: false - allowRead: true - modifyAllRecords: false - viewAllRecords: true - name: user - admin: - allowCreate: true - allowDelete: true - allowEdit: true - allowRead: true - modifyAllRecords: true - viewAllRecords: true - name: admin diff --git a/packages/report/package.json b/packages/report/package.json deleted file mode 100644 index 41709fd66e..0000000000 --- a/packages/report/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "@steedos/report", - "version": "1.5.4", - "description": "report server for steedos", - "main": "index.js", - "scripts": { - "start": "node server", - "publish": "npm publish --registry https://registry.npmjs.org" - }, - "author": "", - "license": "MIT", - "dependencies": { - "@steedos/objectql": "^1.5.4", - "@steedos/stimulsoft-report": "^1.5.1", - "express": "^4.15.4", - "graphql-request": "^1.8.2", - "path": "^0.12.7" - }, - "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" -} diff --git a/packages/report/reporter.js b/packages/report/reporter.js deleted file mode 100644 index 688fd07c5b..0000000000 --- a/packages/report/reporter.js +++ /dev/null @@ -1,76 +0,0 @@ -const utils = require('./utils'); -const request = require('graphql-request').request; - -let reporter = { - async getReport(id) { - let object = utils.getObject('reports'); - let report = await object.findOne(id); - return report; - }, - async getData(report) { - if (report.graphql){ - let dataResult = await request("http://localhost:3600/graphql/default/", report.graphql); - let items = dataResult[`${report.object_name}`]; - if (items && items.length) { - let processChildren = (item, parentKey, object) => { - /** - 把{ - "object_name": [{ - "_id": "R9HquKmR5fHbDqdWq", - "name": "测试1", - "organization": { - "_id": "P7XMJMjKoSz4yaK49", - "name": "组织A" - } - }] - } - 中的organization转成 "organization._id", "organization.name", - 转换后结果: { - "object_name": [{ - "_id": "R9HquKmR5fHbDqdWq", - "name": "测试1", - "organization": { - "_id": "P7XMJMjKoSz4yaK49", - "name": "组织A" - }, - "organization._id": "P7XMJMjKoSz4yaK49", - "organization.name": "组织A" - }] - } - 支持无限层递归 - */ - for(let k in object){ - let childKey = `${parentKey}.${k}`; - let childValue = object[k]; - if (typeof childValue === "object") { - processChildren(item, childKey, childValue); - } - else{ - item[childKey] = childValue; - } - } - } - items.forEach((item) => { - for (let k in item) { - if (typeof item[k] === "object") { - processChildren(item, k, item[k]); - } - } - }); - } - return dataResult; - } - else { - let object = utils.getObject(report.object_name); - let dataResult = await object.find({ - fields: report.fields, - filters: report.filters - }); - let result = {}; - result[`${report.object_name}`] = dataResult; - return result; - } - } -}; - -module.exports = reporter; diff --git a/packages/report/reports/contracts.mrt b/packages/report/reports/contracts.mrt deleted file mode 100644 index eb58c1a027..0000000000 --- a/packages/report/reports/contracts.mrt +++ /dev/null @@ -1 +0,0 @@ -{"ReportVersion":"2019.2.1","ReportGuid":"697fff061dac9bdbd2db4e6d9f5c499f","ReportName":"Report","ReportAlias":"Report","ReportFile":"contracts.mrt","ReportCreated":"/Date(1559051784000+0800)/","ReportChanged":"/Date(1559051784000+0800)/","EngineVersion":"EngineV2","CalculationMode":"Interpretation","ReportUnit":"Centimeters","PreviewSettings":268435455,"Dictionary":{"DataSources":{"0":{"Ident":"StiDataTableSource","Name":"contracts","Alias":"合同","Columns":{"0":{"Name":"name","Index":-1,"NameInSource":"name","Alias":"名称","Type":"System.String"},"1":{"Name":"amount","Index":-1,"NameInSource":"amount","Alias":"金额","Type":"System.Double"},"2":{"Name":"contract_type.name","Index":-1,"NameInSource":"contract_type.name","Alias":"合同分类.名称","Type":"System.String"},"3":{"Name":"contract_type.owner.name","Index":-1,"NameInSource":"contract_type.owner.name","Alias":"合同分类.所属用户.姓名","Type":"System.String"}},"NameInSource":"合同统计.contracts"}},"Databases":{"0":{"Ident":"StiJsonDatabase","Name":"合同统计","Alias":"合同统计","PathData":"/api/report/data/contracts"}}},"Pages":{"0":{"Ident":"StiPage","Name":"Page1","Guid":"47bcaf029c0e3c47e55d68b8741289c1","Interaction":{"Ident":"StiInteraction"},"Border":";;2;;;;;solid:Black","Brush":"solid:Transparent","Components":{"0":{"Ident":"StiHeaderBand","Name":"Headercontracts","ClientRectangle":"0,0.4,19.01,0.8","Interaction":{"Ident":"StiInteraction"},"Border":";;;;;;;solid:Black","Brush":"solid:Transparent","Components":{"0":{"Ident":"StiText","Name":"Headercontracts_name","Guid":"bbb82194b24cec61a7e5f2637d59e237","ClientRectangle":"0,0,4.8,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"名称"},"VertAlignment":"Center","Font":";10;Bold;","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}},"1":{"Ident":"StiText","Name":"Headercontracts_amount","Guid":"d37668b63544bf7aec83894d460a3db2","ClientRectangle":"4.8,0,4.8,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"金额"},"VertAlignment":"Center","Font":";10;Bold;","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}},"2":{"Ident":"StiText","Name":"Headercontracts_contract_type_name","Guid":"00cdf6fcde4acb03ae9e0ea556d70c7e","ClientRectangle":"9.6,0,4.8,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"合同分类.名称"},"VertAlignment":"Center","Font":";10;Bold;","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}},"3":{"Ident":"StiText","Name":"Headercontracts_contract_type_owner_name","Guid":"dc7dd62e17f58e5cd0e3ab6b505c91dc","ClientRectangle":"14.4,0,4.6,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"合同分类.所属用户.姓名"},"VertAlignment":"Center","Font":";10;Bold;","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}}}},"1":{"Ident":"StiDataBand","Name":"Datacontracts","ClientRectangle":"0,2,19.01,0.8","Interaction":{"Ident":"StiBandInteraction"},"Border":";;;;;;;solid:Black","Brush":"solid:Transparent","Components":{"0":{"Ident":"StiText","Name":"Datacontracts_name","Guid":"97030261529e90f2f74124a45958f0da","CanGrow":true,"ClientRectangle":"0,0,4.8,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"{contracts.name}"},"VertAlignment":"Center","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}},"1":{"Ident":"StiText","Name":"Datacontracts_amount","Guid":"0c1b665efc5409a189dd6cb4b3707f92","CanGrow":true,"ClientRectangle":"4.8,0,4.8,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"{contracts.amount}"},"VertAlignment":"Center","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}},"2":{"Ident":"StiText","Name":"Datacontracts_contract_type_name","Guid":"52f5530d554f0d758d8903cb186d9212","CanGrow":true,"ClientRectangle":"9.6,0,4.8,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"{contracts.contract_type_name}"},"VertAlignment":"Center","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}},"3":{"Ident":"StiText","Name":"Datacontracts_contract_type_owner_name","Guid":"f5d1b841f9f9eb0a0f1b443af2735828","CanGrow":true,"ClientRectangle":"14.4,0,4.6,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"{contracts.contract_type_owner_name}"},"VertAlignment":"Center","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}}},"DataSourceName":"contracts"}},"PageWidth":21.01,"PageHeight":29.69,"Watermark":{"TextBrush":"solid:50,0,0,0"},"Margins":{"Left":1,"Right":1,"Top":1,"Bottom":1}}}} \ No newline at end of file diff --git a/packages/report/reports/contracts.report.yml b/packages/report/reports/contracts.report.yml deleted file mode 100644 index 01de48aa8d..0000000000 --- a/packages/report/reports/contracts.report.yml +++ /dev/null @@ -1,22 +0,0 @@ - -_id : contracts -name: 合同统计 -object_name : contracts -fields: - - name - - amount - - contract_type.name - - contract_type.owner.name -graphql: | - query { - contracts(filters:"owner eq '97zjiueTefx5aKnco'") { - name - amount - contract_type { - name - owner{ - name - } - } - } - } \ No newline at end of file diff --git a/packages/report/reports/issues.mrt b/packages/report/reports/issues.mrt deleted file mode 100644 index c09b449897..0000000000 --- a/packages/report/reports/issues.mrt +++ /dev/null @@ -1 +0,0 @@ -{"ReportVersion":"2019.2.1","ReportGuid":"7622f19c18d5a6d45e647c76b372b1ed","ReportName":"Report","ReportAlias":"Report","ReportFile":"issues.mrt","ReportCreated":"/Date(1559598984000+0800)/","ReportChanged":"/Date(1559598984000+0800)/","EngineVersion":"EngineV2","CalculationMode":"Interpretation","ReportUnit":"Centimeters","PreviewSettings":268435455,"Dictionary":{"DataSources":{"0":{"Ident":"StiDataTableSource","Name":"project_issues","Alias":"问题","Columns":{"0":{"Name":"name","Index":-1,"NameInSource":"name","Alias":"问题标题","Type":"System.String"},"1":{"Name":"organization.name","Index":-1,"NameInSource":"organization.name","Alias":"提报部门.名称","Type":"System.String"},"2":{"Name":"organization.parent.name","Index":-1,"NameInSource":"organization.parent.name","Alias":"提报部门.上级部门.名称","Type":"System.String"}},"NameInSource":"问题按类型统计报表.project_issues"}},"Databases":{"0":{"Ident":"StiJsonDatabase","Name":"问题按类型统计报表","Alias":"问题按类型统计报表","PathData":"/api/report/data/issues"}}},"Pages":{"0":{"Ident":"StiPage","Name":"Page1","Guid":"47bcaf029c0e3c47e55d68b8741289c1","Interaction":{"Ident":"StiInteraction"},"Border":";;2;;;;;solid:Black","Brush":"solid:Transparent","Components":{"0":{"Ident":"StiHeaderBand","Name":"Headerproject_issues","ClientRectangle":"0,0.4,19.01,0.8","Interaction":{"Ident":"StiInteraction"},"Border":";;;;;;;solid:Black","Brush":"solid:Transparent","Components":{"0":{"Ident":"StiText","Name":"Headerproject_issues_name","Guid":"c1ea4b78db020f46220d4249fd2f0076","ClientRectangle":"0,0,6.4,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"问题标题"},"VertAlignment":"Center","Font":";10;Bold;","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}},"1":{"Ident":"StiText","Name":"Headerproject_issues_organization_name","Guid":"213735207dc4e20d5030bbc7a17e27c7","ClientRectangle":"6.4,0,6.4,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"提报部门.名称"},"VertAlignment":"Center","Font":";10;Bold;","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}},"2":{"Ident":"StiText","Name":"Headerproject_issues_organization_parent_name","Guid":"72cc79349d778dfa28c75e9123dc2429","ClientRectangle":"12.8,0,6.2,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"提报部门.上级部门.名称"},"VertAlignment":"Center","Font":";10;Bold;","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}}}},"1":{"Ident":"StiDataBand","Name":"Dataproject_issues","ClientRectangle":"0,2,19.01,0.8","Interaction":{"Ident":"StiBandInteraction"},"Border":";;;;;;;solid:Black","Brush":"solid:Transparent","Components":{"0":{"Ident":"StiText","Name":"Dataproject_issues_name","Guid":"731f42a35b50344f9eb00c9bd0fd5056","CanGrow":true,"ClientRectangle":"0,0,6.4,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"{project_issues.name}"},"VertAlignment":"Center","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}},"1":{"Ident":"StiText","Name":"Dataproject_issues_organization_name","Guid":"4925c82c30a8becfb8a519ee53c44ae4","CanGrow":true,"ClientRectangle":"6.4,0,6.4,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"{project_issues.organization_name}"},"VertAlignment":"Center","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}},"2":{"Ident":"StiText","Name":"Dataproject_issues_organization_parent_name","Guid":"07d00e82507b0d4a1f22d43defbd16ea","CanGrow":true,"ClientRectangle":"12.8,0,6.2,0.8","Interaction":{"Ident":"StiInteraction"},"Text":{"Value":"{project_issues.organization_parent_name}"},"VertAlignment":"Center","Border":";;;;;;;solid:Black","Brush":"solid:Transparent","TextBrush":"solid:Black","TextOptions":{"WordWrap":true}}},"DataSourceName":"project_issues"}},"PageWidth":21.01,"PageHeight":29.69,"Watermark":{"TextBrush":"solid:50,0,0,0"},"Margins":{"Left":1,"Right":1,"Top":1,"Bottom":1}}}} \ No newline at end of file diff --git a/packages/report/reports/issues.report.yml b/packages/report/reports/issues.report.yml deleted file mode 100644 index 647c444954..0000000000 --- a/packages/report/reports/issues.report.yml +++ /dev/null @@ -1,25 +0,0 @@ - -_id : issues -name: 问题按类型统计报表 -object_name : project_issues -fields: - - name - - organization.name - - organization.parent.name -filters: - - - - organization - - = - - BjL6atTqmicf3hutF -graphql: | - query { - project_issues(filters:"organization eq 'P7XMJMjKoSz4yaK49'") { - name - organization { - name - parent{ - name - } - } - } - } \ No newline at end of file diff --git a/packages/report/router.js b/packages/report/router.js deleted file mode 100644 index 4f9a8877bb..0000000000 --- a/packages/report/router.js +++ /dev/null @@ -1,44 +0,0 @@ -const express = require('express'); -const reporter = require('./reporter'); -const objectql = require("@steedos/objectql"); -const mrt = require('./mrt'); -const routes = express(); -const bodyParser = require('body-parser'); - -routes.use(bodyParser.json()); - -// 获取报表模板 -routes.get('/mrt/:report_id', async (req, res) => { - let report_id = req.params.report_id; - let datasource = objectql.getSteedosSchema().getDataSource(); - let report = datasource.getReport(report_id); - let mrtContent = mrt.getMrtContent(report); - res.send(mrtContent); -}); - -// 报表mrt模板保存 -routes.post('/mrt/:report_id', async (req, res) => { - let report_id = req.params.report_id; - let datasource = objectql.getSteedosSchema().getDataSource(); - let report = datasource.getReport(report_id).toConfig(); - mrt.saveReportToMrtFile(report.mrt_file, req.body); - res.send({}); -}); - -// 获取报表数据 -routes.get('/data/:report_id', async (req, res) => { - let report_id = req.params.report_id; - let datasource = objectql.getSteedosSchema().getDataSource(); - let report = datasource.getReport(report_id); - let data = await reporter.getData(report); - res.send(data); -}); - -// 获取报表列表 -routes.get('/list', async (req, res) => { - let datasource = objectql.getSteedosSchema().getDataSource(); - let report = datasource.getReportsConfig(); - res.send(report); -}); - -module.exports.routes = routes; diff --git a/packages/report/server.js b/packages/report/server.js deleted file mode 100644 index 55fa9cdcc5..0000000000 --- a/packages/report/server.js +++ /dev/null @@ -1,42 +0,0 @@ -const objectql = require("@steedos/objectql"); -const _ = require('underscore'); -const graphqlHTTP = require('express-graphql'); -const path = require('path'); -const ReportRouter = require('./router'); -const report = require('./index'); - -let stimulsoftAssets = path.join(path.dirname(require.resolve("@steedos/stimulsoft-report")), "assets"); -let objectsDir = path.resolve('./objects') -let reportsDir = path.resolve('./reports') -objectql.getSteedosSchema().addDataSource('default', { - driver: 'mongo', - // url: 'mongodb://192.168.0.77/qhd-beta', - url: 'mongodb://192.168.0.21/fssh20190329', - objectFiles: [objectsDir], - reportFiles: [reportsDir] -}); -let express = require('express'); -let app = express(); -app.use(function (req, res, next) { - //TODO 处理userId - next(); -}) - -_.each(objectql.getSteedosSchema().getDataSources(), function (datasource, name) { - report.initMrts(datasource.getReports(), reportsDir); - - app.use(`/graphql/${name}`, graphqlHTTP({ - schema: datasource.buildGraphQLSchema(), - graphiql: true - })); -}) -app - .disable('x-powered-by') - .use('/assets/stimulsoft-report/', express.static(stimulsoftAssets)) - .use('/api/report', ReportRouter.routes) - -process.env.PORT = 3600; -app.listen(process.env.PORT || 3000) - - - diff --git a/packages/report/utils.js b/packages/report/utils.js deleted file mode 100644 index 33eca735c2..0000000000 --- a/packages/report/utils.js +++ /dev/null @@ -1,147 +0,0 @@ -const objectql = require('@steedos/objectql'); - -const getObject = (object_name)=> { - return objectql.getSteedosSchema().getObject(object_name); -} - -const getObjectConfig = (object_name)=> { - let object = getObject(object_name); - return object ? object.toConfig() : null; -} - -const formatObjectFields = (report, objectConfig) => { - let reportFields = report.fields; - let objectFields = objectConfig.fields; - let tempField, tempFieldType, tempFieldAlias, result, index = 0, - keys, prevKey, tempObjectConfig, tempReferenceTo; - result = {}; - if (reportFields && reportFields.length) { - reportFields.forEach((key) => { - keys = key.split("."); - if (keys.length > 1) { - // a.b或a.b.c的字段情况 - prevKey = null; - tempFieldAlias = keys.map((k) => { - if (prevKey) { - tempReferenceTo = tempField.reference_to - if (!tempReferenceTo){ - throw new Error(`can't find the reference_to property for the field ${prevKey} in the object ${objectConfig.name}`); - } - tempObjectConfig = getObjectConfig(tempReferenceTo); - tempField = tempObjectConfig.fields[k]; - if (tempField) { - return tempField.label ? tempField.label : k; - } else { - throw new Error(`can't find the field ${k} in parent field ${prevKey} of the object ${objectConfig.name}`); - } - } else { - tempField = objectFields[k]; - prevKey = k; - if (tempField) { - return tempField.label ? tempField.label : k; - } else { - throw new Error(`can't find the field:${objectConfig.name}.${k}`); - } - } - }).join("."); - } - else { - // 普通的不带.连接符的字段 - tempField = objectFields[key]; - if (tempField){ - tempFieldAlias = tempField.label ? tempField.label : key; - } - else{ - throw new Error(`can't find the field:${objectConfig.name}.${key}`); - } - } - tempFieldType = convertFieldType(tempField); - if (tempFieldType) { - result[index] = { - "Name": key, - "Index": -1, - "NameInSource": key, - "Alias": tempFieldAlias, - "Type": tempFieldType - }; - index++; - } - }); - } - return result; -} - -const convertFieldType = (tempField)=> { - let type = tempField.type; - if (!type) { - return null; - } - if (tempField.multiple) { - // 忽略所有数组字段类型 - return null; - } - let ignoreTypes = ["[text]", "[phone]", "password", "[Object]", "checkbox", "grid"]; - if (ignoreTypes.includes(type)) { - // 忽略这些字段类型 - return null; - } - let defaultType = "System.String"; - switch (type) { - case "date": - return "System.DateTime" - case "datetime": - return "System.DateTime" - case "currency": - return "System.Double" - case "number": - return "System.Double" - case "boolean": - return "System.Boolean" - case "filesize": - return "System.Double" - case "Object": - return "System.Object" - case "object": - return "System.Object" - case "location": - return "System.Object" - default: - return defaultType - } -} - -const getDatabases = (report)=> { - if (!report) { - return {}; - } - let dataUrl = `/api/report/data/${report._id}`; - return { - "0": { - "Ident": "StiJsonDatabase", - "Name": report.name, - "Alias": report.name, - "PathData": dataUrl - } - }; -} -const getDataSources = (report)=> { - if (!report) { - return {}; - } - let objectConfig = getObjectConfig(report.object_name); - let columns = formatObjectFields(report, objectConfig); - return { - "0": { - "Ident": "StiDataTableSource", - "Name": objectConfig.name, - "Alias": objectConfig.label, - "Columns": columns, - "NameInSource": `${report.name}.${objectConfig.name}` - } - }; -} - -exports.getObject = getObject; -exports.getObjectConfig = getObjectConfig; -exports.getDatabases = getDatabases; -exports.getDataSources = getDataSources; diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index 09aceef764..ae63cec0d4 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -8,5 +8,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "c1e253e1f4c3547da7bab11d324d5eea885690f4" + "gitHead": "853a6165c2afba1dc115212c524a6b6dc31dbd70" } From acc55b39a06caece486c95414663d829cc93cce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 6 Sep 2019 14:57:26 +0800 Subject: [PATCH 149/154] v1.5.5 --- apps/contracts/package.json | 4 ++-- apps/crm/package.json | 6 +++--- apps/meeting/package.json | 4 ++-- lerna.json | 2 +- packages/auth/package.json | 4 ++-- packages/core/package.json | 8 ++++---- packages/objectql/package.json | 4 ++-- packages/react-components/package.json | 4 ++-- packages/standard-objects/package.json | 2 +- packages/tools/package.json | 4 ++-- 10 files changed, 21 insertions(+), 21 deletions(-) diff --git a/apps/contracts/package.json b/apps/contracts/package.json index 6c8b830b3e..25fcedce56 100644 --- a/apps/contracts/package.json +++ b/apps/contracts/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@steedos-app/steedos-contracts-app", - "version": "1.5.4", + "version": "1.5.5", "description": "contract-management-system", "main": "steedos-app/index.js", "scripts": { @@ -16,7 +16,7 @@ "license": "ISC", "dependencies": { "@steedos/meteor-bundle-runner": "^1.5.1", - "@steedos/objectql": "^1.5.4", + "@steedos/objectql": "^1.5.5", "steedos-server": "^1.2.5" }, "bugs": { diff --git a/apps/crm/package.json b/apps/crm/package.json index 804938fb07..61238fa861 100644 --- a/apps/crm/package.json +++ b/apps/crm/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@steedos/app-contracts", - "version": "1.5.4", + "version": "1.5.5", "description": "contract-management-system", "main": "index.js", "scripts": { @@ -16,9 +16,9 @@ "author": "Jack Zhuang", "license": "ISC", "dependencies": { - "@steedos/core": "^1.5.4", + "@steedos/core": "^1.5.5", "@steedos/meteor-bundle-runner": "^1.5.1", - "@steedos/standard-objects": "^1.5.4", + "@steedos/standard-objects": "^1.5.5", "steedos-cli": "^1.5.1", "steedos-server": "^1.0.9" }, diff --git a/apps/meeting/package.json b/apps/meeting/package.json index ba3a3f79ff..143e0c9421 100644 --- a/apps/meeting/package.json +++ b/apps/meeting/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@steedos/app-meeting", - "version": "1.5.4", + "version": "1.5.5", "description": "Meeting room booking", "main": "main.js", "scripts": { @@ -20,7 +20,7 @@ "homepage": "https://github.com/steedos/app-meeting#readme", "dependencies": { "@steedos/meteor-bundle-runner": "^1.5.1", - "@steedos/objectql": "^1.5.4", + "@steedos/objectql": "^1.5.5", "steedos-server": "^1.2.5" } } diff --git a/lerna.json b/lerna.json index 5c676ab7a1..4144916834 100644 --- a/lerna.json +++ b/lerna.json @@ -5,5 +5,5 @@ ], "useWorkspaces": true, "npmClient": "yarn", - "version": "1.5.4" + "version": "1.5.5" } diff --git a/packages/auth/package.json b/packages/auth/package.json index d8ae98ad47..896e3c8aa2 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/auth", "private": false, - "version": "1.5.4", + "version": "1.5.5", "main": "lib/index.js", "scripts": { "watch": "tsc --watch", @@ -14,7 +14,7 @@ "access": "public" }, "dependencies": { - "@steedos/objectql": "^1.5.4", + "@steedos/objectql": "^1.5.5", "bcrypt": "^3.0.6", "cookies": "^0.7.3", "express": "^4.16.4", diff --git a/packages/core/package.json b/packages/core/package.json index ce5172b8dc..b428c048dd 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/core", "private": false, - "version": "1.5.4", + "version": "1.5.5", "description": "", "main": "lib/index.js", "scripts": { @@ -18,9 +18,9 @@ "@salesforce/dev-config": "^1.4.4", "@salesforce/kit": "^1.0.4", "@salesforce/ts-types": "^1.1.1", - "@steedos/auth": "^1.5.4", - "@steedos/objectql": "^1.5.4", - "@steedos/standard-objects": "^1.5.4", + "@steedos/auth": "^1.5.5", + "@steedos/objectql": "^1.5.5", + "@steedos/standard-objects": "^1.5.5", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 0b1f825978..bb84658bb0 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/objectql", "private": false, - "version": "1.5.4", + "version": "1.5.5", "description": "", "main": "lib/index.js", "scripts": { @@ -21,7 +21,7 @@ "@steedos/filters": "^1.5.1", "@steedos/odata-v4-typeorm": "^0.0.24", "@steedos/schemas": "^1.5.1", - "@steedos/standard-objects": "^1.5.4", + "@steedos/standard-objects": "^1.5.5", "@types/express": "^4.16.1", "@types/mongodb": "^3.1.22", "@types/node": "^11.10.4", diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 9591870991..659df97b5e 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,9 +1,9 @@ { "name": "@steedos/react-components", - "version": "1.5.4", + "version": "1.5.5", "private": true, "dependencies": { - "@steedos/core": "^1.5.4", + "@steedos/core": "^1.5.5", "eslint": "5.12.0", "http-proxy-middleware": "^0.19.1", "react": "^16.8.4", diff --git a/packages/standard-objects/package.json b/packages/standard-objects/package.json index ae63cec0d4..9a21239f7a 100644 --- a/packages/standard-objects/package.json +++ b/packages/standard-objects/package.json @@ -1,7 +1,7 @@ { "name": "@steedos/standard-objects", "private": false, - "version": "1.5.4", + "version": "1.5.5", "description": "Standard objects for steedos", "main": "index.js", "license": "Apache", diff --git a/packages/tools/package.json b/packages/tools/package.json index bf7b3ddd82..c934c4f711 100644 --- a/packages/tools/package.json +++ b/packages/tools/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "steedos-tools", - "version": "1.5.4", + "version": "1.5.5", "description": "", "main": "lib/sqlserver.js", "scripts": { @@ -11,6 +11,6 @@ "author": "", "license": "ISC", "dependencies": { - "@steedos/objectql": "^1.5.4" + "@steedos/objectql": "^1.5.5" } } From ed02c3678683675e9a2eeb32c5bcab36777133cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 6 Sep 2019 15:17:41 +0800 Subject: [PATCH 150/154] Update api_auth.md --- docs/api_auth.md | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/docs/api_auth.md b/docs/api_auth.md index 33487c5ceb..ccaff03c39 100644 --- a/docs/api_auth.md +++ b/docs/api_auth.md @@ -7,20 +7,24 @@ title: 身份验证 以下示例需确认 Steedos服务 运行于 http://localhost:5000 。 ## 获取 Token + 调用用户登录接口,获取用户登录Token ### URL + ```js POST 'http://localhost:5000/api/v4/users/login' ``` ### 请求参数 + 以JSON格式传入请求参数。 |Param |Required |Type |Description | |:-------- |:------- |:----- |----- | |username |true |string |可传入用户名、邮箱或手机号。 | |password |true |string |用户密码。 | |spaceId |false |string |需要登录的工作区Id,如果不传入,自动选中第一个工作区。 | + ```json { "username": "jack", @@ -58,13 +62,17 @@ organizations: [organization] # 数组,用户所属的所有部门 ``` ### Header 返回结果 + Header返回X-Space-Token。 + ```shell X-Space-Token: i6thCRrKWYmdjxpzt,392mkylUmFyNTRLR3aSTbsyM287On8bTULh-GDO1sH_ ``` ### Cookie 返回结果 + 如果从浏览器登录,自动为浏览器设置以下Cookie。 + ```shell X-User-Id: dL4KFkLSqqGAozZ6C X-Auth-Token: 392mkylUmFyNTRLR3aSTbsyM287On8bTULh-GDO1sH_ @@ -72,19 +80,42 @@ X-Space-Id: i6thCRrKWYmdjxpzt X-Space-Token: i6thCRrKWYmdjxpzt,392mkylUmFyNTRLR3aSTbsyM287On8bTULh-GDO1sH_ ``` -## 调用API +## 验证登录状态 -这里测试调用validate接口,验证用户是否登录。 +这里测试调用validate接口,验证用户是否登录,如果用户已登录,则返回用户基本信息。 ### URL + ```js POST 'http://localhost:5000/api/v4/users/validate' ``` ### 请求参数 + 通过Header传入X-Space-Token。 + ```shell Authorization: Bearer i6thCRrKWYmdjxpzt,392mkylUmFyNTRLR3aSTbsyM287On8bTULh-GDO1sH_ ``` + ### 返回结果 + 如果当前用户已登录,则返回userContext。 + +## 注销 + +注销当前登录的用户。 + +### URL + +```js +POST 'http://localhost:5000/accounts/logout' +``` + +### 请求参数 + +无 + +### 返回结果 + +无 From 066aed049b411b4378db85889e461485912cf024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E5=BB=BA=E5=9B=BD?= Date: Fri, 6 Sep 2019 15:27:10 +0800 Subject: [PATCH 151/154] Update package.template.json --- .../project-template-empty/package.template.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/project-template-empty/package.template.json b/packages/project-template-empty/package.template.json index 2f657929b2..f32e8603b6 100644 --- a/packages/project-template-empty/package.template.json +++ b/packages/project-template-empty/package.template.json @@ -15,13 +15,13 @@ "author": "", "license": "ISC", "dependencies": { - "@steedos/meteor-bundle-runner": "^1.1.7", - "@steedos/filters": "^1.0.0", - "@steedos/objectql": "^1.0.5", - "@steedos/core": "^1.3.14", - "@steedos/auth": "^1.1.5", - "@steedos/standard-objects": "^1.0.2", - "steedos-server": "^1.4.0", + "@steedos/meteor-bundle-runner": "^1.5.1", + "@steedos/filters": "^1.5.1", + "@steedos/objectql": "^1.5.5", + "@steedos/core": "^1.5.5", + "@steedos/auth": "^1.5.5", + "@steedos/standard-objects": "^1.5.5", + "steedos-server": "^1.5.2", "underscore": "1.5.2" }, "devDependencies": { From 60de88896669a16180d0974cd488e6ad51ddadb2 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 9 Sep 2019 11:09:27 +0800 Subject: [PATCH 152/154] =?UTF-8?q?filters=E5=8C=85=E8=BD=AC=E6=88=90es5?= =?UTF-8?q?=E5=87=86=E5=A4=87=E5=8F=91=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/filters/.babelrc | 22 +++++++++++++++++++ packages/filters/package.json | 14 +++++++++++- packages/filters/{ => src}/date.formatter.js | 0 .../filters/{ => src}/default_date_names.js | 0 packages/filters/{ => src}/devextreme.js | 0 packages/filters/{ => src}/filter.js | 0 packages/filters/{ => src}/format.js | 0 packages/filters/{ => src}/formula.js | 0 packages/filters/{ => src}/index.js | 0 packages/filters/{ => src}/utils.js | 0 packages/filters/test/unit/advanced.js | 2 +- packages/filters/test/unit/connector.js | 2 +- packages/filters/test/unit/format.js | 2 +- .../test/unit/format_buildin_date_value.js | 12 +++++----- packages/filters/test/unit/format_utc.js | 2 +- packages/filters/test/unit/formula.js | 2 +- packages/filters/test/unit/simple.js | 2 +- 17 files changed, 47 insertions(+), 13 deletions(-) create mode 100644 packages/filters/.babelrc rename packages/filters/{ => src}/date.formatter.js (100%) rename packages/filters/{ => src}/default_date_names.js (100%) rename packages/filters/{ => src}/devextreme.js (100%) rename packages/filters/{ => src}/filter.js (100%) rename packages/filters/{ => src}/format.js (100%) rename packages/filters/{ => src}/formula.js (100%) rename packages/filters/{ => src}/index.js (100%) rename packages/filters/{ => src}/utils.js (100%) diff --git a/packages/filters/.babelrc b/packages/filters/.babelrc new file mode 100644 index 0000000000..6d5ec7d582 --- /dev/null +++ b/packages/filters/.babelrc @@ -0,0 +1,22 @@ +{ + "plugins": [ + ["@babel/plugin-transform-runtime", + { + "regenerator": true + } + ], + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-syntax-import-meta", + ["@babel/plugin-proposal-class-properties", { + "loose": false + }], + "@babel/plugin-proposal-json-strings" + ], + "presets": [ + "@babel/env" + ], + "ignore": [ + "./src/*.report.helper.js", + "./src/*.report.script.js" + ] +} \ No newline at end of file diff --git a/packages/filters/package.json b/packages/filters/package.json index 81e101c0a0..713f522853 100644 --- a/packages/filters/package.json +++ b/packages/filters/package.json @@ -6,7 +6,9 @@ "main": "index.js", "license": "Apache", "scripts": { - "test": "mocha test/**/*.js" + "test": "npm run compile && mocha test/**/*.js", + "compile": "babel -d lib src/", + "prepare": "npm run compile" }, "dependencies": { "devextreme": "^18.2.6", @@ -14,6 +16,16 @@ "underscore": "^1.9.1" }, "devDependencies": { + "@babel/cli": "^7.5.0", + "@babel/core": "^7.5.4", + "@babel/plugin-proposal-class-properties": "^7.5.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-syntax-import-meta": "^7.2.0", + "@babel/plugin-transform-runtime": "^7.4.4", + "@babel/preset-env": "^7.5.4", + "@babel/register": "^7.4.4", + "@babel/runtime": "^7.5.4", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "jslint": "^0.12.1", diff --git a/packages/filters/date.formatter.js b/packages/filters/src/date.formatter.js similarity index 100% rename from packages/filters/date.formatter.js rename to packages/filters/src/date.formatter.js diff --git a/packages/filters/default_date_names.js b/packages/filters/src/default_date_names.js similarity index 100% rename from packages/filters/default_date_names.js rename to packages/filters/src/default_date_names.js diff --git a/packages/filters/devextreme.js b/packages/filters/src/devextreme.js similarity index 100% rename from packages/filters/devextreme.js rename to packages/filters/src/devextreme.js diff --git a/packages/filters/filter.js b/packages/filters/src/filter.js similarity index 100% rename from packages/filters/filter.js rename to packages/filters/src/filter.js diff --git a/packages/filters/format.js b/packages/filters/src/format.js similarity index 100% rename from packages/filters/format.js rename to packages/filters/src/format.js diff --git a/packages/filters/formula.js b/packages/filters/src/formula.js similarity index 100% rename from packages/filters/formula.js rename to packages/filters/src/formula.js diff --git a/packages/filters/index.js b/packages/filters/src/index.js similarity index 100% rename from packages/filters/index.js rename to packages/filters/src/index.js diff --git a/packages/filters/utils.js b/packages/filters/src/utils.js similarity index 100% rename from packages/filters/utils.js rename to packages/filters/src/utils.js diff --git a/packages/filters/test/unit/advanced.js b/packages/filters/test/unit/advanced.js index 93cde98bad..f848e9d929 100644 --- a/packages/filters/test/unit/advanced.js +++ b/packages/filters/test/unit/advanced.js @@ -1,4 +1,4 @@ -const formatFiltersToODataQuery = require('../../index').formatFiltersToODataQuery; +const formatFiltersToODataQuery = require('../../lib/index').formatFiltersToODataQuery; const expect = require('chai').expect; const userContext = { utcOffset: 0 diff --git a/packages/filters/test/unit/connector.js b/packages/filters/test/unit/connector.js index 0a54f5b552..602341d22f 100644 --- a/packages/filters/test/unit/connector.js +++ b/packages/filters/test/unit/connector.js @@ -1,4 +1,4 @@ -const formatFiltersToODataQuery = require('../../index').formatFiltersToODataQuery; +const formatFiltersToODataQuery = require('../../lib/index').formatFiltersToODataQuery; const expect = require('chai').expect; describe('format filters to odata query with connector "and" or "or" or "!"', () => { diff --git a/packages/filters/test/unit/format.js b/packages/filters/test/unit/format.js index ddd5b97081..af6f0aecaa 100644 --- a/packages/filters/test/unit/format.js +++ b/packages/filters/test/unit/format.js @@ -1,4 +1,4 @@ -const formatFiltersToODataQuery = require('../../index').formatFiltersToODataQuery; +const formatFiltersToODataQuery = require('../../lib/index').formatFiltersToODataQuery; const expect = require('chai').expect; describe('advanced format filter to odata query', () => { diff --git a/packages/filters/test/unit/format_buildin_date_value.js b/packages/filters/test/unit/format_buildin_date_value.js index a1a764123e..55ac5494d7 100644 --- a/packages/filters/test/unit/format_buildin_date_value.js +++ b/packages/filters/test/unit/format_buildin_date_value.js @@ -1,9 +1,9 @@ -const formatFiltersToODataQuery = require('../../index').formatFiltersToODataQuery; -const getMonthDays = require('../../utils').getMonthDays; -const getLastMonthFirstDay = require('../../utils').getLastMonthFirstDay; -const getQuarterStartMonth = require('../../utils').getQuarterStartMonth; -const getLastQuarterFirstDay = require('../../utils').getLastQuarterFirstDay; -const getNextQuarterFirstDay = require('../../utils').getNextQuarterFirstDay; +const formatFiltersToODataQuery = require('../../lib/index').formatFiltersToODataQuery; +const getMonthDays = require('../../lib/utils').getMonthDays; +const getLastMonthFirstDay = require('../../lib/utils').getLastMonthFirstDay; +const getQuarterStartMonth = require('../../lib/utils').getQuarterStartMonth; +const getLastQuarterFirstDay = require('../../lib/utils').getLastQuarterFirstDay; +const getNextQuarterFirstDay = require('../../lib/utils').getNextQuarterFirstDay; const expect = require('chai').expect; const moment = require('moment'); diff --git a/packages/filters/test/unit/format_utc.js b/packages/filters/test/unit/format_utc.js index e1ea2ba64d..41a2860e43 100644 --- a/packages/filters/test/unit/format_utc.js +++ b/packages/filters/test/unit/format_utc.js @@ -1,4 +1,4 @@ -const formatFiltersToODataQuery = require('../../index').formatFiltersToODataQuery; +const formatFiltersToODataQuery = require('../../lib/index').formatFiltersToODataQuery; const expect = require('chai').expect; const now = new Date(); diff --git a/packages/filters/test/unit/formula.js b/packages/filters/test/unit/formula.js index 08cebca114..8b3563f585 100644 --- a/packages/filters/test/unit/formula.js +++ b/packages/filters/test/unit/formula.js @@ -1,4 +1,4 @@ -const formatFiltersToODataQuery = require('../../index').formatFiltersToODataQuery; +const formatFiltersToODataQuery = require('../../lib/index').formatFiltersToODataQuery; const expect = require('chai').expect; const userContext = { userId: "hPgDcEd9vKQxwndQR", user: { _id: "hPgDcEd9vKQxwndQR", name: "系统管理员", email: "test1@steedos.cn" } }; diff --git a/packages/filters/test/unit/simple.js b/packages/filters/test/unit/simple.js index f7c2d2a60c..b2c2d4d1ba 100644 --- a/packages/filters/test/unit/simple.js +++ b/packages/filters/test/unit/simple.js @@ -1,4 +1,4 @@ -const formatFiltersToODataQuery = require('../../index').formatFiltersToODataQuery; +const formatFiltersToODataQuery = require('../../lib/index').formatFiltersToODataQuery; const expect = require('chai').expect; describe('format filters to a simple odata query', () => { it('empty array', async () => { From c77d1c4fbd6ef7d8a05ac3badfeb35db66080096 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 9 Sep 2019 11:16:02 +0800 Subject: [PATCH 153/154] =?UTF-8?q?@steedos/filters@1.5.3=E5=8F=91?= =?UTF-8?q?=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/filters/package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/filters/package.json b/packages/filters/package.json index 713f522853..eee0dafd05 100644 --- a/packages/filters/package.json +++ b/packages/filters/package.json @@ -1,9 +1,12 @@ { "name": "@steedos/filters", "private": false, - "version": "1.5.1", + "version": "1.5.3", "description": "filters lib for steedos", "main": "index.js", + "files": [ + "lib" + ], "license": "Apache", "scripts": { "test": "npm run compile && mocha test/**/*.js", From 87834ef3971a3da03266f69d3c9b6e75e18daf07 Mon Sep 17 00:00:00 2001 From: yinlainghui Date: Mon, 9 Sep 2019 11:46:41 +0800 Subject: [PATCH 154/154] @steedos/filters@1.5.4 --- packages/filters/History.md | 4 ++++ packages/filters/package.json | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/filters/History.md b/packages/filters/History.md index 8c43331163..c9f780780c 100644 --- a/packages/filters/History.md +++ b/packages/filters/History.md @@ -1,3 +1,7 @@ +1.5.4 / 2019-09-09 +=================== + + * 使用打包后的es5版本 1.0.0 / 2019-08-14 =================== diff --git a/packages/filters/package.json b/packages/filters/package.json index eee0dafd05..21513cb293 100644 --- a/packages/filters/package.json +++ b/packages/filters/package.json @@ -1,9 +1,9 @@ { "name": "@steedos/filters", "private": false, - "version": "1.5.3", + "version": "1.5.4", "description": "filters lib for steedos", - "main": "index.js", + "main": "lib/index.js", "files": [ "lib" ],