From e4ff3f434e16bbc730b21c72da9283d9c34a7cc7 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 17 Nov 2020 12:21:24 -0500 Subject: [PATCH 1/7] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20move=20translati?= =?UTF-8?q?ons=20files=20into=20addon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/intl | 1 + ui/desktop/app/templates/scopes.hbs | 2 +- ui/desktop/app/templates/scopes/index.hbs | 4 +-- .../templates/scopes/scope/-header-nav.hbs | 2 +- .../app/templates/scopes/scope/targets.hbs | 2 +- .../templates/scopes/scope/targets/index.hbs | 12 +++---- ui/desktop/package.json | 1 + ui/desktop/translations/form/en-us.yaml | 16 --------- ui/desktop/translations/resources/en-us.yaml | 13 -------- yarn.lock | 33 ++++++++++++++----- 10 files changed, 38 insertions(+), 48 deletions(-) create mode 160000 addons/intl delete mode 100644 ui/desktop/translations/form/en-us.yaml delete mode 100644 ui/desktop/translations/resources/en-us.yaml diff --git a/addons/intl b/addons/intl new file mode 160000 index 000000000..aa8d852b0 --- /dev/null +++ b/addons/intl @@ -0,0 +1 @@ +Subproject commit aa8d852b03b1a7777cb7f26d5a01fc4dada29dc5 diff --git a/ui/desktop/app/templates/scopes.hbs b/ui/desktop/app/templates/scopes.hbs index 53d1e87e5..2cca02c50 100644 --- a/ui/desktop/app/templates/scopes.hbs +++ b/ui/desktop/app/templates/scopes.hbs @@ -1,4 +1,4 @@ -{{page-title (t 'scope.title_plural')}} +{{page-title (t 'resources.scope.title_plural')}} diff --git a/ui/desktop/app/templates/scopes/index.hbs b/ui/desktop/app/templates/scopes/index.hbs index cfb863937..c9da99ae5 100644 --- a/ui/desktop/app/templates/scopes/index.hbs +++ b/ui/desktop/app/templates/scopes/index.hbs @@ -2,7 +2,7 @@

- {{t "scope.title_plural"}} + {{t "resources.scope.title_plural"}}

@@ -10,7 +10,7 @@ - {{t 'scope.title'}} + {{t 'resources.scope.title'}} diff --git a/ui/desktop/app/templates/scopes/scope/-header-nav.hbs b/ui/desktop/app/templates/scopes/scope/-header-nav.hbs index eca77955c..4a383eb6d 100644 --- a/ui/desktop/app/templates/scopes/scope/-header-nav.hbs +++ b/ui/desktop/app/templates/scopes/scope/-header-nav.hbs @@ -4,7 +4,7 @@ > {{!-- {{#if this.session.data.authenticated.isGlobal}} --}} - {{t "scope.global.title"}} + {{t "titles.global"}} {{!-- {{/if}} --}} diff --git a/ui/desktop/app/templates/scopes/scope/targets.hbs b/ui/desktop/app/templates/scopes/scope/targets.hbs index 74c1be2af..f0feb5185 100644 --- a/ui/desktop/app/templates/scopes/scope/targets.hbs +++ b/ui/desktop/app/templates/scopes/scope/targets.hbs @@ -1,3 +1,3 @@ -{{page-title (t 'target.title_plural')}} +{{page-title (t 'resources.target.title_plural')}} {{outlet}} diff --git a/ui/desktop/app/templates/scopes/scope/targets/index.hbs b/ui/desktop/app/templates/scopes/scope/targets/index.hbs index b0779fa23..d76bbbe13 100644 --- a/ui/desktop/app/templates/scopes/scope/targets/index.hbs +++ b/ui/desktop/app/templates/scopes/scope/targets/index.hbs @@ -2,7 +2,7 @@

- {{t "target.title_plural"}} + {{t "resources.target.title_plural"}}

@@ -10,10 +10,10 @@ - {{t "name.label"}} - {{t "id.label"}} - {{t "type.label"}} - {{t "project.label"}} + {{t "form.name.label"}} + {{t "form.id.label"}} + {{t "form.type.label"}} + {{t "resources.project.title"}} @@ -37,7 +37,7 @@ - {{t "session.actions.connect"}} + {{t "resources.session.actions.connect"}} diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 2e48399b2..69792b4fe 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -34,6 +34,7 @@ "@glimmer/component": "^1.0.1", "@glimmer/tracking": "^1.0.0", "api": "*", + "intl": "*", "auth": "*", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", diff --git a/ui/desktop/translations/form/en-us.yaml b/ui/desktop/translations/form/en-us.yaml deleted file mode 100644 index a4c393943..000000000 --- a/ui/desktop/translations/form/en-us.yaml +++ /dev/null @@ -1,16 +0,0 @@ -id: - label: ID -name: - label: Name - help: Name for identification purposes -description: - label: Description - help: Description for identification purposes -type: - label: Type - help: The type of the resource, to help differentiate schemas -project: - label: Project -origin: - label: Origin - description: The Boundary server origin (e.g. protocol://host) diff --git a/ui/desktop/translations/resources/en-us.yaml b/ui/desktop/translations/resources/en-us.yaml deleted file mode 100644 index 22e1826b1..000000000 --- a/ui/desktop/translations/resources/en-us.yaml +++ /dev/null @@ -1,13 +0,0 @@ -scope: - title: Scope - title_plural: Scopes - global: - title: Global -target: - title: Target - title_plural: Targets -session: - title: Session - title_plural: Sessions - actions: - connect: Connect diff --git a/yarn.lock b/yarn.lock index 8586a5453..396414a77 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7508,7 +7508,7 @@ debug@~4.1.0: dependencies: ms "^2.1.1" -debuglog@^1.0.1: +debuglog@*, 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= @@ -12147,7 +12147,7 @@ import-lazy@^2.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= -imurmurhash@^0.1.4: +imurmurhash@*, imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= @@ -13844,6 +13844,11 @@ lodash._baseflatten@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw= + lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -13852,11 +13857,16 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@^3.0.0: +lodash._bindcallback@*, 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._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI= + lodash._createassigner@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" @@ -13866,12 +13876,19 @@ lodash._createassigner@^3.0.0: lodash._isiterateecall "^3.0.0" lodash.restparam "^3.0.0" +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM= + dependencies: + lodash._getnative "^3.0.0" + lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= -lodash._getnative@^3.0.0: +lodash._getnative@*, 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= @@ -14084,7 +14101,7 @@ lodash.pick@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= -lodash.restparam@^3.0.0: +lodash.restparam@*, lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= @@ -14499,9 +14516,9 @@ mdurl@^1.0.0, mdurl@^1.0.1, mdurl@~1.0.0: integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= meant@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.2.tgz#5d0c78310a3d8ae1408a16be0fe0bd42a969f560" - integrity sha512-KN+1uowN/NK+sT/Lzx7WSGIj2u+3xe5n2LbwObfjOhPZiA+cCfCm6idVl0RkEfjThkw5XJ96CyRcanq6GmKtUg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.3.tgz#67769af9de1d158773e928ae82c456114903554c" + integrity sha512-88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw== media-typer@0.3.0: version "0.3.0" From 454236b83ee368d61299a870c60f934de5978b0e Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Tue, 17 Nov 2020 16:55:07 -0500 Subject: [PATCH 2/7] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20consume=20transl?= =?UTF-8?q?ations=20from=20addon=20in=20admin=20ui?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/admin/package.json | 1 + ui/admin/translations/actions/en-us.yaml | 28 --- ui/admin/translations/en-us.yaml | 32 --- ui/admin/translations/errors/en-us.yaml | 19 -- ui/admin/translations/form/en-us.yaml | 48 ---- .../translations/notifications/en-us.yaml | 6 - ui/admin/translations/resources/en-us.yaml | 211 ------------------ ui/admin/translations/states/en-us.yaml | 5 - yarn.lock | 27 +-- 9 files changed, 6 insertions(+), 371 deletions(-) delete mode 100644 ui/admin/translations/actions/en-us.yaml delete mode 100644 ui/admin/translations/en-us.yaml delete mode 100644 ui/admin/translations/errors/en-us.yaml delete mode 100644 ui/admin/translations/form/en-us.yaml delete mode 100644 ui/admin/translations/notifications/en-us.yaml delete mode 100644 ui/admin/translations/resources/en-us.yaml delete mode 100644 ui/admin/translations/states/en-us.yaml diff --git a/ui/admin/package.json b/ui/admin/package.json index d82e617d8..c4acbbad1 100644 --- a/ui/admin/package.json +++ b/ui/admin/package.json @@ -35,6 +35,7 @@ "@glimmer/tracking": "^1.0.0", "api": "*", "auth": "*", + "intl": "*", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", "broccoli-asset-rev": "^3.0.0", diff --git a/ui/admin/translations/actions/en-us.yaml b/ui/admin/translations/actions/en-us.yaml deleted file mode 100644 index a6cadbe2e..000000000 --- a/ui/admin/translations/actions/en-us.yaml +++ /dev/null @@ -1,28 +0,0 @@ -add: Add -cancel: Cancel -delete: Delete -remove: Remove -discard: Discard -dismiss: Dismiss -save: Save -manage: Manage -confirm: Confirm -ok: OK -deny: Deny -help: Need help? -back: Back -get-topic-help: Get help for this topic -copy-to-clipboard: Copy to Clipboard -authenticate: Authenticate -deauthenticate: Deauthenticate -choose-org: Choose Scope -choose-different-org: Choose a Different Scope -add-host-set: Create Host Set -add-host: Create Host -add-host-sets: Add Host Sets -add-principals: Add Principals -add-members: Add Members -add-hosts: Add Hosts -set-password: Set Password -change-password: Change Password -edit-form: Edit Form diff --git a/ui/admin/translations/en-us.yaml b/ui/admin/translations/en-us.yaml deleted file mode 100644 index c1d3bd392..000000000 --- a/ui/admin/translations/en-us.yaml +++ /dev/null @@ -1,32 +0,0 @@ -auth: - titles: - no-scopes: No Scopes Available - descriptions: - no-scopes: No scopes were found. To authenticate, ask your administrator to create an scope and grant you access. - choose-org: Choose a scope to authenticate. - authenticating-with-org: "You are authenticating with {name}." -titles: - home: Home - iam: IAM - new: New - resources: Resources - details: Details - general: General - overview: Overview - settings: Settings - empty-set: No Items Yet - global: Global - actions: Actions - documentation: Documentation - abandon-confirm: Discard unsaved changes? - toggle-color-theme: Toggle Color Theme -descriptions: - empty-set: There are no items to display yet. You may be able to add items or try back later. -questions: - delete-confirm: Are you sure you want to delete this resource? - remove-confirm: Are you sure you want to remove this association? - abandon-confirm: Are you sure you want to navigate away? Your unsaved changes will be lost. -themes: - system: System Default - light: Light - dark: Dark diff --git a/ui/admin/translations/errors/en-us.yaml b/ui/admin/translations/errors/en-us.yaml deleted file mode 100644 index 0e2239e72..000000000 --- a/ui/admin/translations/errors/en-us.yaml +++ /dev/null @@ -1,19 +0,0 @@ -401: - title: You are not signed in - description: You are not authenticated. Please authenticate and try again later. -403: - title: You are not authorized - description: You must be granted permissions to view this data. Ask your administrator if you think you should have access. -404: - title: Resource not found - description: We could not find the requested resource. You can ask your administrator or try again later. -500: - title: Server error - description: We ran into a problem and could not continue. You can ask your administrator or try again later. -unknown: - title: Something went wrong - description: Please contact your administrator or try again later. -generic: - title: Error -authentication-failed: - title: Authentication Failed diff --git a/ui/admin/translations/form/en-us.yaml b/ui/admin/translations/form/en-us.yaml deleted file mode 100644 index 2971b77b6..000000000 --- a/ui/admin/translations/form/en-us.yaml +++ /dev/null @@ -1,48 +0,0 @@ -id: - label: ID -name: - label: Name - help: Name for identification purposes -description: - label: Description - help: Description for identification purposes -type: - label: Type - help: The type of the resource, to help differentiate schemas -login_name: - label: Login Name -username: - label: Username -set_password: - label: Password - help: Create a new password -password: - label: Password -grant: - label: Grant - help: A permissions grant string for a role -address: - label: Address - help: An IP, host name, or other routable address -default_port: - label: Default Port - help: The default port on which to connect -current_password: - label: Current Password -new_password: - label: New Password -started: - label: Started -status: - label: Status -session_max_seconds: - label: Maximum Duration (in seconds) - help: The maximum duration of a session. -session_connection_limit: - label: Maximum Connections - help: The maximum number of connections allowed per session. For unlimited, specify "-1". -host_set: - label: Host Set -grant_scope: - label: Grant Scope - help: Specify the scope to which this role applies. diff --git a/ui/admin/translations/notifications/en-us.yaml b/ui/admin/translations/notifications/en-us.yaml deleted file mode 100644 index 8c915ebe0..000000000 --- a/ui/admin/translations/notifications/en-us.yaml +++ /dev/null @@ -1,6 +0,0 @@ -create-success: Created succesfully. -save-success: Saved succesfully. -delete-success: Deleted successfully. -add-success: Added successfully. -remove-success: Removed successfully. -canceled-success: Canceled successfully. diff --git a/ui/admin/translations/resources/en-us.yaml b/ui/admin/translations/resources/en-us.yaml deleted file mode 100644 index bb9337871..000000000 --- a/ui/admin/translations/resources/en-us.yaml +++ /dev/null @@ -1,211 +0,0 @@ -account: - title: Account - title_plural: Accounts - description: An account allows a user to log into Boundary with a particular auth method. Users may have multiple accounts for different auth methods. - messages: - welcome: - title: Welcome to Accounts - description: Create and manage accounts for an auth method. - set-password: - description: Set a password for the account. - types: - password: Password - actions: - create: Create Account - delete: Delete Account -auth-method: - title: Auth Method - title_plural: Auth Methods - description: Auth methods govern how an org's users can login to Boundary. Boundary’s default auth method is username & passwords. - messages: - welcome: - title: Welcome to Auth Methods - description: Auth methods are configurations to authenticate users. - none: - title: No Auth Methods - description: No auth methods were found for this scope. - types: - password: Password - actions: - create: Create Auth Method - delete: Delete Auth Method -group: - title: Group - title_plural: Groups - description: Groups are collections of users. Groups may be assigned to roles to receive the role’s grants. - messages: - welcome: - title: Welcome to Groups - members: - title: Members - description: Members are the users assigned to a group. - add-members: - title: Add Members - description: Select users to add users to this group. - no-members: - title: No Members Available - description: There are no members available to add to this group. - actions: - add-members: Add Members - delete: Delete Group -host-catalog: - title: Host Catalog - title_plural: Host Catalogs - description: A host catalog is a collection of hosts and host sets. - messages: - welcome: - title: Welcome to Host Catalogs - actions: - delete: Delete Host Catalog - types: - static: Static -host-set: - title: Host Set - title_plural: Host Sets - description: A host set is a collection of hosts within a host catalog. - actions: - add: Add Host Set - create: New Host Set - delete: Delete Host Set - create-and-add-host: Create and Add Host - add-hosts: Add Existing Host - messages: - welcome: - title: Welcome to Host Sets - host: - messages: - none: - title: No Hosts - description: No hosts available in this host set. - add: - title: Add Hosts - description: Select hosts that belong to this host set. - add-none: - title: No Hosts Available - description: No hosts available for selection. - types: - static: Static -host: - title: Host - title_plural: Hosts - description: A host is a resource that may be accessed by a Boundary target. - messages: - welcome: - title: Welcome to Hosts - none: - title: No Hosts - description: No hosts available in this scope. - actions: - add: Add Host - create: New Host - delete: Delete Host - types: - static: Static -session: - title: Session - title_plural: Sessions - description: A session is a connection to a target initiated through Boundary. - messages: - none: - title: No Sessions - description: There are no active sessions within the current scope. -org: - title: Org - title_plural: Orgs - description: An org is a type of scope used to organize projects and IAM resources. Orgs are child scopes of the global scope. - messages: - welcome: - title: Welcome to Orgs - settings: - title: Org Settings - actions: - delete: Delete Org -project: - title: Project - title_plural: Projects - description: A project is a type of scope used to organize resources such as targets and host catalogs. - messages: - welcome: - title: Welcome to Projects - settings: - title: Project Settings - actions: - delete: Delete Project -user: - title: User - title_plural: Users - description: Users are entities authorized to access Boundary. Users may be assigned to roles as principals, thus receiving role grants. - messages: - welcome: - title: Welcome to Users - accounts: - title: Accounts - description: Users may be associated with any number of accounts. - add-accounts: - title: Add Accounts - description: Select accounts to associate with this user. - no-accounts: - title: No Accounts Available - description: There are no accounts available to add to this user. - actions: - add-accounts: Add Accounts - delete: Delete User -role: - title: Role - title_plural: Roles - description: Roles are collections of capability grants and the principals (users and groups) assigned to them. - messages: - welcome: - title: Welcome to Roles - actions: - create: Create Role - delete: Delete Role - principal: - title: Principal - title_plural: Principals - description: Principals are the users and groups assigned to a role and bounded by a role’s grants. - messages: - welcome: - title: Welcome to Principals - description: Principals are not assigned in this role. - none: - title: No Principals Available - description: Principals are not available for assignment. - add-principals: - title: Add Principals - description: Select users and groups to assign to this role. - types: - user: User - group: Group - actions: - add-principals: Add Principals - grant: - title: Grant - title_plural: Grants - description: Grants are permissions which allow roles to take actions and access resources. - actions: - create: New Grant -target: - title: Target - title_plural: Targets - description: A target is a logical collection of host sets which may be used to initiate sessions. - messages: - welcome: - title: Welcome to Targets - actions: - create: New Target - delete: Delete Target - add-host-sets: Add Host Sets - types: - tcp: TCP - host-set: - messages: - welcome: - title: Welcome to Host Sets - description: No hosts sets in this target. - none: - title: No Host Sets Available - description: No hosts sets available to add to target. - add: - title: Add Host Sets - description: Select host sets to assign to this target. diff --git a/ui/admin/translations/states/en-us.yaml b/ui/admin/translations/states/en-us.yaml deleted file mode 100644 index 96b1fd92c..000000000 --- a/ui/admin/translations/states/en-us.yaml +++ /dev/null @@ -1,5 +0,0 @@ -info: Info -success: Success -warning: Warning -error: Error -copied: Copied diff --git a/yarn.lock b/yarn.lock index 396414a77..e32e8c52a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7508,7 +7508,7 @@ debug@~4.1.0: dependencies: ms "^2.1.1" -debuglog@*, debuglog@^1.0.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= @@ -12147,7 +12147,7 @@ import-lazy@^2.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= -imurmurhash@*, imurmurhash@^0.1.4: +imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= @@ -13844,11 +13844,6 @@ lodash._baseflatten@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" -lodash._baseindexof@*: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" - integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw= - lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -13857,16 +13852,11 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@*, lodash._bindcallback@^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._cacheindexof@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" - integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI= - lodash._createassigner@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" @@ -13876,19 +13866,12 @@ lodash._createassigner@^3.0.0: lodash._isiterateecall "^3.0.0" lodash.restparam "^3.0.0" -lodash._createcache@*: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" - integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM= - dependencies: - lodash._getnative "^3.0.0" - lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= -lodash._getnative@*, lodash._getnative@^3.0.0: +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= @@ -14101,7 +14084,7 @@ lodash.pick@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= -lodash.restparam@*, lodash.restparam@^3.0.0: +lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= From 3cc02343a7a98b29ad1a5de3fa5a10622f75f608 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Wed, 18 Nov 2020 11:22:15 -0500 Subject: [PATCH 3/7] cleanup improperly added subfolder --- addons/intl | 1 - 1 file changed, 1 deletion(-) delete mode 160000 addons/intl diff --git a/addons/intl b/addons/intl deleted file mode 160000 index aa8d852b0..000000000 --- a/addons/intl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit aa8d852b03b1a7777cb7f26d5a01fc4dada29dc5 From 1511c513371141030bbce00f2e753bfc309e0a3e Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Wed, 18 Nov 2020 11:58:16 -0500 Subject: [PATCH 4/7] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20rename=20intl=20?= =?UTF-8?q?to=20core?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/core/.editorconfig | 19 ++ addons/core/.ember-cli | 9 + addons/core/.eslintignore | 20 ++ addons/core/.eslintrc.js | 54 +++++ addons/core/.gitignore | 25 ++ addons/core/.npmignore | 32 +++ addons/core/.template-lintrc.js | 5 + addons/core/.travis.yml | 66 ++++++ addons/core/.watchmanconfig | 3 + addons/core/CONTRIBUTING.md | 26 +++ addons/core/LICENSE.md | 9 + addons/core/README.md | 38 ++++ addons/core/addon/.gitkeep | 0 addons/core/app/.gitkeep | 0 addons/core/config/ember-try.js | 87 +++++++ addons/core/config/environment.js | 5 + addons/core/ember-cli-build.js | 18 ++ addons/core/index.js | 4 + addons/core/package.json | 68 ++++++ addons/core/testem.js | 27 +++ addons/core/tests/dummy/app/app.js | 12 + .../core/tests/dummy/app/components/.gitkeep | 0 .../core/tests/dummy/app/controllers/.gitkeep | 0 addons/core/tests/dummy/app/formats.js | 31 +++ addons/core/tests/dummy/app/helpers/.gitkeep | 0 addons/core/tests/dummy/app/index.html | 25 ++ addons/core/tests/dummy/app/models/.gitkeep | 0 addons/core/tests/dummy/app/router.js | 10 + addons/core/tests/dummy/app/routes/.gitkeep | 0 addons/core/tests/dummy/app/styles/app.css | 0 .../tests/dummy/app/templates/application.hbs | 3 + .../tests/dummy/config/ember-cli-update.json | 20 ++ addons/core/tests/dummy/config/ember-intl.js | 95 ++++++++ addons/core/tests/dummy/config/environment.js | 51 +++++ .../tests/dummy/config/optional-features.json | 6 + addons/core/tests/dummy/config/targets.js | 18 ++ addons/core/tests/dummy/public/robots.txt | 3 + addons/core/tests/helpers/.gitkeep | 0 addons/core/tests/index.html | 33 +++ addons/core/tests/integration/.gitkeep | 0 addons/core/tests/test-helper.js | 8 + addons/core/tests/unit/.gitkeep | 0 addons/core/translations/actions/en-us.yaml | 28 +++ addons/core/translations/en-us.yaml | 32 +++ addons/core/translations/errors/en-us.yaml | 19 ++ addons/core/translations/form/en-us.yaml | 51 +++++ .../translations/notifications/en-us.yaml | 6 + addons/core/translations/resources/en-us.yaml | 213 ++++++++++++++++++ addons/core/translations/states/en-us.yaml | 5 + addons/core/vendor/.gitkeep | 0 ui/admin/package.json | 2 +- ui/desktop/package.json | 2 +- yarn.lock | 153 +++++++------ 53 files changed, 1272 insertions(+), 69 deletions(-) create mode 100644 addons/core/.editorconfig create mode 100644 addons/core/.ember-cli create mode 100644 addons/core/.eslintignore create mode 100644 addons/core/.eslintrc.js create mode 100644 addons/core/.gitignore create mode 100644 addons/core/.npmignore create mode 100644 addons/core/.template-lintrc.js create mode 100644 addons/core/.travis.yml create mode 100644 addons/core/.watchmanconfig create mode 100644 addons/core/CONTRIBUTING.md create mode 100644 addons/core/LICENSE.md create mode 100644 addons/core/README.md create mode 100644 addons/core/addon/.gitkeep create mode 100644 addons/core/app/.gitkeep create mode 100644 addons/core/config/ember-try.js create mode 100644 addons/core/config/environment.js create mode 100644 addons/core/ember-cli-build.js create mode 100644 addons/core/index.js create mode 100644 addons/core/package.json create mode 100644 addons/core/testem.js create mode 100644 addons/core/tests/dummy/app/app.js create mode 100644 addons/core/tests/dummy/app/components/.gitkeep create mode 100644 addons/core/tests/dummy/app/controllers/.gitkeep create mode 100644 addons/core/tests/dummy/app/formats.js create mode 100644 addons/core/tests/dummy/app/helpers/.gitkeep create mode 100644 addons/core/tests/dummy/app/index.html create mode 100644 addons/core/tests/dummy/app/models/.gitkeep create mode 100644 addons/core/tests/dummy/app/router.js create mode 100644 addons/core/tests/dummy/app/routes/.gitkeep create mode 100644 addons/core/tests/dummy/app/styles/app.css create mode 100644 addons/core/tests/dummy/app/templates/application.hbs create mode 100644 addons/core/tests/dummy/config/ember-cli-update.json create mode 100644 addons/core/tests/dummy/config/ember-intl.js create mode 100644 addons/core/tests/dummy/config/environment.js create mode 100644 addons/core/tests/dummy/config/optional-features.json create mode 100644 addons/core/tests/dummy/config/targets.js create mode 100644 addons/core/tests/dummy/public/robots.txt create mode 100644 addons/core/tests/helpers/.gitkeep create mode 100644 addons/core/tests/index.html create mode 100644 addons/core/tests/integration/.gitkeep create mode 100644 addons/core/tests/test-helper.js create mode 100644 addons/core/tests/unit/.gitkeep create mode 100644 addons/core/translations/actions/en-us.yaml create mode 100644 addons/core/translations/en-us.yaml create mode 100644 addons/core/translations/errors/en-us.yaml create mode 100644 addons/core/translations/form/en-us.yaml create mode 100644 addons/core/translations/notifications/en-us.yaml create mode 100644 addons/core/translations/resources/en-us.yaml create mode 100644 addons/core/translations/states/en-us.yaml create mode 100644 addons/core/vendor/.gitkeep diff --git a/addons/core/.editorconfig b/addons/core/.editorconfig new file mode 100644 index 000000000..c35a00240 --- /dev/null +++ b/addons/core/.editorconfig @@ -0,0 +1,19 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + +[*] +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 2 + +[*.hbs] +insert_final_newline = false + +[*.{diff,md}] +trim_trailing_whitespace = false diff --git a/addons/core/.ember-cli b/addons/core/.ember-cli new file mode 100644 index 000000000..ee64cfed2 --- /dev/null +++ b/addons/core/.ember-cli @@ -0,0 +1,9 @@ +{ + /** + Ember CLI sends analytics information by default. The data is completely + anonymous, but there are times when you might want to disable this behavior. + + Setting `disableAnalytics` to true will prevent any data from being sent. + */ + "disableAnalytics": false +} diff --git a/addons/core/.eslintignore b/addons/core/.eslintignore new file mode 100644 index 000000000..72df37307 --- /dev/null +++ b/addons/core/.eslintignore @@ -0,0 +1,20 @@ +# unconventional js +/blueprints/*/files/ +/vendor/ + +# compiled output +/dist/ +/tmp/ + +# dependencies +/bower_components/ +/node_modules/ + +# misc +/coverage/ +!.* + +# ember-try +/.node_modules.ember-try/ +/bower.json.ember-try +/package.json.ember-try diff --git a/addons/core/.eslintrc.js b/addons/core/.eslintrc.js new file mode 100644 index 000000000..928585995 --- /dev/null +++ b/addons/core/.eslintrc.js @@ -0,0 +1,54 @@ +'use strict'; + +module.exports = { + root: true, + parser: 'babel-eslint', + parserOptions: { + ecmaVersion: 2018, + sourceType: 'module', + ecmaFeatures: { + legacyDecorators: true + } + }, + plugins: [ + 'ember' + ], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended' + ], + env: { + browser: true + }, + rules: {}, + overrides: [ + // node files + { + files: [ + '.eslintrc.js', + '.template-lintrc.js', + 'ember-cli-build.js', + 'index.js', + 'testem.js', + 'blueprints/*/index.js', + 'config/**/*.js', + 'tests/dummy/config/**/*.js' + ], + excludedFiles: [ + 'addon/**', + 'addon-test-support/**', + 'app/**', + 'tests/dummy/app/**' + ], + parserOptions: { + sourceType: 'script' + }, + env: { + browser: false, + node: true + }, + plugins: ['node'], + extends: ['plugin:node/recommended'] + } + ] +}; diff --git a/addons/core/.gitignore b/addons/core/.gitignore new file mode 100644 index 000000000..c40a1b2ab --- /dev/null +++ b/addons/core/.gitignore @@ -0,0 +1,25 @@ +# See https://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist/ +/tmp/ + +# dependencies +/bower_components/ +/node_modules/ + +# misc +/.env* +/.pnp* +/.sass-cache +/connect.lock +/coverage/ +/libpeerconnection.log +/npm-debug.log* +/testem.log +/yarn-error.log + +# ember-try +/.node_modules.ember-try/ +/bower.json.ember-try +/package.json.ember-try diff --git a/addons/core/.npmignore b/addons/core/.npmignore new file mode 100644 index 000000000..bd09adff9 --- /dev/null +++ b/addons/core/.npmignore @@ -0,0 +1,32 @@ +# compiled output +/dist/ +/tmp/ + +# dependencies +/bower_components/ + +# misc +/.bowerrc +/.editorconfig +/.ember-cli +/.env* +/.eslintignore +/.eslintrc.js +/.git/ +/.gitignore +/.template-lintrc.js +/.travis.yml +/.watchmanconfig +/bower.json +/config/ember-try.js +/CONTRIBUTING.md +/ember-cli-build.js +/testem.js +/tests/ +/yarn.lock +.gitkeep + +# ember-try +/.node_modules.ember-try/ +/bower.json.ember-try +/package.json.ember-try diff --git a/addons/core/.template-lintrc.js b/addons/core/.template-lintrc.js new file mode 100644 index 000000000..f38737001 --- /dev/null +++ b/addons/core/.template-lintrc.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + extends: 'octane' +}; diff --git a/addons/core/.travis.yml b/addons/core/.travis.yml new file mode 100644 index 000000000..1211e146c --- /dev/null +++ b/addons/core/.travis.yml @@ -0,0 +1,66 @@ +--- +language: node_js +node_js: + # we recommend testing addons with the same minimum supported node version as Ember CLI + # so that your addon works for all apps + - "10" + +dist: xenial + +addons: + chrome: stable + +cache: + yarn: true + +env: + global: + # See https://git.io/vdao3 for details. + - JOBS=1 + +branches: + only: + - master + # npm version tags + - /^v\d+\.\d+\.\d+/ + +jobs: + fast_finish: true + allow_failures: + - env: EMBER_TRY_SCENARIO=ember-canary + + include: + # runs linting and tests with current locked deps + - stage: "Tests" + name: "Tests" + script: + - yarn lint + - yarn test:ember + + - stage: "Additional Tests" + name: "Floating Dependencies" + install: + - yarn install --no-lockfile --non-interactive + script: + - yarn test:ember + + # we recommend new addons test the current and previous LTS + # as well as latest stable release (bonus points to beta/canary) + - env: EMBER_TRY_SCENARIO=ember-lts-3.12 + - env: EMBER_TRY_SCENARIO=ember-lts-3.16 + - env: EMBER_TRY_SCENARIO=ember-lts-3.20 + - env: EMBER_TRY_SCENARIO=ember-release + - env: EMBER_TRY_SCENARIO=ember-beta + - env: EMBER_TRY_SCENARIO=ember-canary + - env: EMBER_TRY_SCENARIO=ember-default-with-jquery + - env: EMBER_TRY_SCENARIO=ember-classic + +before_install: + - curl -o- -L https://yarnpkg.com/install.sh | bash + - export PATH=$HOME/.yarn/bin:$PATH + +install: + - yarn install --non-interactive + +script: + - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO diff --git a/addons/core/.watchmanconfig b/addons/core/.watchmanconfig new file mode 100644 index 000000000..e7834e3e4 --- /dev/null +++ b/addons/core/.watchmanconfig @@ -0,0 +1,3 @@ +{ + "ignore_dirs": ["tmp", "dist"] +} diff --git a/addons/core/CONTRIBUTING.md b/addons/core/CONTRIBUTING.md new file mode 100644 index 000000000..7491f6c86 --- /dev/null +++ b/addons/core/CONTRIBUTING.md @@ -0,0 +1,26 @@ +# How To Contribute + +## Installation + +* `git clone ` +* `cd core` +* `yarn install` + +## Linting + +* `yarn lint:hbs` +* `yarn lint:js` +* `yarn lint:js --fix` + +## Running tests + +* `ember test` – Runs the test suite on the current Ember version +* `ember test --server` – Runs the test suite in "watch mode" +* `ember try:each` – Runs the test suite against multiple Ember versions + +## Running the dummy application + +* `ember serve` +* Visit the dummy application at [http://localhost:4200](http://localhost:4200). + +For more information on using ember-cli, visit [https://ember-cli.com/](https://ember-cli.com/). diff --git a/addons/core/LICENSE.md b/addons/core/LICENSE.md new file mode 100644 index 000000000..7b6573f5e --- /dev/null +++ b/addons/core/LICENSE.md @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright (c) 2020 + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/addons/core/README.md b/addons/core/README.md new file mode 100644 index 000000000..966054b1e --- /dev/null +++ b/addons/core/README.md @@ -0,0 +1,38 @@ +core +============================================================================== + +[Short description of the addon.] + + +Compatibility +------------------------------------------------------------------------------ + +* Ember.js v3.12 or above +* Ember CLI v2.13 or above +* Node.js v10 or above + + +Installation +------------------------------------------------------------------------------ + +``` +ember install core +``` + + +Usage +------------------------------------------------------------------------------ + +[Longer description of how to use the addon in apps.] + + +Contributing +------------------------------------------------------------------------------ + +See the [Contributing](CONTRIBUTING.md) guide for details. + + +License +------------------------------------------------------------------------------ + +This project is licensed under the [MIT License](LICENSE.md). diff --git a/addons/core/addon/.gitkeep b/addons/core/addon/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/app/.gitkeep b/addons/core/app/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/config/ember-try.js b/addons/core/config/ember-try.js new file mode 100644 index 000000000..bf87e0bd7 --- /dev/null +++ b/addons/core/config/ember-try.js @@ -0,0 +1,87 @@ +'use strict'; + +const getChannelURL = require('ember-source-channel-url'); + +module.exports = async function() { + return { + useYarn: true, + scenarios: [ + { + name: 'ember-lts-3.12', + npm: { + devDependencies: { + 'ember-source': '~3.12.0' + } + } + }, + { + name: 'ember-lts-3.16', + npm: { + devDependencies: { + 'ember-source': '~3.16.0' + } + } + }, + { + name: 'ember-lts-3.20', + npm: { + devDependencies: { + 'ember-source': '~3.20.5' + } + } + }, + { + name: 'ember-release', + npm: { + devDependencies: { + 'ember-source': await getChannelURL('release') + } + } + }, + { + name: 'ember-beta', + npm: { + devDependencies: { + 'ember-source': await getChannelURL('beta') + } + } + }, + { + name: 'ember-canary', + npm: { + devDependencies: { + 'ember-source': await getChannelURL('canary') + } + } + }, + { + name: 'ember-default-with-jquery', + env: { + EMBER_OPTIONAL_FEATURES: JSON.stringify({ + 'jquery-integration': true + }) + }, + npm: { + devDependencies: { + '@ember/jquery': '^1.1.0' + } + } + }, + { + name: 'ember-classic', + env: { + EMBER_OPTIONAL_FEATURES: JSON.stringify({ + 'application-template-wrapper': true, + 'default-async-observers': false, + 'template-only-glimmer-components': false + }) + }, + npm: { + ember: { + edition: 'classic' + } + } + } + ] + }; +}; diff --git a/addons/core/config/environment.js b/addons/core/config/environment.js new file mode 100644 index 000000000..0dfaed472 --- /dev/null +++ b/addons/core/config/environment.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function(/* environment, appConfig */) { + return { }; +}; diff --git a/addons/core/ember-cli-build.js b/addons/core/ember-cli-build.js new file mode 100644 index 000000000..dc5a39e1b --- /dev/null +++ b/addons/core/ember-cli-build.js @@ -0,0 +1,18 @@ +'use strict'; + +const EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); + +module.exports = function(defaults) { + let app = new EmberAddon(defaults, { + // Add options here + }); + + /* + This build file specifies the options for the dummy test app of this + addon, located in `/tests/dummy` + This build file does *not* influence how the addon or the app using it + behave. You most likely want to be modifying `./index.js` or app's build file + */ + + return app.toTree(); +}; diff --git a/addons/core/index.js b/addons/core/index.js new file mode 100644 index 000000000..202492d5e --- /dev/null +++ b/addons/core/index.js @@ -0,0 +1,4 @@ +'use strict'; +module.exports = { + name: require('./package').name +}; diff --git a/addons/core/package.json b/addons/core/package.json new file mode 100644 index 000000000..b0a14af02 --- /dev/null +++ b/addons/core/package.json @@ -0,0 +1,68 @@ +{ + "name": "core", + "version": "0.0.0", + "description": "The default blueprint for ember-cli addons.", + "keywords": [ + "ember-addon" + ], + "repository": "", + "license": "MIT", + "author": "", + "directories": { + "doc": "doc", + "test": "tests" + }, + "scripts": { + "build": "ember build --environment=production", + "lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*", + "lint:hbs": "ember-template-lint .", + "lint:js": "eslint .", + "start": "ember serve", + "test": "npm-run-all lint:* test:*", + "test:ember": "ember test", + "test:ember-compatibility": "ember try:each" + }, + "dependencies": { + "ember-cli-babel": "^7.21.0", + "ember-cli-htmlbars": "^5.2.0" + }, + "devDependencies": { + "@ember/optional-features": "^1.3.0", + "@glimmer/component": "^1.0.1", + "@glimmer/tracking": "^1.0.0", + "babel-eslint": "^10.1.0", + "broccoli-asset-rev": "^3.0.0", + "ember-auto-import": "^1.6.0", + "ember-cli": "~3.20.2", + "ember-cli-dependency-checker": "^3.2.0", + "ember-cli-inject-live-reload": "^2.0.2", + "ember-cli-sri": "^2.1.1", + "ember-cli-uglify": "^3.0.0", + "ember-disable-prototype-extensions": "^1.1.3", + "ember-export-application-global": "^2.0.1", + "ember-intl": "^5.5.0", + "ember-load-initializers": "^2.1.1", + "ember-maybe-import-regenerator": "^0.1.6", + "ember-qunit": "^4.6.0", + "ember-resolver": "^8.0.0", + "ember-source": "~3.20.2", + "ember-source-channel-url": "^2.0.1", + "ember-template-lint": "^2.9.1", + "ember-try": "^1.4.0", + "eslint": "^7.5.0", + "eslint-plugin-ember": "^8.9.1", + "eslint-plugin-node": "^11.1.0", + "loader.js": "^4.7.0", + "npm-run-all": "^4.1.5", + "qunit-dom": "^1.2.0" + }, + "engines": { + "node": "10.* || >= 12" + }, + "ember": { + "edition": "octane" + }, + "ember-addon": { + "configPath": "tests/dummy/config" + } +} diff --git a/addons/core/testem.js b/addons/core/testem.js new file mode 100644 index 000000000..49f53feed --- /dev/null +++ b/addons/core/testem.js @@ -0,0 +1,27 @@ +'use strict'; + +module.exports = { + test_page: 'tests/index.html?hidepassed', + disable_watching: true, + launch_in_ci: [ + 'Chrome' + ], + launch_in_dev: [ + 'Chrome' + ], + browser_start_timeout: 120, + browser_args: { + Chrome: { + ci: [ + // --no-sandbox is needed when running Chrome inside a container + process.env.CI ? '--no-sandbox' : null, + '--headless', + '--disable-dev-shm-usage', + '--disable-software-rasterizer', + '--mute-audio', + '--remote-debugging-port=0', + '--window-size=1440,900' + ].filter(Boolean) + } + } +}; diff --git a/addons/core/tests/dummy/app/app.js b/addons/core/tests/dummy/app/app.js new file mode 100644 index 000000000..523bad60c --- /dev/null +++ b/addons/core/tests/dummy/app/app.js @@ -0,0 +1,12 @@ +import Application from '@ember/application'; +import Resolver from 'ember-resolver'; +import loadInitializers from 'ember-load-initializers'; +import config from 'dummy/config/environment'; + +export default class App extends Application { + modulePrefix = config.modulePrefix; + podModulePrefix = config.podModulePrefix; + Resolver = Resolver; +} + +loadInitializers(App, config.modulePrefix); diff --git a/addons/core/tests/dummy/app/components/.gitkeep b/addons/core/tests/dummy/app/components/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/dummy/app/controllers/.gitkeep b/addons/core/tests/dummy/app/controllers/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/dummy/app/formats.js b/addons/core/tests/dummy/app/formats.js new file mode 100644 index 000000000..f5d1f1502 --- /dev/null +++ b/addons/core/tests/dummy/app/formats.js @@ -0,0 +1,31 @@ +export default { + time: { + hhmmss: { + hour: 'numeric', + minute: 'numeric', + second: 'numeric', + }, + }, + date: { + hhmmss: { + hour: 'numeric', + minute: 'numeric', + second: 'numeric', + }, + }, + number: { + compact: { notation: 'compact' }, + EUR: { + style: 'currency', + currency: 'EUR', + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }, + USD: { + style: 'currency', + currency: 'USD', + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }, + }, +}; diff --git a/addons/core/tests/dummy/app/helpers/.gitkeep b/addons/core/tests/dummy/app/helpers/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/dummy/app/index.html b/addons/core/tests/dummy/app/index.html new file mode 100644 index 000000000..61400b20f --- /dev/null +++ b/addons/core/tests/dummy/app/index.html @@ -0,0 +1,25 @@ + + + + + + Dummy + + + + {{content-for "head"}} + + + + + {{content-for "head-footer"}} + + + {{content-for "body"}} + + + + + {{content-for "body-footer"}} + + diff --git a/addons/core/tests/dummy/app/models/.gitkeep b/addons/core/tests/dummy/app/models/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/dummy/app/router.js b/addons/core/tests/dummy/app/router.js new file mode 100644 index 000000000..bdf0187b9 --- /dev/null +++ b/addons/core/tests/dummy/app/router.js @@ -0,0 +1,10 @@ +import EmberRouter from '@ember/routing/router'; +import config from 'dummy/config/environment'; + +export default class Router extends EmberRouter { + location = config.locationType; + rootURL = config.rootURL; +} + +Router.map(function() { +}); diff --git a/addons/core/tests/dummy/app/routes/.gitkeep b/addons/core/tests/dummy/app/routes/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/dummy/app/styles/app.css b/addons/core/tests/dummy/app/styles/app.css new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/dummy/app/templates/application.hbs b/addons/core/tests/dummy/app/templates/application.hbs new file mode 100644 index 000000000..5230580f8 --- /dev/null +++ b/addons/core/tests/dummy/app/templates/application.hbs @@ -0,0 +1,3 @@ +

Welcome to Ember

+ +{{outlet}} \ No newline at end of file diff --git a/addons/core/tests/dummy/config/ember-cli-update.json b/addons/core/tests/dummy/config/ember-cli-update.json new file mode 100644 index 000000000..7d2c3ace4 --- /dev/null +++ b/addons/core/tests/dummy/config/ember-cli-update.json @@ -0,0 +1,20 @@ +{ + "schemaVersion": "1.0.0", + "packages": [ + { + "name": "ember-cli", + "version": "3.20.2", + "blueprints": [ + { + "name": "addon", + "outputRepo": "https://github.com/ember-cli/ember-addon-output", + "codemodsSource": "ember-addon-codemods-manifest@1", + "isBaseBlueprint": true, + "options": [ + "--yarn" + ] + } + ] + } + ] +} diff --git a/addons/core/tests/dummy/config/ember-intl.js b/addons/core/tests/dummy/config/ember-intl.js new file mode 100644 index 000000000..2e1bc33b6 --- /dev/null +++ b/addons/core/tests/dummy/config/ember-intl.js @@ -0,0 +1,95 @@ +/* jshint node:true */ + +module.exports = function(/* environment */) { + return { + /** + * Merges the fallback locale's translations into all other locales as a + * build-time fallback strategy. + * + * This will **not** prevent missing translation warnings or errors from occurring. + * It's meant as safety net when warnings are enabled. + * When enabled along with `errorOnMissingTranslations` any fallback attempts will result in an error. + * + * @property fallbackLocale + * @type {String?} + * @default "null" + */ + fallbackLocale: null, + + /** + * Path where translations are stored. This is relative to the project root. + * For example, if your translations are an npm dependency, set this to: + *`'./node_modules/path/to/translations'` + * + * @property inputPath + * @type {String} + * @default "'translations'" + */ + inputPath: 'translations', + + /** + * Prevents the translations from being bundled with the application code. + * This enables asynchronously loading the translations for the active locale + * by fetching them from the asset folder of the build. + * + * See: https://ember-intl.github.io/ember-intl/docs/guide/asynchronously-loading-translations + * + * @property publicOnly + * @type {Boolean} + * @default "false" + */ + publicOnly: false, + + /** + * Add the subdirectories of the translations as a namespace for all keys. + * + * @property wrapTranslationsWithNamespace + * @type {Boolean} + * @default "false" + */ + wrapTranslationsWithNamespace: false, + + /** + * Cause a build error if ICU argument mismatches are detected between translations + * with the same key across all locales. + * + * @property errorOnNamedArgumentMismatch + * @type {Boolean} + * @default "false" + */ + errorOnNamedArgumentMismatch: false, + + /** + * Cause a build error if missing translations are detected. + * + * See https://ember-intl.github.io/ember-intl/docs/guide/missing-translations#throwing-a-build-error-on-missing-required-translation + * + * @property errorOnMissingTranslations + * @type {Boolean} + * @default "false" + */ + errorOnMissingTranslations: false, + + /** + * removes empty translations from the build output. + * + * @property stripEmptyTranslations + * @type {Boolean} + * @default "false" + */ + stripEmptyTranslations: false, + + /** + * A function that is called whenever any translation key, from any locale, is missing at build time. + * + * See https://ember-intl.github.io/ember-intl/docs/guide/missing-translations#requiring-translations + * + * @property requiresTranslation + * @type {Function} + * @default "function(key,locale) { return true }" + */ + requiresTranslation(/* key, locale */) { + return true; + } + }; +}; diff --git a/addons/core/tests/dummy/config/environment.js b/addons/core/tests/dummy/config/environment.js new file mode 100644 index 000000000..9f2393692 --- /dev/null +++ b/addons/core/tests/dummy/config/environment.js @@ -0,0 +1,51 @@ +'use strict'; + +module.exports = function(environment) { + let ENV = { + modulePrefix: 'dummy', + environment, + rootURL: '/', + locationType: 'auto', + EmberENV: { + FEATURES: { + // Here you can enable experimental features on an ember canary build + // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true + }, + EXTEND_PROTOTYPES: { + // Prevent Ember Data from overriding Date.parse. + Date: false + } + }, + + APP: { + // Here you can pass flags/options to your application instance + // when it is created + } + }; + + if (environment === 'development') { + // ENV.APP.LOG_RESOLVER = true; + // ENV.APP.LOG_ACTIVE_GENERATION = true; + // ENV.APP.LOG_TRANSITIONS = true; + // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; + // ENV.APP.LOG_VIEW_LOOKUPS = true; + } + + if (environment === 'test') { + // Testem prefers this... + ENV.locationType = 'none'; + + // keep test console output quieter + ENV.APP.LOG_ACTIVE_GENERATION = false; + ENV.APP.LOG_VIEW_LOOKUPS = false; + + ENV.APP.rootElement = '#ember-testing'; + ENV.APP.autoboot = false; + } + + if (environment === 'production') { + // here you can enable a production-specific feature + } + + return ENV; +}; diff --git a/addons/core/tests/dummy/config/optional-features.json b/addons/core/tests/dummy/config/optional-features.json new file mode 100644 index 000000000..b26286e2e --- /dev/null +++ b/addons/core/tests/dummy/config/optional-features.json @@ -0,0 +1,6 @@ +{ + "application-template-wrapper": false, + "default-async-observers": true, + "jquery-integration": false, + "template-only-glimmer-components": true +} diff --git a/addons/core/tests/dummy/config/targets.js b/addons/core/tests/dummy/config/targets.js new file mode 100644 index 000000000..228a07898 --- /dev/null +++ b/addons/core/tests/dummy/config/targets.js @@ -0,0 +1,18 @@ +'use strict'; + +const browsers = [ + 'last 1 Chrome versions', + 'last 1 Firefox versions', + 'last 1 Safari versions' +]; + +const isCI = Boolean(process.env.CI); +const isProduction = process.env.EMBER_ENV === 'production'; + +if (isCI || isProduction) { + browsers.push('ie 11'); +} + +module.exports = { + browsers +}; diff --git a/addons/core/tests/dummy/public/robots.txt b/addons/core/tests/dummy/public/robots.txt new file mode 100644 index 000000000..f5916452e --- /dev/null +++ b/addons/core/tests/dummy/public/robots.txt @@ -0,0 +1,3 @@ +# http://www.robotstxt.org +User-agent: * +Disallow: diff --git a/addons/core/tests/helpers/.gitkeep b/addons/core/tests/helpers/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/index.html b/addons/core/tests/index.html new file mode 100644 index 000000000..5209b8523 --- /dev/null +++ b/addons/core/tests/index.html @@ -0,0 +1,33 @@ + + + + + + Dummy Tests + + + + {{content-for "head"}} + {{content-for "test-head"}} + + + + + + {{content-for "head-footer"}} + {{content-for "test-head-footer"}} + + + {{content-for "body"}} + {{content-for "test-body"}} + + + + + + + + {{content-for "body-footer"}} + {{content-for "test-body-footer"}} + + diff --git a/addons/core/tests/integration/.gitkeep b/addons/core/tests/integration/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/tests/test-helper.js b/addons/core/tests/test-helper.js new file mode 100644 index 000000000..4eae06f81 --- /dev/null +++ b/addons/core/tests/test-helper.js @@ -0,0 +1,8 @@ +import Application from 'dummy/app'; +import config from 'dummy/config/environment'; +import { setApplication } from '@ember/test-helpers'; +import { start } from 'ember-qunit'; + +setApplication(Application.create(config.APP)); + +start(); diff --git a/addons/core/tests/unit/.gitkeep b/addons/core/tests/unit/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/addons/core/translations/actions/en-us.yaml b/addons/core/translations/actions/en-us.yaml new file mode 100644 index 000000000..a6cadbe2e --- /dev/null +++ b/addons/core/translations/actions/en-us.yaml @@ -0,0 +1,28 @@ +add: Add +cancel: Cancel +delete: Delete +remove: Remove +discard: Discard +dismiss: Dismiss +save: Save +manage: Manage +confirm: Confirm +ok: OK +deny: Deny +help: Need help? +back: Back +get-topic-help: Get help for this topic +copy-to-clipboard: Copy to Clipboard +authenticate: Authenticate +deauthenticate: Deauthenticate +choose-org: Choose Scope +choose-different-org: Choose a Different Scope +add-host-set: Create Host Set +add-host: Create Host +add-host-sets: Add Host Sets +add-principals: Add Principals +add-members: Add Members +add-hosts: Add Hosts +set-password: Set Password +change-password: Change Password +edit-form: Edit Form diff --git a/addons/core/translations/en-us.yaml b/addons/core/translations/en-us.yaml new file mode 100644 index 000000000..c1d3bd392 --- /dev/null +++ b/addons/core/translations/en-us.yaml @@ -0,0 +1,32 @@ +auth: + titles: + no-scopes: No Scopes Available + descriptions: + no-scopes: No scopes were found. To authenticate, ask your administrator to create an scope and grant you access. + choose-org: Choose a scope to authenticate. + authenticating-with-org: "You are authenticating with {name}." +titles: + home: Home + iam: IAM + new: New + resources: Resources + details: Details + general: General + overview: Overview + settings: Settings + empty-set: No Items Yet + global: Global + actions: Actions + documentation: Documentation + abandon-confirm: Discard unsaved changes? + toggle-color-theme: Toggle Color Theme +descriptions: + empty-set: There are no items to display yet. You may be able to add items or try back later. +questions: + delete-confirm: Are you sure you want to delete this resource? + remove-confirm: Are you sure you want to remove this association? + abandon-confirm: Are you sure you want to navigate away? Your unsaved changes will be lost. +themes: + system: System Default + light: Light + dark: Dark diff --git a/addons/core/translations/errors/en-us.yaml b/addons/core/translations/errors/en-us.yaml new file mode 100644 index 000000000..0e2239e72 --- /dev/null +++ b/addons/core/translations/errors/en-us.yaml @@ -0,0 +1,19 @@ +401: + title: You are not signed in + description: You are not authenticated. Please authenticate and try again later. +403: + title: You are not authorized + description: You must be granted permissions to view this data. Ask your administrator if you think you should have access. +404: + title: Resource not found + description: We could not find the requested resource. You can ask your administrator or try again later. +500: + title: Server error + description: We ran into a problem and could not continue. You can ask your administrator or try again later. +unknown: + title: Something went wrong + description: Please contact your administrator or try again later. +generic: + title: Error +authentication-failed: + title: Authentication Failed diff --git a/addons/core/translations/form/en-us.yaml b/addons/core/translations/form/en-us.yaml new file mode 100644 index 000000000..d76b813c2 --- /dev/null +++ b/addons/core/translations/form/en-us.yaml @@ -0,0 +1,51 @@ +id: + label: ID +name: + label: Name + help: Name for identification purposes +description: + label: Description + help: Description for identification purposes +type: + label: Type + help: The type of the resource, to help differentiate schemas +login_name: + label: Login Name +username: + label: Username +set_password: + label: Password + help: Create a new password +password: + label: Password +grant: + label: Grant + help: A permissions grant string for a role +address: + label: Address + help: An IP, host name, or other routable address +default_port: + label: Default Port + help: The default port on which to connect +current_password: + label: Current Password +new_password: + label: New Password +started: + label: Started +status: + label: Status +session_max_seconds: + label: Maximum Duration (in seconds) + help: The maximum duration of a session. +session_connection_limit: + label: Maximum Connections + help: The maximum number of connections allowed per session. For unlimited, specify "-1". +host_set: + label: Host Set +grant_scope: + label: Grant Scope + help: Specify the scope to which this role applies. +origin: + label: Origin + description: The server origin to which to connect (e.g. protocol://host) diff --git a/addons/core/translations/notifications/en-us.yaml b/addons/core/translations/notifications/en-us.yaml new file mode 100644 index 000000000..8c915ebe0 --- /dev/null +++ b/addons/core/translations/notifications/en-us.yaml @@ -0,0 +1,6 @@ +create-success: Created succesfully. +save-success: Saved succesfully. +delete-success: Deleted successfully. +add-success: Added successfully. +remove-success: Removed successfully. +canceled-success: Canceled successfully. diff --git a/addons/core/translations/resources/en-us.yaml b/addons/core/translations/resources/en-us.yaml new file mode 100644 index 000000000..7ad5434d1 --- /dev/null +++ b/addons/core/translations/resources/en-us.yaml @@ -0,0 +1,213 @@ +account: + title: Account + title_plural: Accounts + description: An account allows a user to log into Boundary with a particular auth method. Users may have multiple accounts for different auth methods. + messages: + welcome: + title: Welcome to Accounts + description: Create and manage accounts for an auth method. + set-password: + description: Set a password for the account. + types: + password: Password + actions: + create: Create Account + delete: Delete Account +auth-method: + title: Auth Method + title_plural: Auth Methods + description: Auth methods govern how an org's users can login to Boundary. Boundary’s default auth method is username & passwords. + messages: + welcome: + title: Welcome to Auth Methods + description: Auth methods are configurations to authenticate users. + none: + title: No Auth Methods + description: No auth methods were found for this scope. + types: + password: Password + actions: + create: Create Auth Method + delete: Delete Auth Method +group: + title: Group + title_plural: Groups + description: Groups are collections of users. Groups may be assigned to roles to receive the role’s grants. + messages: + welcome: + title: Welcome to Groups + members: + title: Members + description: Members are the users assigned to a group. + add-members: + title: Add Members + description: Select users to add users to this group. + no-members: + title: No Members Available + description: There are no members available to add to this group. + actions: + add-members: Add Members + delete: Delete Group +host-catalog: + title: Host Catalog + title_plural: Host Catalogs + description: A host catalog is a collection of hosts and host sets. + messages: + welcome: + title: Welcome to Host Catalogs + actions: + delete: Delete Host Catalog + types: + static: Static +host-set: + title: Host Set + title_plural: Host Sets + description: A host set is a collection of hosts within a host catalog. + actions: + add: Add Host Set + create: New Host Set + delete: Delete Host Set + create-and-add-host: Create and Add Host + add-hosts: Add Existing Host + messages: + welcome: + title: Welcome to Host Sets + host: + messages: + none: + title: No Hosts + description: No hosts available in this host set. + add: + title: Add Hosts + description: Select hosts that belong to this host set. + add-none: + title: No Hosts Available + description: No hosts available for selection. + types: + static: Static +host: + title: Host + title_plural: Hosts + description: A host is a resource that may be accessed by a Boundary target. + messages: + welcome: + title: Welcome to Hosts + none: + title: No Hosts + description: No hosts available in this scope. + actions: + add: Add Host + create: New Host + delete: Delete Host + types: + static: Static +session: + title: Session + title_plural: Sessions + description: A session is a connection to a target initiated through Boundary. + messages: + none: + title: No Sessions + description: There are no active sessions within the current scope. + actions: + connect: Connect +org: + title: Org + title_plural: Orgs + description: An org is a type of scope used to organize projects and IAM resources. Orgs are child scopes of the global scope. + messages: + welcome: + title: Welcome to Orgs + settings: + title: Org Settings + actions: + delete: Delete Org +project: + title: Project + title_plural: Projects + description: A project is a type of scope used to organize resources such as targets and host catalogs. + messages: + welcome: + title: Welcome to Projects + settings: + title: Project Settings + actions: + delete: Delete Project +user: + title: User + title_plural: Users + description: Users are entities authorized to access Boundary. Users may be assigned to roles as principals, thus receiving role grants. + messages: + welcome: + title: Welcome to Users + accounts: + title: Accounts + description: Users may be associated with any number of accounts. + add-accounts: + title: Add Accounts + description: Select accounts to associate with this user. + no-accounts: + title: No Accounts Available + description: There are no accounts available to add to this user. + actions: + add-accounts: Add Accounts + delete: Delete User +role: + title: Role + title_plural: Roles + description: Roles are collections of capability grants and the principals (users and groups) assigned to them. + messages: + welcome: + title: Welcome to Roles + actions: + create: Create Role + delete: Delete Role + principal: + title: Principal + title_plural: Principals + description: Principals are the users and groups assigned to a role and bounded by a role’s grants. + messages: + welcome: + title: Welcome to Principals + description: Principals are not assigned in this role. + none: + title: No Principals Available + description: Principals are not available for assignment. + add-principals: + title: Add Principals + description: Select users and groups to assign to this role. + types: + user: User + group: Group + actions: + add-principals: Add Principals + grant: + title: Grant + title_plural: Grants + description: Grants are permissions which allow roles to take actions and access resources. + actions: + create: New Grant +target: + title: Target + title_plural: Targets + description: A target is a logical collection of host sets which may be used to initiate sessions. + messages: + welcome: + title: Welcome to Targets + actions: + create: New Target + delete: Delete Target + add-host-sets: Add Host Sets + types: + tcp: TCP + host-set: + messages: + welcome: + title: Welcome to Host Sets + description: No hosts sets in this target. + none: + title: No Host Sets Available + description: No hosts sets available to add to target. + add: + title: Add Host Sets + description: Select host sets to assign to this target. diff --git a/addons/core/translations/states/en-us.yaml b/addons/core/translations/states/en-us.yaml new file mode 100644 index 000000000..96b1fd92c --- /dev/null +++ b/addons/core/translations/states/en-us.yaml @@ -0,0 +1,5 @@ +info: Info +success: Success +warning: Warning +error: Error +copied: Copied diff --git a/addons/core/vendor/.gitkeep b/addons/core/vendor/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/ui/admin/package.json b/ui/admin/package.json index c4acbbad1..eb3340116 100644 --- a/ui/admin/package.json +++ b/ui/admin/package.json @@ -35,7 +35,7 @@ "@glimmer/tracking": "^1.0.0", "api": "*", "auth": "*", - "intl": "*", + "core": "*", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", "broccoli-asset-rev": "^3.0.0", diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 69792b4fe..ab6881aec 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -34,7 +34,7 @@ "@glimmer/component": "^1.0.1", "@glimmer/tracking": "^1.0.0", "api": "*", - "intl": "*", + "core": "*", "auth": "*", "babel-eslint": "^10.1.0", "babel-loader": "^8.1.0", diff --git a/yarn.lock b/yarn.lock index e32e8c52a..19cd67a62 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1837,10 +1837,10 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@formatjs/ecma402-abstract@1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.3.2.tgz#e9c1e990bd0fcde4db982d2272af990ba55cdcfc" - integrity sha512-O9VaOzf7uMmu08omHZgakntyPYAaQ6uJmVk5c6UbitYmWl0IgxnKWbf1MWVA7N0uQjbP9kvR4+hv09PAnqXuIw== +"@formatjs/ecma402-abstract@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.4.0.tgz#ac6c17a8fffac43c6d68c849a7b732626d32654c" + integrity sha512-Mv027hcLFjE45K8UJ8PjRpdDGfR0aManEFj1KzoN8zXNveHGEygpZGfFf/FTTMl+QEVSrPAUlyxaCApvmv47AQ== dependencies: tslib "^2.0.1" @@ -2249,9 +2249,9 @@ "@sinonjs/samsam" "^5.0.2" "@sinonjs/samsam@^5.0.2", "@sinonjs/samsam@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.2.0.tgz#fcff83ab86f83b5498f4a967869c079408d9b5eb" - integrity sha512-CaIcyX5cDsjcW/ab7HposFWzV1kC++4HNsfnEdFJa7cP1QIuILAKV+BgfeqRXhcnSAc76r/Rh/O5C+300BwUIw== + version "5.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.0.tgz#1d2f0743dc54bf13fe9d508baefacdffa25d4329" + integrity sha512-hXpcfx3aq+ETVBwPlRFICld5EnrkexXuXDwqUNhDdr5L8VjvMeSRwyOa0qL7XFmR+jVWR4rUZtnxlG7RX72sBg== dependencies: "@sinonjs/commons" "^1.6.0" lodash.get "^4.4.2" @@ -2977,9 +2977,9 @@ form-data "^3.0.0" "@types/node@*": - version "14.14.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.7.tgz#8ea1e8f8eae2430cf440564b98c6dfce1ec5945d" - integrity sha512-Zw1vhUSQZYw+7u5dAwNbIA9TuTotpzY/OF7sJM9FqPOF3SPjKnxrjoTktXDZgUjybf4cWVBP7O8wvKdSaGHweg== + version "14.14.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.8.tgz#2127bd81949a95c8b7d3240f3254352d72563aec" + integrity sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA== "@types/node@^9.6.0": version "9.6.61" @@ -3080,9 +3080,9 @@ "@types/node" "*" "@types/serve-static@*": - version "1.13.7" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.7.tgz#e51b51a0becda910f9fd04c718044da69d6c492e" - integrity sha512-3diZWucbR+xTmbDlU+FRRxBf+31OhFew7cJXML/zh9NmvSPTNoFecAwHB66BUqFgENJtqMiyl7JAwUE/siqdLw== + version "1.13.8" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.8.tgz#851129d434433c7082148574ffec263d58309c46" + integrity sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA== dependencies: "@types/mime" "*" "@types/node" "*" @@ -3146,9 +3146,9 @@ integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== "@types/yargs@^15.0.0": - version "15.0.9" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.9.tgz#524cd7998fe810cdb02f26101b699cccd156ff19" - integrity sha512-HmU8SeIRhZCWcnRskCs36Q1Q00KBV6Cqh/ora8WN1+22dY07AZdn6Gel8QZ3t26XYPImtcL8WV/eqjhVmMEw4g== + version "15.0.10" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.10.tgz#0fe3c8173a0d5c3e780b389050140c3f5ea6ea74" + integrity sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ== dependencies: "@types/yargs-parser" "*" @@ -3792,20 +3792,22 @@ array-unique@^0.3.2: integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= array.prototype.flat@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" array.prototype.flatmap@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443" - integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" function-bind "^1.1.1" array.prototype.map@^1.0.1: @@ -6306,9 +6308,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001157: - version "1.0.30001157" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001157.tgz#2d11aaeb239b340bc1aa730eca18a37fdb07a9ab" - integrity sha512-gOerH9Wz2IRZ2ZPdMfBvyOi3cjaz4O4dgNwPGzx8EhqAs4+2IL/O+fJsbt+znSigujoZG8bVcIAUM/I/E5K3MA== + version "1.0.30001159" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz#bebde28f893fa9594dadcaa7d6b8e2aa0299df20" + integrity sha512-w9Ph56jOsS8RL20K9cLND3u/+5WASWdhC/PPrf+V3/HsM3uHOavWOR1Xzakbv4Puo/srmPHudkmCRWM7Aq+/UA== capture-exit@^2.0.0: version "2.0.0" @@ -7393,14 +7395,14 @@ cssstyle@^2.2.0: cssom "~0.3.6" csstype@^2.5.7: - version "2.6.13" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" - integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== + version "2.6.14" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.14.tgz#004822a4050345b55ad4dcc00be1d9cf2f4296de" + integrity sha512-2mSc+VEpGPblzAxyeR+vZhJKgYg0Og0nnRi7pmRXFYYxSfnOnW8A5wwQb4n4cE2nIOzqKOAzLCaEX6aBmNEv8A== csstype@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.4.tgz#b156d7be03b84ff425c9a0a4b1e5f4da9c5ca888" - integrity sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA== + version "3.0.5" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8" + integrity sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ== currently-unhandled@^0.4.1: version "0.4.1" @@ -7508,7 +7510,7 @@ debug@~4.1.0: dependencies: ms "^2.1.1" -debuglog@^1.0.1: +debuglog@*, 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= @@ -8056,9 +8058,9 @@ electron-rebuild@^2.0.0: yargs "^16.0.0" electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.591: - version "1.3.593" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.593.tgz#947ccf6dc8e013e2b053d2463ecd1043c164fcef" - integrity sha512-GvO7G1ZxvffnMvPCr4A7+iQPVuvpyqMrx2VWSERAjG+pHK6tmO9XqYdBfMIq9corRyi4bNImSDEiDvIoDb8HrA== + version "1.3.598" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.598.tgz#8f757018902ab6190323a8c5f6124d854893a35b" + integrity sha512-G5Ztk23/ubLYVPxPXnB1uu105uzIPd4xB/D8ld8x1GaSC9+vU9NZL16nYZya8H77/7CCKKN7dArzJL3pBs8N7A== element-resize-detector@^1.2.1: version "1.2.1" @@ -11038,9 +11040,9 @@ getpass@^0.1.1: assert-plus "^1.0.0" git-cz@^4.3.1: - version "4.7.3" - resolved "https://registry.yarnpkg.com/git-cz/-/git-cz-4.7.3.tgz#2dc67b0231937946f602fd0320f6c983c40f7071" - integrity sha512-Z+iy1G5qsbICeHBj4EZI438C8T1bh+m953jTT5hcQZggzSnjDdrUahM7O+ETspr3f3iWXONqC8e+zMuDT+ODJg== + version "4.7.4" + resolved "https://registry.yarnpkg.com/git-cz/-/git-cz-4.7.4.tgz#abb119676fc5869d1f3470a54032c6a95d53d010" + integrity sha512-s8r6JPuuFJXCiwB6uBlWYjDE6GlvIReSgVqYCfpRB+JbiBVNQLcBb93mH6bIJzz1lQU4R8+qlChhQIK8xp58Tg== git-diff-apply@0.22.7: version "0.22.7" @@ -12147,7 +12149,7 @@ import-lazy@^2.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= -imurmurhash@^0.1.4: +imurmurhash@*, imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= @@ -12347,21 +12349,21 @@ interpret@^2.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -intl-messageformat-parser@6.0.15, intl-messageformat-parser@^6.0.5: - version "6.0.15" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.0.15.tgz#84c5840a4c382b27d7a62c3be6ec01b987363f4b" - integrity sha512-W+dAY3M0XVkowapa4LzzpUO9awevcbt5hCB3uof7yM2InzgR6/nfC9H7GnUcRPkKpIDRd6iZ+FtvCcPbNBvfiQ== +intl-messageformat-parser@6.0.16, intl-messageformat-parser@^6.0.5: + version "6.0.16" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.0.16.tgz#4049e07d0834635ab08e1a1f255287b9c83888e5" + integrity sha512-Qy3Zz0vF4fhMVuW4BDqUr55LsOl9enM03wuwbP4Yg7v29rYNpf7Z76Whstu6uDLDJokrjbpgDvRcjSDTAhxKJw== dependencies: - "@formatjs/ecma402-abstract" "1.3.2" + "@formatjs/ecma402-abstract" "1.4.0" tslib "^2.0.1" intl-messageformat@^9.3.6: - version "9.3.17" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.3.17.tgz#7a2645a5d3cb9ae190ecc11def5b9a96d99f3fe0" - integrity sha512-CreK24I6+sWsAvo6GkJoOxCNry2k2LLo3daXguuU+cOaGTxdjDJo4CfGxiBlngmL0ZPbqkAA4XoRiFt83fSPqg== + version "9.3.18" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.3.18.tgz#26074d0793b72b117acdef927f30518ebcdcedcc" + integrity sha512-OKrLWppdxXtRdRCPjmRZ9Ru7UZkZJDlMl+1Vpb3sCLWK0mFpr129K+gIlIb5zrWoAH3NiYDzekBXPTRWCyHSIA== dependencies: fast-memoize "^2.5.2" - intl-messageformat-parser "6.0.15" + intl-messageformat-parser "6.0.16" tslib "^2.0.1" into-stream@^3.1.0: @@ -13844,6 +13846,11 @@ lodash._baseflatten@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw= + lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -13852,11 +13859,16 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@^3.0.0: +lodash._bindcallback@*, 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._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI= + lodash._createassigner@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" @@ -13866,12 +13878,19 @@ lodash._createassigner@^3.0.0: lodash._isiterateecall "^3.0.0" lodash.restparam "^3.0.0" +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM= + dependencies: + lodash._getnative "^3.0.0" + lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= -lodash._getnative@^3.0.0: +lodash._getnative@*, 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= @@ -14084,7 +14103,7 @@ lodash.pick@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= -lodash.restparam@^3.0.0: +lodash.restparam@*, lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= @@ -15058,9 +15077,9 @@ no-case@^3.0.3: tslib "^1.10.0" node-abi@^2.19.1: - version "2.19.1" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.1.tgz#6aa32561d0a5e2fdb6810d8c25641b657a8cea85" - integrity sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A== + version "2.19.3" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d" + integrity sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== dependencies: semver "^5.4.1" @@ -15195,9 +15214,9 @@ node-pre-gyp@^0.11.0: tar "^4" node-releases@^1.1.52, node-releases@^1.1.66: - version "1.1.66" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.66.tgz#609bd0dc069381015cd982300bae51ab4f1b1814" - integrity sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg== + version "1.1.67" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" + integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== node-uuid@~1.4.7: version "1.4.8" @@ -20039,9 +20058,9 @@ uc.micro@^1.0.0, uc.micro@^1.0.1, uc.micro@^1.0.5: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.11.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.11.5.tgz#d6788bc83cf35ff18ea78a65763e480803409bc6" - integrity sha512-btvv/baMqe7HxP7zJSF7Uc16h1mSfuuSplT0/qdjxseesDU+yYzH33eHBH+eMdeRXwujXspaCTooWHQVVBh09w== + version "3.11.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.11.6.tgz#144b50d3e05eadd3ad4dd047c60ca541a8cd4e9c" + integrity sha512-oASI1FOJ7BBFkSCNDZ446EgkSuHkOZBuqRFrwXIKWCoXw8ZXQETooTQjkAcBS03Acab7ubCKsXnwuV2svy061g== uid-number@0.0.6: version "0.0.6" @@ -21127,7 +21146,7 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== -y18n@^5.0.2: +y18n@^5.0.5: version "5.0.5" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== @@ -21226,16 +21245,16 @@ yargs@^15.0.0, yargs@^15.1.0: yargs-parser "^18.1.2" yargs@^16.0.0, yargs@^16.0.3: - version "16.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.1.0.tgz#fc333fe4791660eace5a894b39d42f851cd48f2a" - integrity sha512-upWFJOmDdHN0syLuESuvXDmrRcWd1QafJolHskzaw79uZa7/x53gxQKiR07W59GWY1tFhhU/Th9DrtSfpS782g== + version "16.1.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.1.1.tgz#5a4a095bd1ca806b0a50d0c03611d38034d219a1" + integrity sha512-hAD1RcFP/wfgfxgMVswPE+z3tlPFtxG8/yWUrG2i17sTWGCGqWnxKcLTF4cUKDUK8fzokwsmO9H0TDkRbMHy8w== dependencies: cliui "^7.0.2" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" string-width "^4.2.0" - y18n "^5.0.2" + y18n "^5.0.5" yargs-parser "^20.2.2" yargs@^8.0.2: From ed6aefbe9cae8ec95840091fcd47f86344121ac9 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Wed, 18 Nov 2020 12:12:30 -0500 Subject: [PATCH 5/7] =?UTF-8?q?chore:=20=F0=9F=A4=96=20setup=20linting=20a?= =?UTF-8?q?nd=20testing=20in=20core=20addon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/core/config/ember-try.js | 86 +++++++++---------- addons/core/config/environment.js | 6 +- addons/core/ember-cli-build.js | 6 +- addons/core/index.js | 4 +- addons/core/package.json | 6 +- addons/core/testem.js | 32 +++---- addons/core/tests/dummy/app/app.js | 8 +- addons/core/tests/dummy/app/formats.js | 22 ++--- addons/core/tests/dummy/app/router.js | 7 +- addons/core/tests/dummy/config/ember-intl.js | 6 +- addons/core/tests/dummy/config/environment.js | 26 +++--- addons/core/tests/dummy/config/targets.js | 14 +-- addons/core/tests/test-helper.js | 8 +- package.json | 2 + 14 files changed, 116 insertions(+), 117 deletions(-) diff --git a/addons/core/config/ember-try.js b/addons/core/config/ember-try.js index bf87e0bd7..bbdb66252 100644 --- a/addons/core/config/ember-try.js +++ b/addons/core/config/ember-try.js @@ -1,87 +1,87 @@ -'use strict'; +"use strict"; -const getChannelURL = require('ember-source-channel-url'); +const getChannelURL = require("ember-source-channel-url"); -module.exports = async function() { +module.exports = async function () { return { useYarn: true, scenarios: [ { - name: 'ember-lts-3.12', + name: "ember-lts-3.12", npm: { devDependencies: { - 'ember-source': '~3.12.0' - } - } + "ember-source": "~3.12.0", + }, + }, }, { - name: 'ember-lts-3.16', + name: "ember-lts-3.16", npm: { devDependencies: { - 'ember-source': '~3.16.0' - } - } + "ember-source": "~3.16.0", + }, + }, }, { - name: 'ember-lts-3.20', + name: "ember-lts-3.20", npm: { devDependencies: { - 'ember-source': '~3.20.5' - } - } + "ember-source": "~3.20.5", + }, + }, }, { - name: 'ember-release', + name: "ember-release", npm: { devDependencies: { - 'ember-source': await getChannelURL('release') - } - } + "ember-source": await getChannelURL("release"), + }, + }, }, { - name: 'ember-beta', + name: "ember-beta", npm: { devDependencies: { - 'ember-source': await getChannelURL('beta') - } - } + "ember-source": await getChannelURL("beta"), + }, + }, }, { - name: 'ember-canary', + name: "ember-canary", npm: { devDependencies: { - 'ember-source': await getChannelURL('canary') - } - } + "ember-source": await getChannelURL("canary"), + }, + }, }, { - name: 'ember-default-with-jquery', + name: "ember-default-with-jquery", env: { EMBER_OPTIONAL_FEATURES: JSON.stringify({ - 'jquery-integration': true - }) + "jquery-integration": true, + }), }, npm: { devDependencies: { - '@ember/jquery': '^1.1.0' - } - } + "@ember/jquery": "^1.1.0", + }, + }, }, { - name: 'ember-classic', + name: "ember-classic", env: { EMBER_OPTIONAL_FEATURES: JSON.stringify({ - 'application-template-wrapper': true, - 'default-async-observers': false, - 'template-only-glimmer-components': false - }) + "application-template-wrapper": true, + "default-async-observers": false, + "template-only-glimmer-components": false, + }), }, npm: { ember: { - edition: 'classic' - } - } - } - ] + edition: "classic", + }, + }, + }, + ], }; }; diff --git a/addons/core/config/environment.js b/addons/core/config/environment.js index 0dfaed472..b7238585e 100644 --- a/addons/core/config/environment.js +++ b/addons/core/config/environment.js @@ -1,5 +1,5 @@ -'use strict'; +"use strict"; -module.exports = function(/* environment, appConfig */) { - return { }; +module.exports = function (/* environment, appConfig */) { + return {}; }; diff --git a/addons/core/ember-cli-build.js b/addons/core/ember-cli-build.js index dc5a39e1b..b6a8f26a0 100644 --- a/addons/core/ember-cli-build.js +++ b/addons/core/ember-cli-build.js @@ -1,8 +1,8 @@ -'use strict'; +"use strict"; -const EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); +const EmberAddon = require("ember-cli/lib/broccoli/ember-addon"); -module.exports = function(defaults) { +module.exports = function (defaults) { let app = new EmberAddon(defaults, { // Add options here }); diff --git a/addons/core/index.js b/addons/core/index.js index 202492d5e..245249bda 100644 --- a/addons/core/index.js +++ b/addons/core/index.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; module.exports = { - name: require('./package').name + name: require("./package").name, }; diff --git a/addons/core/package.json b/addons/core/package.json index b0a14af02..3523bc223 100644 --- a/addons/core/package.json +++ b/addons/core/package.json @@ -17,9 +17,10 @@ "lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*", "lint:hbs": "ember-template-lint .", "lint:js": "eslint .", + "format": "npm run format:js", + "format:js": "prettier --write '{addon,app,config,stories,tests}/**/*.js' *.js", "start": "ember serve", - "test": "npm-run-all lint:* test:*", - "test:ember": "ember test", + "test": "ember test", "test:ember-compatibility": "ember try:each" }, "dependencies": { @@ -54,6 +55,7 @@ "eslint-plugin-node": "^11.1.0", "loader.js": "^4.7.0", "npm-run-all": "^4.1.5", + "prettier": "^2.1.2", "qunit-dom": "^1.2.0" }, "engines": { diff --git a/addons/core/testem.js b/addons/core/testem.js index 49f53feed..e3e8564ff 100644 --- a/addons/core/testem.js +++ b/addons/core/testem.js @@ -1,27 +1,23 @@ -'use strict'; +"use strict"; module.exports = { - test_page: 'tests/index.html?hidepassed', + test_page: "tests/index.html?hidepassed", disable_watching: true, - launch_in_ci: [ - 'Chrome' - ], - launch_in_dev: [ - 'Chrome' - ], + launch_in_ci: ["Chrome"], + launch_in_dev: ["Chrome"], browser_start_timeout: 120, browser_args: { Chrome: { ci: [ // --no-sandbox is needed when running Chrome inside a container - process.env.CI ? '--no-sandbox' : null, - '--headless', - '--disable-dev-shm-usage', - '--disable-software-rasterizer', - '--mute-audio', - '--remote-debugging-port=0', - '--window-size=1440,900' - ].filter(Boolean) - } - } + process.env.CI ? "--no-sandbox" : null, + "--headless", + "--disable-dev-shm-usage", + "--disable-software-rasterizer", + "--mute-audio", + "--remote-debugging-port=0", + "--window-size=1440,900", + ].filter(Boolean), + }, + }, }; diff --git a/addons/core/tests/dummy/app/app.js b/addons/core/tests/dummy/app/app.js index 523bad60c..2ae212dbd 100644 --- a/addons/core/tests/dummy/app/app.js +++ b/addons/core/tests/dummy/app/app.js @@ -1,7 +1,7 @@ -import Application from '@ember/application'; -import Resolver from 'ember-resolver'; -import loadInitializers from 'ember-load-initializers'; -import config from 'dummy/config/environment'; +import Application from "@ember/application"; +import Resolver from "ember-resolver"; +import loadInitializers from "ember-load-initializers"; +import config from "dummy/config/environment"; export default class App extends Application { modulePrefix = config.modulePrefix; diff --git a/addons/core/tests/dummy/app/formats.js b/addons/core/tests/dummy/app/formats.js index f5d1f1502..4a4add42f 100644 --- a/addons/core/tests/dummy/app/formats.js +++ b/addons/core/tests/dummy/app/formats.js @@ -1,29 +1,29 @@ export default { time: { hhmmss: { - hour: 'numeric', - minute: 'numeric', - second: 'numeric', + hour: "numeric", + minute: "numeric", + second: "numeric", }, }, date: { hhmmss: { - hour: 'numeric', - minute: 'numeric', - second: 'numeric', + hour: "numeric", + minute: "numeric", + second: "numeric", }, }, number: { - compact: { notation: 'compact' }, + compact: { notation: "compact" }, EUR: { - style: 'currency', - currency: 'EUR', + style: "currency", + currency: "EUR", minimumFractionDigits: 2, maximumFractionDigits: 2, }, USD: { - style: 'currency', - currency: 'USD', + style: "currency", + currency: "USD", minimumFractionDigits: 2, maximumFractionDigits: 2, }, diff --git a/addons/core/tests/dummy/app/router.js b/addons/core/tests/dummy/app/router.js index bdf0187b9..018b4b1ca 100644 --- a/addons/core/tests/dummy/app/router.js +++ b/addons/core/tests/dummy/app/router.js @@ -1,10 +1,9 @@ -import EmberRouter from '@ember/routing/router'; -import config from 'dummy/config/environment'; +import EmberRouter from "@ember/routing/router"; +import config from "dummy/config/environment"; export default class Router extends EmberRouter { location = config.locationType; rootURL = config.rootURL; } -Router.map(function() { -}); +Router.map(function () {}); diff --git a/addons/core/tests/dummy/config/ember-intl.js b/addons/core/tests/dummy/config/ember-intl.js index 2e1bc33b6..2cb1c38c1 100644 --- a/addons/core/tests/dummy/config/ember-intl.js +++ b/addons/core/tests/dummy/config/ember-intl.js @@ -1,6 +1,6 @@ /* jshint node:true */ -module.exports = function(/* environment */) { +module.exports = function (/* environment */) { return { /** * Merges the fallback locale's translations into all other locales as a @@ -25,7 +25,7 @@ module.exports = function(/* environment */) { * @type {String} * @default "'translations'" */ - inputPath: 'translations', + inputPath: "translations", /** * Prevents the translations from being bundled with the application code. @@ -90,6 +90,6 @@ module.exports = function(/* environment */) { */ requiresTranslation(/* key, locale */) { return true; - } + }, }; }; diff --git a/addons/core/tests/dummy/config/environment.js b/addons/core/tests/dummy/config/environment.js index 9f2393692..f0a6c3b29 100644 --- a/addons/core/tests/dummy/config/environment.js +++ b/addons/core/tests/dummy/config/environment.js @@ -1,11 +1,11 @@ -'use strict'; +"use strict"; -module.exports = function(environment) { +module.exports = function (environment) { let ENV = { - modulePrefix: 'dummy', + modulePrefix: "dummy", environment, - rootURL: '/', - locationType: 'auto', + rootURL: "/", + locationType: "auto", EmberENV: { FEATURES: { // Here you can enable experimental features on an ember canary build @@ -13,17 +13,17 @@ module.exports = function(environment) { }, EXTEND_PROTOTYPES: { // Prevent Ember Data from overriding Date.parse. - Date: false - } + Date: false, + }, }, APP: { // Here you can pass flags/options to your application instance // when it is created - } + }, }; - if (environment === 'development') { + if (environment === "development") { // ENV.APP.LOG_RESOLVER = true; // ENV.APP.LOG_ACTIVE_GENERATION = true; // ENV.APP.LOG_TRANSITIONS = true; @@ -31,19 +31,19 @@ module.exports = function(environment) { // ENV.APP.LOG_VIEW_LOOKUPS = true; } - if (environment === 'test') { + if (environment === "test") { // Testem prefers this... - ENV.locationType = 'none'; + ENV.locationType = "none"; // keep test console output quieter ENV.APP.LOG_ACTIVE_GENERATION = false; ENV.APP.LOG_VIEW_LOOKUPS = false; - ENV.APP.rootElement = '#ember-testing'; + ENV.APP.rootElement = "#ember-testing"; ENV.APP.autoboot = false; } - if (environment === 'production') { + if (environment === "production") { // here you can enable a production-specific feature } diff --git a/addons/core/tests/dummy/config/targets.js b/addons/core/tests/dummy/config/targets.js index 228a07898..9a022efa9 100644 --- a/addons/core/tests/dummy/config/targets.js +++ b/addons/core/tests/dummy/config/targets.js @@ -1,18 +1,18 @@ -'use strict'; +"use strict"; const browsers = [ - 'last 1 Chrome versions', - 'last 1 Firefox versions', - 'last 1 Safari versions' + "last 1 Chrome versions", + "last 1 Firefox versions", + "last 1 Safari versions", ]; const isCI = Boolean(process.env.CI); -const isProduction = process.env.EMBER_ENV === 'production'; +const isProduction = process.env.EMBER_ENV === "production"; if (isCI || isProduction) { - browsers.push('ie 11'); + browsers.push("ie 11"); } module.exports = { - browsers + browsers, }; diff --git a/addons/core/tests/test-helper.js b/addons/core/tests/test-helper.js index 4eae06f81..d71607e7e 100644 --- a/addons/core/tests/test-helper.js +++ b/addons/core/tests/test-helper.js @@ -1,7 +1,7 @@ -import Application from 'dummy/app'; -import config from 'dummy/config/environment'; -import { setApplication } from '@ember/test-helpers'; -import { start } from 'ember-qunit'; +import Application from "dummy/app"; +import config from "dummy/config/environment"; +import { setApplication } from "@ember/test-helpers"; +import { start } from "ember-qunit"; setApplication(Application.create(config.APP)); diff --git a/package.json b/package.json index 571c7f40e..7bbdf203a 100644 --- a/package.json +++ b/package.json @@ -22,12 +22,14 @@ "lint": "npm-run-all lint:*", "lint:addons-api": "cd addons/api && yarn lint", "lint:addons-auth": "cd addons/auth && yarn lint", + "lint:addons-core": "cd addons/core && yarn lint", "lint:addons-rose": "cd addons/rose && yarn lint", "lint:ui-admin": "cd ui/admin && yarn lint", "lint:ui-desktop": "cd ui/desktop && yarn lint", "test": "npm-run-all test:*", "test:addons-api": "cd addons/api && yarn test", "test:addons-auth": "cd addons/auth && yarn test", + "test:addons-core": "cd addons/core && yarn test", "test:addons-rose": "cd addons/rose && yarn test", "test:ui-admin": "cd ui/admin && yarn test", "test:ui-desktop": "cd ui/desktop && yarn test", From baa607a16a348676eb9d0ddb316250f71443aed8 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Wed, 18 Nov 2020 12:23:26 -0500 Subject: [PATCH 6/7] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20move=20date=20fo?= =?UTF-8?q?rmat=20helpers=20to=20core=20addon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/core/addon/.gitkeep | 0 .../core/addon}/helpers/format-date-iso-human.js | 4 ++++ .../app => addons/core/addon}/helpers/format-date-iso.js | 4 ++++ addons/core/app/helpers/format-date-iso-human.js | 1 + addons/core/app/helpers/format-date-iso.js | 1 + addons/core/tests/integration/.gitkeep | 0 .../tests/integration/helpers/format-date-iso-human-test.js | 1 - .../core}/tests/integration/helpers/format-date-iso-test.js | 1 - 8 files changed, 10 insertions(+), 2 deletions(-) delete mode 100644 addons/core/addon/.gitkeep rename {ui/admin/app => addons/core/addon}/helpers/format-date-iso-human.js (63%) rename {ui/admin/app => addons/core/addon}/helpers/format-date-iso.js (58%) create mode 100644 addons/core/app/helpers/format-date-iso-human.js create mode 100644 addons/core/app/helpers/format-date-iso.js delete mode 100644 addons/core/tests/integration/.gitkeep rename {ui/admin => addons/core}/tests/integration/helpers/format-date-iso-human-test.js (93%) rename {ui/admin => addons/core}/tests/integration/helpers/format-date-iso-test.js (93%) diff --git a/addons/core/addon/.gitkeep b/addons/core/addon/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/ui/admin/app/helpers/format-date-iso-human.js b/addons/core/addon/helpers/format-date-iso-human.js similarity index 63% rename from ui/admin/app/helpers/format-date-iso-human.js rename to addons/core/addon/helpers/format-date-iso-human.js index 00248aa5d..a0b9e5038 100644 --- a/ui/admin/app/helpers/format-date-iso-human.js +++ b/addons/core/addon/helpers/format-date-iso-human.js @@ -1,5 +1,9 @@ import { helper } from '@ember/component/helper'; +/** + * Takes a `Date` instance and returns a string formatted in human-friendly + * ISO-ish, e.g. "2020-01-01 00:00:00". + */ export default helper(function formatDateIsoHuman(params /*, hash*/) { return params[0] .toISOString() diff --git a/ui/admin/app/helpers/format-date-iso.js b/addons/core/addon/helpers/format-date-iso.js similarity index 58% rename from ui/admin/app/helpers/format-date-iso.js rename to addons/core/addon/helpers/format-date-iso.js index e65442549..a3e9cf61a 100644 --- a/ui/admin/app/helpers/format-date-iso.js +++ b/addons/core/addon/helpers/format-date-iso.js @@ -1,5 +1,9 @@ import { helper } from '@ember/component/helper'; +/** + * Takes a `Date` instance and returns a string formatted in ISO, + * e.g. "2020-01-01T00:00:00.999Z". + */ export default helper(function formatDateIso(params /*, hash*/) { return params[0].toISOString(); }); diff --git a/addons/core/app/helpers/format-date-iso-human.js b/addons/core/app/helpers/format-date-iso-human.js new file mode 100644 index 000000000..b4586dc3d --- /dev/null +++ b/addons/core/app/helpers/format-date-iso-human.js @@ -0,0 +1 @@ +export { default, formatDateIsoHuman } from 'core/helpers/format-date-iso-human'; diff --git a/addons/core/app/helpers/format-date-iso.js b/addons/core/app/helpers/format-date-iso.js new file mode 100644 index 000000000..f82d799e1 --- /dev/null +++ b/addons/core/app/helpers/format-date-iso.js @@ -0,0 +1 @@ +export { default, formatDateIso } from 'core/helpers/format-date-iso'; diff --git a/addons/core/tests/integration/.gitkeep b/addons/core/tests/integration/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/ui/admin/tests/integration/helpers/format-date-iso-human-test.js b/addons/core/tests/integration/helpers/format-date-iso-human-test.js similarity index 93% rename from ui/admin/tests/integration/helpers/format-date-iso-human-test.js rename to addons/core/tests/integration/helpers/format-date-iso-human-test.js index da705231b..35f7c06e3 100644 --- a/ui/admin/tests/integration/helpers/format-date-iso-human-test.js +++ b/addons/core/tests/integration/helpers/format-date-iso-human-test.js @@ -6,7 +6,6 @@ import { hbs } from 'ember-cli-htmlbars'; module('Integration | Helper | format-date-iso-human', function (hooks) { setupRenderingTest(hooks); - // Replace this with your real tests. test('it renders', async function (assert) { this.set('inputValue', new Date('2020-01-01T00:00:00.999Z')); diff --git a/ui/admin/tests/integration/helpers/format-date-iso-test.js b/addons/core/tests/integration/helpers/format-date-iso-test.js similarity index 93% rename from ui/admin/tests/integration/helpers/format-date-iso-test.js rename to addons/core/tests/integration/helpers/format-date-iso-test.js index 12770ef76..0914b6a3a 100644 --- a/ui/admin/tests/integration/helpers/format-date-iso-test.js +++ b/addons/core/tests/integration/helpers/format-date-iso-test.js @@ -6,7 +6,6 @@ import { hbs } from 'ember-cli-htmlbars'; module('Integration | Helper | format-date-iso', function (hooks) { setupRenderingTest(hooks); - // Replace this with your real tests. test('it renders', async function (assert) { this.set('inputValue', new Date('2020-01-01T00:00:00.999Z')); From 23e83143a0f5fa334ec3008fb7cfb8b4d0a188fe Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Wed, 18 Nov 2020 12:32:47 -0500 Subject: [PATCH 7/7] =?UTF-8?q?docs:=20=E2=9C=8F=EF=B8=8F=20update=20readm?= =?UTF-8?q?e=20to=20introduce=20addon=20and=20explain=20usage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/core/README.md | 95 ++++++++++++++++++++++++++++++---------- addons/core/package.json | 6 ++- 2 files changed, 77 insertions(+), 24 deletions(-) diff --git a/addons/core/README.md b/addons/core/README.md index 966054b1e..170ae6b67 100644 --- a/addons/core/README.md +++ b/addons/core/README.md @@ -1,38 +1,89 @@ -core -============================================================================== +# Core Features Addon for Boundary -[Short description of the addon.] +This addon contains core features used by Boundary UIs, such as i18n and +helpers. + + + -Compatibility ------------------------------------------------------------------------------- +- [Add core to an App](#add-core-to-an-app) +- [Installation](#installation) +- [Yarn Commands](#yarn-commands) +- [Linting](#linting) +- [Formatting](#formatting) +- [Running tests](#running-tests) +- [Running the dummy application](#running-the-dummy-application) +- [Contributing](#contributing) + - [Building ToC](#building-toc) -* Ember.js v3.12 or above -* Ember CLI v2.13 or above -* Node.js v10 or above + +## Add core to an App -Installation ------------------------------------------------------------------------------- +Add this addon to an Ember application's `devDependencies` as: +`"core": "*"`, for applications included in this monorepo. -``` -ember install core -``` +## Installation +See monorepo README for installation instructions. -Usage ------------------------------------------------------------------------------- +To use internationalization features, install `ember-intl` into your project: +`ember install ember-intl`. -[Longer description of how to use the addon in apps.] +## Usage within a project +To access translations within a template, see `ember-intl` docs. -Contributing ------------------------------------------------------------------------------- +## Yarn Commands -See the [Contributing](CONTRIBUTING.md) guide for details. +List of available project commands. `yarn run ` +| Command | Description | +| ------- | ----------- | +| build:development | Builds the dummy app in development mode. | +| build | Builds the dummy app for production. | +| lint | Runs all lint commands. | +| lint:js | Lints `js` files. | +| format | Runs all auto-formatters. | +| format:js | Auto-formats `js` files using Prettier. | +| start | Runs the dummy app local server. | +| test | Runs all tests. | +| test:all | Runs tests across multiple Ember versions with ember-try. | +| doc:toc | Automatically generates a table of contents for this README file. | -License ------------------------------------------------------------------------------- +Additional commands in the monorepo package may affect this projects. -This project is licensed under the [MIT License](LICENSE.md). +## Linting + +* `yarn lint:hbs` +* `yarn lint:js` +* `yarn lint:js --fix` + +## Formatting + +Before submitting your work, be sure to run auto-formatters +(see commands above). This helps to ensure consistency among authors. + +* `yarn format` + +## Running tests + +* `yarn test` – Runs the test suite on the current Ember version +* `yarn test --server` – Runs the test suite in "watch mode" +* `yarn test:all` – Runs the test suite against multiple Ember versions + +## Running the dummy application + +* `yarn start` +* Visit the dummy application at [http://localhost:4200](http://localhost:4200). + +## Contributing + +See monorepo README for more contribution instructions. + +### Building ToC + +To autogenerate a ToC (table of contents) for this README, +run `yarn doc:toc`. Please update the ToC whenever editing the structure +of README. diff --git a/addons/core/package.json b/addons/core/package.json index 3523bc223..16239b965 100644 --- a/addons/core/package.json +++ b/addons/core/package.json @@ -13,15 +13,16 @@ "test": "tests" }, "scripts": { + "build:development": "ember build", "build": "ember build --environment=production", "lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*", - "lint:hbs": "ember-template-lint .", "lint:js": "eslint .", "format": "npm run format:js", "format:js": "prettier --write '{addon,app,config,stories,tests}/**/*.js' *.js", "start": "ember serve", "test": "ember test", - "test:ember-compatibility": "ember try:each" + "test:ember-compatibility": "ember try:each", + "doc:toc": "doctoc README.md" }, "dependencies": { "ember-cli-babel": "^7.21.0", @@ -33,6 +34,7 @@ "@glimmer/tracking": "^1.0.0", "babel-eslint": "^10.1.0", "broccoli-asset-rev": "^3.0.0", + "doctoc": "^1.4.0", "ember-auto-import": "^1.6.0", "ember-cli": "~3.20.2", "ember-cli-dependency-checker": "^3.2.0",